The past decade has witnessed the rise and the widespread adoption of the Internet of Things (IoT) paradigm in a plethora of fields, and thus the deployment of embedded computational systems, like Micro Controller Units (MCUs), in a large range of applications. TinyML (short for Tiny Machine Learning) is a flourishing subfield of ML focusing on deploying and running Machine Learning and Deep Learning models on such extremely resource-constrained edge devices, empowering them with AI capabilities. In the context of embedded Artificial Neural Networks, the majority of TinyML research and solutions have focused on on-device inference, whereby a model is pre-trained on cloud (where high-performance hardware is available) and then converted into an optimized and low-memory version before being flashed on an edge device, where it is thereafter used for inference only. Training a Deep Learning model is a much more memory- and computationally-intensive process than employing it for inference, but on-device training could make it possible to adapt a pre-trained model on edge using locally acquired data. This would come with a plethora of benefits in terms of data privacy, security, model personalization, life-long learning, etc. In this thesis, developed in collaboration with STMicroelectronics, we work towards enabling on-device Deep Neural Networks training by reducing its memory requirements, with a focus on the activations (whose storage during Backpropagation is among the main sources of memory consumption in NN training) and on the models' parameters. Our strategy consists in using quantization to reduce the models' bit-width, and employing Reversible Layers - in their quantized version - to reduce the amount of intermediate activations that have to be stored in memory in order to perform backpropagation. We develop a Python framework based on TensorFlow Keras to simulate the quantized training of reversible NNs, and we employ it to assess the performance of our approach on benchmark image classification datasets while satisfying the memory constraint of 356KB imposed by our target hardware class (STM32F7 series MCU).

Lo scorso decennio è stato testimone dell'ascesa e dell'adozione del paradigma dell'Internet delle Cose (IdC) e del conseguente utilizzo di sistemi computazionali embedded, come ad esempio i microcontrollori (MCU), in numerosi contesti applicativi. TinyML, abbreviazione di Tiny Machine Learning, è un fiorente sottocampo del Machine Learning (ML) che si concentra sull'implementazione ed esecuzione di modelli di Machine Learning e Deep Learning su dispositivi a bassa memoria e con una limitata disponibilità di risorse computazionali, con lo scopo di munirli di funzioni di Intelligenza Artificiale. Tuttavia, nel contesto delle Reti Neurali embedded, la grande maggioranza della ricerca e dello sviluppo industriale si sono concentrate sullo sviluppare soluzioni volte alla sola inferenza su dispositivo. I modelli vengono addestrati su cloud (con ampia disponibilità di hardware ad alte prestazioni), per poi essere convertiti in versioni ottimizzate e a bassa memoria, che una volta trasferite sui dispositivi edge vengono utilizzate esclusivamente per l'inferenza. Rispetto a quest'ultima, l'addestramento di reti neurali è un processo estremamente dispendioso dal punto di vista computazionale e della memoria. La possibilità di addestrare una rete neurale su dispositivo tuttavia renderebbe possibile l'adattamento dei modelli al particolare contesto di utilizzo, con numerosi benefici in termini di privacy, sicurezza, personalizzazione dei modelli, etc. Lo scopo di questa tesi, sviluppata in collaborazione con la STMicroelectronics, è abilitare l'addestramento su dispositivo di reti neurale profonde riducendo la memoria che questo richiede. In particolare, ci focalizziamo sulla riduzione delle attivazioni - il cui stoccaggio in fase di retropropagazione è causa di un consumo elevato di memoria - e sui parametri dei modelli. La nostro approccio prevede l'utilizzo della quantizzazione per ridurre il numero di bit richiesti dai parametri dei modelli, e lo sviluppo di strati reversibili quantizzati, che consentono di ridurre significativamente il numero di attivazioni da salvare in memoria per l'addestramento tramite retropropagazione. Abbiamo inoltre sviluppato un framework Python basato su TensorFlow Keras in grado di simulare l'addestramento quantizzato di reti neurali reversibili, che abbiamo poi utilizzato per dimostrare sperimentalmente l'efficacia del nostro metodo in uno scenario di classificazione di immagini sotto il vincolo di memoria imposto dalla nostra classe di dispositivi di riferimento, i microcontrollori di serie STM32F7.

Quantized Reversible Layers for On-Device Neural Networks Training

Pollam, Giovanni Battista
2022/2023

Abstract

