PyliteML is a suite of Machine Learning tools that will help you make your IoT Applications even smarter. Launching today on Pybytes.

Edge of Network IoT  solutions must become more autonomous and help end users make even smarter and more decisions. We’re now adding an element of predictability. But we don’t need to tell you all the benefits of Machine Learning…you probably know all about it already.

We have some cool tutorials on our Youtube channel and below is an overview of the way we’ve implemented it.

 

 

5 New YouTube Tutorials on Machine Learning

Machine Learning screens on  Pybytes

Machine Learning screens on Pybytes

 

1. Model Creation

In this video, we follow the 3 steps necessary to create and set up a model in Pybytes.

 

 

2, Data Acquisition

In this video, we explore the data acquisition tool using a Pysense or a Pytrack.
We check what to expect from the device during the sampling and data processing, and we also check the data samples in graphics.
 
 
 
 
 

3. Processing

In this video, we learn how to set up the signal processing block that is used to extract features for the Neural Network module.

 

4. Training

In this video, we train the model based on the Neural Network parameters and we have as output a confusion matrix and the final machine learning model.

 

5. Testing and Deployment

In this video, we test the machine learning model based on another set of data to check how accurate it is.. After getting nice results we deploy the model file in the selected devices.

 

 

Machine Learning Implementation Overview

 

Model Architecture

The gesture recognition implementation consists of three modules: a preprocessing module, a signal processing module and a neural network module.

Preprocessing Module

Raw data from accelerometer is a time series on three axes (X, Y, Z). To analyse this time series, a window of a certain size (a moving window) is moved over the data using a moving step. The window size and the moving step are project specific and they are defined by the user.

 

Signal Processing Module

Signal processing is used to extract features for the Neural Network module.

There are many ways to extract features. The simplest way is adding convolutional layers to the neural network topology, but doing this there is no control of what features will be used and also the convolutional layers make the neural network bigger, so more data is needed for training.

Signal processing provides an easy and intuitively way to extract features and also the features can be analysed using different methods.

The input data consists from the moving windows outputted by the Preprocessing Module.

There are three operations which Signal Processing Module applies to the data: standardisation, filtering and features extraction.

 

Standardisation

First, the window data can be standardised by subtracting the average and dividing it by its standard deviation, thus obtaining a window with zero mean and a variance equal to one.

 

Filtering

After the window is standardized, a filter can be applied to the data. The type of the filter (none, low-pass, high-pass), the cutoff frequency and the filter order can be selected by the user.

 

Features Extraction

Using Fourier analysis (FFT transform), features are extracted from the data.

Features are calculated for every axis (X, Y, Z), independently of other axes. The next features are available to be selected/used by the user:

–           The root mean square. It is the square root of the arithmetic mean of the squares of the values.

–           FFT peaks. First peaks from FFT values, to be used as features.

–           Spectral Power on intervals. Mean of the squares of the FFT values, on specified frequencies intervals.

 

Neural Network Module

The neural network receives its input from the Signal Processing block.

The number of layers and the number of neurons in this layer can be selected by the user. For the moment there are supported only dense layers as hidden layers.  Other parameters that can be selected are: the number of training epochs, the learning rate and the confidence threshold.

 

head over to http://pybytes.pycom.io to try it out for yourself.