jonnor / embeddedml

Notes on Machine Learning on edge for embedded/sensor/IoT uses
252 stars 31 forks source link
embedded-systems machine-learning microcontroller sensor-data sensor-network tinyml

Machine learning on embedded devices

Focused primarily on running inference/prediction/feed-forward part on a microcontroller (or small embedded device). Training phase can run on a standard computer/server, using existing tools as much as possible.

Background

What and when to use machine learning

The defaults right now are to do conventional signal processing (no learning) in sensor, and stream raw data to the cloud for storage and processing. Machine learning happens in the cloud. If gateways are used, they mostly forward communication (no data processing).

On-edge processing valueable when

Example usecases

More notes on Applications

Motivation

State of the Art in 2019

Of ML inference on general-purpose microcontrollers.

TODO: update for 2023

Limitations

Ways of advancing, make contributions

Own contributions

Presentations

Open source software projects

Learning material

Books

Articles

Tools

Open-source

Proprietary

Models

A range of Machine Learning models are useful in an embedded devices setting. Classical methods are used when the amount of data is quite small, and neural networks for large datasets and complex inputs.

Below are notes on the various models in the context of embedded Machine Learning, including model size and compute-time optimization.

More topics