Machine Learning - An embedded developer's journey
Machine Learning has matured in recent years to the point where there are many practical applications in a wide variety of fields. Despite the numerous tutorials and demos, it is not a single thing. Flavors of machine learning are each presented its own cryptic terminology often different from what an embedded developer may be familar with. This session presents an overview of machine learning as it follows an embedded engineer's attempt at sorting through the terminology in a quest to leverage machine learning to process sensor data in an embedded system. Simultaneously, sensor technology has grown to allow sensing almost any physical property. Most if not all the sensors have non ideal characteristics such as non linear responses. Non machine learning based processing has often been used to analyze sensor data but such techniques often are based on simplications like linear modeling of the sensor. A machine learning approach can potentially allow for more complex but accurate modeling of a sensor which in turn may lead to more useful results. The journey begins with a comparism of machine learning with other data processing techniques along with some of the benefits machine learning can bring. The first stop is an overview of everything needed starting with identifying open source software options. It'll look at software frameworks and different machining learning options such as neural networks, deep learning, CNN, DNN, SVMs, etc as implemented by different option source options. Both well known software options such as Tensorflow at along with other lesser known open source options will be looked at. Open source considerations will be one of the main driving factor in comparing the different software. While not all of them are ultimately used (or useful!), an overview of what was learned will be presented. It'll move onto the different phases of machine learning such as training and inference. Training requirements such as training data organization and processing requirements will be looked at. The session will then turn to options for the identification or inference phase which unlike the training phase will be implemented on an embedded device. Resource limitations in an embedded device can limit options on flavor of machine learning along with the software framework. Resource limitations considered include power, processing, and storage for inference on an embedded device.