Machine Learning API Libraries That are Helping the IoT

Tularam M. Bansod is proprietor of TMB Enterprises, a startup focussed on embedded systems domain. He has authored two books on microcontroller programming.


In this article, we learn how machine learning (ML) can make things better when it comes to a complex concept like the Internet of Things (IoT).

Machine learning (ML) is becoming the new buzzword in the industry. Neural networks and cognitive science have come up with a number of new algorithms. ML techniques are heavily used in image, voice, video, public safety and medical fields, among others. It can be implemented at human scale for predictions, decision-making processes and so on.

In ML, a system can learn from data continuously in real time. Continuous learning makes the system intelligent enough to produce multiple logics if newly observed data is available. These multiple logics help run driverless (autonomous) cars intelligently on the road.

There are two basic types of ML: supervised and unsupervised. In supervised learning, past knowledge is applied to draw inferences from new data sets. Whereas, in unsupervised learning, past knowledge is not available. Technically, the system does not figure out the right output, but it explores the data and can draw inferences from data sets to describe hidden structures from unlabelled data.

Popular ML techniques are regression, recommendation, clustering and classification. All these algorithms have their pros and cons, and work based on the statement of problem and data sets. There are four steps to apply ML to a project/problem: define a problem carefully, define data, evaluate the algorithm and improve results.

To implement these steps, many application programming interface (API) libraries are available. The table on next page shows a comparison between H2O, Spark MLlib, Sparkling Water, Weka platforms and API libraries. H2O is supported by Python, R, Scala and Java programming languages. SparkMLlib library is available in Python, Scala and Java languages.

H2O is a fully open source, distributed in-memory ML platform with linear scalability. It supports popular ML algorithms including deep learning and gradient boosted machines. H2O also has AutoML functionality that automatically runs through all algorithms and their hyper parameters to produce correct logical answers from models. More than 18,000 companies are using this platform. R and Python communities are heavily using H2O platform.

Spark is a fast and general-processing engine compatible with Hadoop data. It can run in Hadoop clusters through Spark standalone. Spark can process data in Hadoop File System (HDFS), HBase, Hive, Cassandra and other Hadoop input formats. MLlib is a special API library in Spark engine. It supports classification, logistic regression, Naïve Bayes, Random Forest, K-Means and Gaussian mixtures ML algorithms. This library can be used in Python or Scala programming language.

To know whether ML can be applied for the Internet of Things (IoT) processing, we have to understand abnormal situations that can occur in IoT networks. On application layer of the IoT, broken sensors might send wrong sensed values to a connected server continuously. If the intelligent network is not aware of this problem, it will not be able to detect accidents in IoT networks.

ML can be applied on sensor networks. ISM band is used by 802.11, 802.15.4 and 802.15.1 wireless protocols. When different devices are scattered in one area, there is a different system interference. ML can be used to classify wireless channel errors in different categories, and this can be used to diagnose problems in IoT networks.

In wireless sensor networks, fault detection is a complicated process. Faults caused by degraded or malfunctioning sensors are classified as data faults. Fault types caused by low battery, calibration, communication or connection failures are classified as system faults. When ML is applied, faults—such as gain, out-of-bound, offset and stuck-at—can be recognised in detail. Classifying faults can also help in IoT networks.

It is not easy to design fault-tolerant systems in constrained IoT networks. People are working on designing IoT systems that can detect, predict and recover from abnormal situations. ML is helping improve IoT networks, too.


Please enter your comment!
Please enter your name here