## 3 AI/ML in the Standards and Industry
### TinyML  
TinyML lies in the intersection of ML and embedded systems, and enables ML capabilities on lightweight IoT devices, including cheap Micro-controller units (MCUs) or digital signal processors, which operate at an average power of \(1\) mW or less [103]. These devices (without the ML functionality yet) have become an integral part of our everyday lives, being massively deployed at home appliances and buildings, mobile phones, and automotive, to name a few. During 2019, more than 30 billion MCUs were shipped worldwide. MCU-based IoT lies at the very edge of the communication network, collecting enormous amounts of raw data, most of which is typically discarded, as the energy cost to transfer it to the cloud is prohibitively high. Note that for devices falling under the category of TinyML, the energy consumption required for communication is much higher than that needed for computation. Keeping the total energy consumption at very low levels is actually a prerequisite for the massive deployment of MCU-based devices, as these devices can be left unattended for months or years after their deployment, operating on battery, solar energy, or perhaps energy harvesting. Therefore, empowering MCUs with AI/ML and doing locally ML inference while the overall power consumption remains low can be beneficial. For instance, a motion sensor often calculates and transmits to a gateway just its peak and average acceleration values every duty cycle. Now, consider that the sensor runs a lightweight version of an ML model, which constantly monitors the device and can predict a failure. The sensor will communicate to the cloud just a few extra bits of information if a potential failure is predicted. Environmental and agricultural monitoring, anomaly detection, and predictive maintenance are relevant use cases for TinyML. The main limitation of TinyML is the hardware constraints of embedded systems in terms of processing power, memory, and clock speed. Typically, TinyML runs on 32 bit MCUs with fewer than 500 kB of RAM, a few MB of flash memory, and a clock frequency lower than 200 MHz [104]. Representative examples are the Sparkfun edge Arduino board, the ARM Cortex-M7 MCU with 320 kB of RAM and 1 MB of storage, and the QCC112 Chipset by Qualcomm for ultra-low power always-on computer vision [105]. Notably, TinyML does not include end-devices carrying micro-computers, such as Rasberry Pi, which can run Linux, support high-level programming languages, such as Python, and typically has 2-3 orders of magnitude more memory than MCUs. Due to the limited available resources, TinyML shall be used only for ML inference while training is executed off-board and offline. Additionally, the ML task should be specific, which usually translates to a binary output layer, e.g., whether a time series is abnormal or not, and keyword spotting. The authors of [106] have designed a NN on off-the-shelf MCUs and accelerated the inference of wake word applications by three times. Recent advances in ML algorithms running at the edge and cloud do not apply to tinyML, where the size of the NNs has to be limited. Even though the training and validation are executed at the cloud, using traditional libraries, such as Pytorch and Tensorflow (TF), the ML model would be probably too large to store in embedded systems. DNNs running on MCUs should be optimised to adapt to the power, memory, and processing constraints of the targeted hardware. In this direction, the TF Lite Micro is an open-source interpreter developed by Google that figures out how to compress pre-trained ML models generated in traditional frameworks, such as TF, to a size suitable for TinyML [107]. The STM32 Cube.AI is another tool that automatically converts pre-trained artificial neural network (ANN) models to pieces of code that can run on MCUs, providing also feedback about the performance on the selected hardware.