The past decade has witnessed the rise and the widespread adoption of the Internet of Things (IoT) paradigm in a plethora of fields, and thus the deployment of embedded computational systems, like Micro Controller Units (MCUs), in a large range of applications. TinyML (short for Tiny Machine Learning) is a flourishing subfield of ML focusing on deploying and running Machine Learning and Deep Learning models on such extremely resource-constrained edge devices, empowering them with AI capabilities. In the context of embedded Artificial Neural Networks, the majority of TinyML research and solutions have focused on on-device inference, whereby a model is pre-trained on cloud (where high-performance hardware is available) and then converted into an optimized and low-memory version before being flashed on an edge device, where it is thereafter used for inference only. Training a Deep Learning model is a much more memory- and computationally-intensive process than employing it for inference, but on-device training could make it possible to adapt a pre-trained model on edge using locally acquired data. This would come with a plethora of benefits in terms of data privacy, security, model personalization, life-long learning, etc. In this thesis, developed in collaboration with STMicroelectronics, we work towards enabling on-device Deep Neural Networks training by reducing its memory requirements, with a focus on the activations (whose storage during Backpropagation is among the main sources of memory consumption in NN training) and on the models' parameters. Our strategy consists in using quantization to reduce the models' bit-width, and employing Reversible Layers - in their quantized version - to reduce the amount of intermediate activations that have to be stored in memory in order to perform backpropagation. We develop a Python framework based on TensorFlow Keras to simulate the quantized training of reversible NNs, and we employ it to assess the performance of our approach on benchmark image classification datasets while satisfying the memory constraint of 356KB imposed by our target hardware class (STM32F7 series MCU).
CARRERA, DIEGO
CRAIGHERO, MICHELE
ING - Scuola di Ingegneria Industriale e dell'Informazione
5-ott-2023
2022/2023
Lo scorso decennio è stato testimone dell'ascesa e dell'adozione del paradigma dell'Internet delle Cose (IdC) e del conseguente utilizzo di sistemi computazionali embedded, come ad esempio i microcontrollori (MCU), in numerosi contesti applicativi. TinyML, abbreviazione di Tiny Machine Learning, è un fiorente sottocampo del Machine Learning (ML) che si concentra sull'implementazione ed esecuzione di modelli di Machine Learning e Deep Learning su dispositivi a bassa memoria e con una limitata disponibilità di risorse computazionali, con lo scopo di munirli di funzioni di Intelligenza Artificiale. Tuttavia, nel contesto delle Reti Neurali embedded, la grande maggioranza della ricerca e dello sviluppo industriale si sono concentrate sullo sviluppare soluzioni volte alla sola inferenza su dispositivo. I modelli vengono addestrati su cloud (con ampia disponibilità di hardware ad alte prestazioni), per poi essere convertiti in versioni ottimizzate e a bassa memoria, che una volta trasferite sui dispositivi edge vengono utilizzate esclusivamente per l'inferenza. Rispetto a quest'ultima, l'addestramento di reti neurali è un processo estremamente dispendioso dal punto di vista computazionale e della memoria. La possibilità di addestrare una rete neurale su dispositivo tuttavia renderebbe possibile l'adattamento dei modelli al particolare contesto di utilizzo, con numerosi benefici in termini di privacy, sicurezza, personalizzazione dei modelli, etc. Lo scopo di questa tesi, sviluppata in collaborazione con la STMicroelectronics, è abilitare l'addestramento su dispositivo di reti neurale profonde riducendo la memoria che questo richiede. In particolare, ci focalizziamo sulla riduzione delle attivazioni - il cui stoccaggio in fase di retropropagazione è causa di un consumo elevato di memoria - e sui parametri dei modelli. La nostro approccio prevede l'utilizzo della quantizzazione per ridurre il numero di bit richiesti dai parametri dei modelli, e lo sviluppo di strati reversibili quantizzati, che consentono di ridurre significativamente il numero di attivazioni da salvare in memoria per l'addestramento tramite retropropagazione. Abbiamo inoltre sviluppato un framework Python basato su TensorFlow Keras in grado di simulare l'addestramento quantizzato di reti neurali reversibili, che abbiamo poi utilizzato per dimostrare sperimentalmente l'efficacia del nostro metodo in uno scenario di classificazione di immagini sotto il vincolo di memoria imposto dalla nostra classe di dispositivi di riferimento, i microcontrollori di serie STM32F7.
File allegati
File Dimensione Formato  
pollam_giovanni_battista_executive_summary.pdf

non accessibile

Descrizione: Executive Summary
Dimensione 515.93 kB
Formato Adobe PDF
515.93 kB Adobe PDF   Visualizza/Apri
pollam_giovanni_battista_thesis.pdf

non accessibile

Descrizione: Thesis
Dimensione 2.18 MB
Formato Adobe PDF
2.18 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/211118