Paper · 2022-05-29 · cs.LG
Machine Learning for Microcontroller-Class Hardware: A Review
Review of machine learning for microcontrollers (TinyML). It describes a closed-loop workflow of data engineering, feature projection, lightweight blocks, compression, neural architecture search, software suites and on-device learning, then compares published results per stage. The paper runs no new experiments; its headline numbers are taken from cited work.
On-device inferenceOn-device trainingNeural architecture searchNetwork pruningtinymlmicrocontrollersreviewmodel-compressionneural-architecture-search
AI-compiled by claude-haiku-5-5 on 2026-11-08, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
Microcontrollers are the small, cheap, battery-powered chips inside sensors, wearables and gadgets. They have far less memory and power than a phone, so a typical machine-learning model does not fit on them. This review asks how an engineer should get a model onto such a chip. It describes a loop: collect and clean the sensor data, optionally shrink its inputs, pick a small model, search for a better one if needed, shrink the model further, turn it into code for the chip, and sometimes keep training it on the device.
The authors go through each step and list the tools and techniques used for it. They also compare published results per application, such as gesture recognition, keyword spotting and anomaly detection. The review does not test anything new. Its value is the map of options and the trade-offs that the reported numbers show.
TL;DR
A review of TinyML, meaning machine learning on microcontrollers. It proposes a closed-loop development workflow fig. 1 and surveys each stage: data engineering, feature projection, compression, lightweight blocks, neural architecture search, software suites, online learning and federated learning §III–§IX. Quantitative comparisons are collected from prior work, not measured by the authors §X–§XI. Use it as a map of options and their trade-offs, and check the original sources before relying on any single figure.
Problem
Conventional models need far more memory, compute and power than microcontrollers offer §I. A typical microcontroller in the review's table has 2–1024 kB of SRAM and 32–2048 kB of eFlash, at 0.1–0.3 W, compared with 16 GB HBM and 250 W for a cloud GPU tab. I. Sending sensor data to a server is not always possible, because of network bandwidth, latency, power or privacy limits §I.B–§I.C. Earlier surveys describe the stages qualitatively but do not compare methods quantitatively §I.
Method
The review's central object is a workflow, not an algorithm. It is shown as a loop of nine labelled stages on one sensor-to-microcontroller diagram fig. 1. Stages 3 to 8 repeat until the desired performance is reached fig. 1 caption. Phase 1 covers data, feature projection, the model zoo, neural architecture search (NAS) and hardware profiling. Phase 2 covers porting the model into a TinyML software suite, compression, code generation, and on-device training or federated learning §II.
The sketch below restates that loop in code. It is written from the workflow description in fig. 1 and §II; the paper contains no code for it, and the helper functions are placeholders.
# Closed-loop TinyML development [fig. 1] [§II]
# Input: raw sensor streams; per-device SRAM, flash and latency budget
# Output: C code for the microcontroller
def develop_tinyml_model(raw_streams, device_budget):
# Collect, label and clean sensor data [§III] [fig. 1]
dataset = engineer_data(raw_streams)
# Optionally reduce the input dimension first [§IV] [fig. 1]
dataset = project_features(dataset)
# Pick a candidate from a model zoo or NAS search space [§VI] [§VII]
candidate = search_candidate(dataset, device_budget)
# Estimate hardware cost by proxy or on the device [§VII.E] [fig. 1]
metrics = profile_hardware(candidate, device_budget)
# Repeat search and profiling until the budget is met [fig. 1 caption]
while not meets_budget(metrics, device_budget):
candidate = search_candidate(dataset, device_budget, metrics)
metrics = profile_hardware(candidate, device_budget)
# Compress the model: pruning, quantization, encoding [§V] [fig. 1]
compressed = compress(candidate)
# Port to a software suite and generate C code [§VIII] [fig. 1]
c_model = generate_c_code(compressed)
# Optionally fine-tune on the device as data shifts [§IX] [fig. 1]
return c_modelStage details, each with the review's own citation:
- Data engineering §III. Tools range from big-data stacks to TinyML data tools such as Edge Impulse, MSWC, SensiML DCL, Qeexo AutoML and Plumerai Data. The review compares them on data type, collection mode, labelling, augmentation, visualisation and cleaning tab. III.
- Feature projection §IV. Linear methods (SVD, NMF, ICA, LDA, PCA), nonlinear methods (kernel PCA, t-SNE, UMAP, autoencoders) and hand-designed domain features are described. The review says nonlinear methods are usually too costly for real-time microcontroller use §IV.B.
- Compression §V. Quantization (post-training and quantization-aware), pruning, structured sparsity and encoding are described. Compression frameworks are compared in tab. IV. Deep Compression is cited for pruning, quantization and Huffman coding together §V.
- Lightweight ML blocks §VI. Sparse projection to prototypes (Bonsai, ProtoNN), fire modules, depthwise separable convolution, low-rank or quantized recurrent cells (FastRNN, FastGRNN), temporal convolutions, and small attention or transformer variants are described fig. 2 §VI.A–§VI.F.
- Neural architecture search §VII. The review classifies search spaces as layerwise, cellwise or hierarchical §VII.A. Strategies are reinforcement learning, gradient-based, evolutionary with weight sharing, Bayesian optimisation and training-free methods §VII.B. Cost functions and hardware profiling methods are described §VII.C–§VII.E. NAS frameworks for microcontrollers are listed in tab. V.
- Software suites §VIII. Operator fusion, in-place operators, loop transformations and data reuse are described fig. 3 §VIII.A. Frameworks are compared in tab. VIII; TensorFlow Lite Micro is described with its arena allocator fig. 4 §VIII.B.
- On-device learning §IX. Last-layer transfer learning, specialised operators and continual-learning techniques are described. Frameworks are compared in tab. IX.
- Federated learning §IX. Strategy, communication stack, scalability, privacy and client hardware are compared in tab. X.
Applications are summarised in tab. XI (image recognition), tab. XII (visual wake words), tab. XIII (keyword spotting and speech), tab. XIV (anomaly detection), tab. XV (activity and gesture), tab. XVI (mHealth) and tab. XVII (face detection) §X.
Hyperparameters
This review has no training hyperparameters. The table lists the platform and benchmark constants that the review uses as its reference.
| Name | Value | Where | Notes |
|---|---|---|---|
| microcontroller SRAM | 2–1024 kB | tab. I | a cloud GPU is listed at 16 GB HBM |
| microcontroller eFlash | 32–2048 kB | tab. I | |
| microcontroller power | 0.1–0.3 W | tab. I | compared with 250 W for a cloud GPU |
| TinyML power target | ≤ 1 mW | §II | the review's working definition of ultra-low power |
| keyword spotting, MLPerf Tiny v0.5 | DS-CNN, 52.5 kB, 90% top-1 target | tab. II | Speech Commands, 49×10 input |
| visual wake words, MLPerf Tiny v0.5 | MobileNetV1, 325 kB, 80% top-1 target | tab. II | VWW, 96×96 input |
| image recognition, MLPerf Tiny v0.5 | ResNet v1, 96 kB, 85% top-1 target | tab. II | CIFAR-10, 32×32 input |
| anomaly detection, MLPerf Tiny v0.5 | FC-AE, 270 kB, 0.85 AUC target | tab. II | ToyADMOS, MIMII, 5×128 input |
The benchmark rows are copied from the review's table and are not verified against the MLPerf Tiny release.
Results
Author-reported in the sense that the review collects these from cited sources. No experiments are run by the authors. Setup, dataset and baseline are given per row.
| Setting | Metric | Baseline | This paper (as reported) | Source |
|---|---|---|---|---|
| post-training quantization (cited TF Lite and related tools) | model size, speed | not stated | 4× smaller, 2–3× speedup | §V.A tab. IV |
| quantization-aware training | model size | not stated | up to 8× smaller for the same or lower accuracy drop | §V.A |
| binarized networks | speedup, memory | not stated | 8.5–19× speedup, 8× memory reduction | §V.A |
| mixed-precision quantization | memory | not stated | 7× memory reduction | §V.A |
| weight pruning | speedup, memory | not stated | 4× speedup, 5–10× memory reduction | §V.B |
| Deep Compression (cited) | size | uncompressed AlexNet, LeNet-5, VGG-16 | 35×, 39×, 49× smaller | §V |
| depthwise separable convolution | cost, memory | 3×3 convolution | 9× cheaper, 7–9× memory savings | §VI.B |
| SqueezeNet (cited) | size | AlexNet | 510× smaller, under 0.5 MB | §VI.B |
| TFLM vs CMSIS-NN, image recognition | speedup, memory | CMSIS-NN | 2.2× speedup, 1.08× memory and flash savings | §VIII.B.1 |
| CMSIS-NN vs native code | speedup, energy | non-optimised code | 4.6× speedup, 4.9× energy savings | §VIII.B.5 |
| EON Compiler vs TFLM | SRAM, flash | TFLM | 25–55% less SRAM, 35% less flash | §VIII.B.6 |
| Visual wake words, RaScaNet | accuracy | other VWW models | 88–92%, 4–8 kB SRAM, 15–60 kB flash | tab. XII |
| DROCC vs one-class SVM, anomaly detection | F1 / model size | OC-SVM | about +20% accuracy, 1600× smaller model | §XI.A |
| MLP vs CNN, gesture recognition (Cortex-M7) | SRAM, speed, flash | CNN on raw data | 18× less SRAM, 2.2× faster, 2.5× less flash, same 100% accuracy | §XI.A tab. XVIII |
| pruning vs quantization, averaged | model size | uncompressed | 13.6× vs 3.9× compression; 16× combined | §XI.B tab. XIX |
| pruning vs quantization, averaged | accuracy loss | uncompressed | 4.9% pruning vs 0.4% quantization | §XI.B tab. XIX |
| TinyOdom vs handcrafted NAS models | model size | handcrafted | 1.6–30× smaller at 1.2× resolution drop | §XI.D tab. XXI |
| partial im2col in CMSIS-NN, CIFAR-10 | working memory | full im2col | 133 kB instead of 332 kB | §XI.E tab. XXII |
| on-device learning vs static models | accuracy | static model | up to 34% higher on dataset shift | §XI.F tab. XXIII |
The paper's Table XIX has more rows than these; the average figures quoted in §XI.B are the ones reported in the text.
Paper vs code
No official code. The paper is a review and publishes no repository, and the arXiv record carries no code link. A GitHub repository search for the title's keywords and the authors' names returned no results.
Pitfalls
- Mixed metrics across tables. The review puts top-1 accuracy, top-5 accuracy, mAP, F1, AUC and mean AUC side by side in the same tables tab. XI–XIV. Compare numbers only within one row or one table, never across tables.
- Numbers come from different hardware, datasets and software. Most entries are from cited papers that used different microcontrollers and toolchains, and the review does not normalise them. The speedups and memory savings in §V–§VIII are not measured on one device.
- Pruning and quantization averages hide spread. The 13.6×, 3.9× and 4.9% vs 0.4% figures are averages over the models in tab. XIX. The text states that pruning gives less latency gain than quantization on microcontrollers §XI.B.3, so averages on size do not transfer to speed.
- Support limits the choice. Many NAS frameworks, online-learning frameworks and suites support only CNN backbones or only neural networks §XI.C tab. VIII tab. IX. An engineer who picks a technique may find the toolchain cannot run it.
- Search cost is not priced out. The NAS comparison table tab. VI gives search costs in GPU hours for ImageNet, not for microcontroller targets. Hardware-in-the-loop profiling is described as slowest but most accurate tab. VII.
- Quantization support on hardware. The review notes that a microcontroller's SIMD width may not suit very low bitwidths, and that some compilers do not support sub-byte bitwidths §V.B.3 §XI.B.3.
- Security and privacy claims are not tested. Adversarial and privacy threats are described in outline §XII.E; no measured results are given.
- Figures are not reproduced. Figures 1–4 are described in words above; the card does not include them.
Lineage
- Builds on: earlier TinyML surveys cited in the introduction, including the qualitative reviews by Sanchez-Iborra and Skarmeta [3], Dutta and Bharali [4], Ray [6] and Shafique et al. [7]; the review itself says these lack quantitative comparison §I.
- Compared against: the same surveys, plus the MLPerf Tiny benchmark suite [9] that defines the benchmark rows in tab. II.
- Superseded by: not known from content on this wiki.
Source and license
Adapted from “Machine Learning for Microcontroller-Class Hardware: A Review” by Swapnil Sayan Saha, Sandeep Singh Sandha, Mani Srivastava (arXiv:2205.14550), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.