Paper · 2022-11-05 · cs.LG, cs.AI
A review of TinyML
A review of TinyML, machine learning on low-power microcontroller-based embedded devices. It describes a generic workflow from data collection to porting a trained model onto a microcontroller, surveys use cases in healthcare, surveillance, AR/VR and industrial maintenance, and lists challenges: low power, limited memory, hardware heterogeneity and missing benchmarks. It reports no experiments.
Computation offloadingOn-device inferencetinymledge-aimicrocontrollerssurvey
AI-compiled by claude-haiku-5-5 on 2026-10-25, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
Machine learning usually runs on big servers. TinyML is the effort to run machine learning on very small, cheap, battery-powered chips, such as microcontrollers in sensors and wearables, so that the device can decide things on its own without sending its data to a server.
The paper is a review. It explains the steps needed to get a model from a training computer onto such a chip, shows where this could be useful (health monitoring, cameras, AR/VR, factory maintenance), and lists the problems that make it hard: very little power, very little memory, very different hardware, and no common way to measure performance.
The paper does not present a new method or any experiment. Read it as a map of the field and its open problems, not as a recipe.
TL;DR
- Survey of TinyML: deep-learning-style inference on microcontroller-class embedded devices §I.
- The paper describes a generic workflow: collect data, train on a resource-rich machine, port the model to the microcontroller, run inference on the device §II fig. 1.
- It lists four challenge areas (low power, limited memory, hardware and software heterogeneity, no benchmarks) and future directions §IV §V.
- It has no experiments, no tables of results and no released code. Use it for orientation, not for numbers.
Problem
Embedded sensors are often battery powered and run at very low power levels ("1 mW or less") §I. When data is sent to a distant site for storage and analysis, the paper names delay, information leakage and confidentiality risks §I. Running classic machine learning on such devices is hard: the paper says GB-sized storage can be needed for traditional ML inference, which is not feasible on edge equipment with little memory §IV.B. The paper assumes the device is a microcontroller and that the model must be ported to it §II.
Method
The paper does not propose an algorithm. Its method section is a description of the typical TinyML deployment workflow §II fig. 1. The workflow has two parts:
- Conventional ML stages §II: gather data (often from pre-compiled datasets or real-time sensor collection), select an algorithm, construct the model and optimize it. The paper says this training can be carried out on a resource-rich device §II.
- TinyML stages §II: porting and deployment. The trained model is translated into a microcontroller-friendly form. The paper names ML interpreters such as TensorFlow Lite Micro for this step, which turn the model into a frozen graph expressed as a C array §II. The ported model then runs on the microcontroller, where inference is done on sensor input §II fig. 1.
fig. 1 shows the cycle: sensors produce raw data, feature extraction produces a dataset, model training and optimizing produces a model, model porting moves it to the device, and model inference runs on the sensor data fig. 1.
# TinyML deployment workflow [§II] [fig. 1]
# Input: sensors on a battery-powered device
# Output: inference results produced on the device
def tinyml_deployment(sensors, training_machine, mcu):
# 1. Gather data from the sensors [§II] [fig. 1]
dataset = gather_data(sensors)
# 2. Extract features and select an algorithm [§II]
features = extract_features(dataset)
algorithm = select_algorithm(features)
# 3. Construct and optimize the model on a resource-rich machine [§II]
model = train_and_optimize(algorithm, features, training_machine)
# 4. Port the model to the microcontroller (interpreter or code) [§II]
ported_model = port_to_mcu(model, mcu)
# 5. Run inference on the device, on each new sensor sample [§II] [fig. 1]
for sample in sensors:
yield run_inference(ported_model, sample, mcu)The paper names three ways to install a model on a TinyML device §IV.C:
- Manual code writing: hand-written implementation. The paper says this can give the best results, but it is slow and the effects of optimizations are often ambiguous §IV.C.
- Code generation: generates optimized software automatically. The paper notes that each major manufacturer has its own methods and compilers, so code generation does not solve porting difficulties §IV.C.
- ML interpreters: consistent abstractions across platforms, so they give good portability; the paper calls their speed and binary-size costs moderate §IV.C.
The paper also describes application areas §III: healthcare (wearables for low-cost health monitoring that avoid dependence on a phone or constant recharging) §III.A, surveillance and security (machine vision and audio perception) §III.B, with examples such as face identification and speech-to-text in the section introduction §III, augmented and virtual reality (lower-cost devices with less compute) §III.C, and industrial maintenance (predictive maintenance on embedded hardware) §III.D.
Hyperparameters
The paper has no training or model hyperparameters. It has no experiments.
| Name | Value | Where | Notes |
|---|---|---|---|
| Embedded sensor power level | 1 mW or less | §I | Stated as the typical operating level of battery-powered embedded systems, not as a TinyML budget |
| Model training hyperparameters | not stated | — | No training setup in the paper |
| Memory and compute budget | not stated | — | Only qualitative limits, e.g. "extremely low" SRAM §IV.B |
Results
Not applicable. This is a review with no experiments, no benchmarks and no measured accuracy, latency, memory or energy numbers. The paper states that benchmarking tools for TinyML are missing §IV.D and that performance varies across hardware configurations §IV.C.
Paper vs code
No official code.
Pitfalls
- No numbers to implement. The only quantitative values are the 1 mW power level §I and qualitative memory and storage statements §IV.B. Do not treat any of them as a design target without another source.
- Figure-only workflow. The pipeline exists only as a diagram and short prose §II fig. 1. The paper does not define the interfaces between stages, the data formats, or what "optimization" means in the training stage.
- Porting details are vague. The paper names interpreters and C arrays §II but gives no conversion steps, memory layout, or the size of the resulting binary.
- Cross-referenced section titles are confusing. Section IV.B is titled "Limited memory" §IV.B, and section V.B is titled "Limited memory Communication techniques" §V.B. The second one discusses communication energy and network reliability (the paper suggests LoRa and BLE for higher layers), not memory.
- Qualitative claims. Statements such as TinyML "will pave the way" for new services [abstract], and that wearables and AR/VR become cheaper, have no supporting evidence in the paper.
- Hardware variability. The paper says the device under test may not have the characteristics assumed, for example its clock, so performance numbers are not comparable across setups §IV.C.
- Reconfigurable hardware is not recommended yet. The paper says reconfigurable fabrics are "not a choice right now" for tinyML-sized devices §V.C.
Lineage
- Builds on: not stated. The paper relies on its references [1]–[10] for background claims; none are compiled in this wiki.
- Compared against: not applicable; the paper has no experiments.
- Superseded by: not known from content in this wiki.
Source and license
Adapted from “A review of TinyML” by Harsha Yelchuri, Rashmi R (arXiv:2211.04448), used under CC BY-SA 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. This page is licensed under CC BY-SA 4.0.