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
In this video, we follow the 3 steps necessary to create and set up a model in Pybytes.
In this video, we learn how to set up the signal processing block that is used to extract features for the Neural Network module.
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.
Machine Learning Implementation Overview
The gesture recognition implementation consists of three modules: a preprocessing module, a signal processing module and a neural network 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.
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.
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.
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.