An unsupervised tinyML incremental learning approach for outlier processing and forecasting - Andrade, Pedro Henrique Meira de (2024)
The Internet of Things (IoT) is a paradigm where computing and connectivity capabilities are embedded into objects, connecting them to the Internet. Acknowledged as a crucial and emerging technological area, IoT holds significant potential to enhance the quality of life, optimize industrial processes, and offer more applications to everyday objects. With the increasing number of IoT-connected devices, there arises a need for infrastructure to manage the vast volume of generated data. In this context, Edge Computing stands out by processing data close to its source, leaving only heavier processing tasks for central servers. Edge processing enables the development of optimized machine learning algorithms, known as Tiny Machine Learning (TinyML). By employing lightweight and optimized algorithms, TinyML offers advantages such as reduced latency, improved energy efficiency, and increased autonomy for devices operating in remote or isolated applications. In the field of TinyML, implementing machine learning techniques on resource-constrained devices like microcontrollers poses significant challenges, including outlier detection and correction. This work contributes to developing an unsupervised incremental learning algorithm for outlier processing within the context of TinyML. This innovative approach applies unsupervised machine learning for outlier detection and correction on resource-constrained devices, adapting to external variations over time. The algorithm addresses the problem of signal processing at the edge of IoT applications, enabling, for example, a smart meter to process events locally before sending data to the supervisory system. The solution was implemented and validated through simulations and tested on two different microcontrollers: the ATmega328P (Arduino) and the Espressif ESP32 (Freematics), confirming its feasibility and good performance. This work fills a gap in the literature by introducing a new approach for data processing on resource-limited devices, utilizing an incremental learning technique. The evaluation compared the results obtained on embedded systems with those obtained on computers using different programming languages and tools.