In the last decades and, in particular, in the last few years, Deep Learning (DL) solutions emerged as state of the art in several domains, e.g., image classification, object detection, speech translation and command identification, medical diagnoses, natural language processing, artificial players in games, and many others. In the same period, following the massive spread of pervasive technologies such as Internet of Things (IoT) units, embedded systems, or Micro-Controller Units (MCUs) in various application scenarios (e.g., automotive, medical devices, and smart cities, to name a few), the need for intelligent processing mechanisms as close as possible to data generation emerged as well. The traditional paradigm of having a pervasive sensor (or pervasive network of sensors) that acquires data to be processed by a remote high-performance computer is overcome by real-time requirements and connectivity issues. Nevertheless, the memory and computational requirements characterizing deep learning models and algorithms are much larger than the corresponding abilities in memory and computation of embedded systems or IoT units, significantly limiting their application. The related literature in this field is highly fragmented, with several works aiming to reduce the complexity of deep learning solutions. However, only a few aim to deploy such DL algorithms on IoT units or even on MCUs. All these works fall under the umbrella of a novel research area, namely Tiny Machine Learning (TML), whose goal is to design machine and deep learning models and algorithms able to take into account the constraints on memory, computation, and also energy the embedded systems, the IoT, and the micro-controller units impose. This work aims to introduce a methodology as well as algorithms and solutions to close the gap between the complexity of Deep Learning solutions and the capabilities of embedded, IoT, or micro-controller units. Achieving this goal required operating at different levels. First, the methodology aims at proposing inference-based Deep Tiny Machine Learning solutions, i.e., DL algorithms that can run on tiny devices after their training has been carried out elsewhere. Second, the first approaches to on-device Deep Tiny Machine Learning training are proposed. Finally, the methodology encompasses Wide Deep TML solutions that distribute the DL processing on a network of embedded systems, IoT, and MCUs. The methodology has been validated on available benchmarks and datasets to prove its effectiveness. Moreover, in a ``from the laboratory to the wild'' approach, the methodology has been validated in two different real-world scenarios, i.e., the detection of bird calls within audio waveforms in remote environments and the characterization and prediction of solar activity from solar magnetograms. Finally, a deep-learning-as-a-service approach to support privacy-preserving deep learning solutions (i.e., able to operate on encrypted data) has been proposed to deal with the need to acquire and process sensitive data on the Cloud.

Negli ultimi decenni e in particolare negli ultimi anni, le soluzioni di Deep Learning sono velocemente diventate lo stato dell'arte in diversi scenari applicativi ``intelligenti''. Gli esempi più noti sono: la classificazione, il rilevamento e l'identificazione di oggetti nelle immagini; la classificazione di video e la creazione automatica di sottotitoli o descrizioni; la traduzione di discorsi; il riconoscimento di comandi vocali; le diagnosi mediche; l'analisi del linguaggio scritto; le intelligenze artificiali nei giochi; i sistemi di navigazione automatica delle automobili o dei droni; e i sistemi di raccomandazione ad esempio di film o prodotti in un mercato. Nello stesso periodo, anche le tecnologie pervasive hanno vissuto una rapida espansione in vari scenari applicativi, come nei dispositivi medici; nelle automobili (ad esempio nella gestione degli airbag, nel mantenimento di una velocità di crociera, nel controllo di trazione e del sistema frenante); e nelle cosiddette Smart Cities (ovvero l'utilizzo di sistemi pervasivi in vari ambiti urbani, come la gestione dell'illuminazione pubblica, del trasporto pubblico o il monitoraggio ambientale). Esempi di dispositivi pervasivi sono i sistemi embedded, l'Internet of Things (IoT) e i micro-controllori, di seguito indicati per brevità come unità IoT. La necessità di spostare gli algoritmi intelligenti (ad esempio, per il riconoscimento di guasti o di cambiamenti nell'ambiente) il più vicino possibile al punto in cui i dati vengono generati è l'immediata conseguenza della diffusione pervasiva delle unità IoT. Il paradigma tradizionale dove un sensore pervasivo acquisisce dati e li inoltra verso un server remoto (ad esempio, sul Cloud) --dove viene svolta tutta la computazione intelligente-- in attesa di una risposta (ad esempio un comando per gli attuatori) non è più realistica e attuabile per tre motivi. In primo luogo, la connessione verso i server remoti deve essere stabile e ad alta velocità affinché l'intera soluzione sia attiva in maniera continuativa. In secondo luogo, delegare la computazione intelligente a un server remoto non è applicabile in tutti quegli scenari applicativi critici dove sono presenti requisiti stretti in termini di latenza tra l'acquisizione del dato e l'attuazione della corrispondente decisione. Infine, è preferibile non ricorrere a un server remoto laddove i dati che vengono acquisiti e inviati sono sensibili (ad esempio, quando vengono analizzate diagnosi mediche o immagini di persone in un sistema di video-sorveglianza). Il problema principale nell'eseguire algoritmi intelligenti (e.g., basati su Deep Learning) su unità IoT è la complessità di quest'ultimi. Infatti, i requisiti in termini di memoria, computazione ed energia dei modelli di Deep Learning sono quasi sempre in contrasto con le corrispondenti capacità in termini di memoria, computazione ed energia disponibili nelle unità IoT. Per avere un'idea, i modelli convolutivi usati nel dominio delle immagini hanno decine di milioni di parametri (i modelli di ResNet hanno da 11 a 60 milioni di parametri, mentre quelli Inception da 24 a 43), mentre i modelli usati per modellare il linguaggio, come BERT, richiedono centinaia di milioni o miliardi di parametri. Siccome ogni parametro viene solitamente rappresentato con un tipo di dato a 32 bit, si osserva subito come la memoria richiesta soltanto per i parametri dei modelli scala facilmente da decine di mega-byte ai giga-byte. In termini di computazione richiesta, invece, il numero di operazioni richieste per classificare una singola immagine da modelli come la ResNet o l'Inception varia dai 5 agli 11 milioni. L'altra faccia della medaglia sono le capacità delle unità IoT. Ad esempio, il micro-controllore STM32H743ZI ha a disposizione 1024 kilo-byte di memoria e un processore Cortex M7 a 480 MHz, mentre gli altri micro-controllori hanno a disposizione dai 96 ai 512 kilo-byte di memoria e processori a frequenze minori. In letteratura, questo problema è affrontato in maniera molto frammentata, con numerosi lavori che si pongono l'obiettivo di ridurre i requisiti di memoria o computazione delle soluzioni Deep Learning, ma con pochi lavori che hanno una visione d'insieme definendo quindi modelli di Deep Learning pensati per essere eseguiti su unità IoT. In particolare, si possono individuare tre principali aree di ricerca. La prima si concentra nello sviluppo di soluzioni hardware dedicate. Le piattaforme hardware risultanti sono caratterizzate dalle migliori prestazioni in termini di latenza (tempo di esecuzione dell'algoritmo per cui sono state pensate), di consumi energetici e di potenza richiesta. Tuttavia il processo di sviluppo risulta particolarmente complesso e le soluzioni sviluppate sono caratterizzate da una minore flessibilità. La seconda area di ricerca introduce varie tecniche di approssimazione per ridurre la complessità in termini di memoria o di computazione dei modelli di Deep Learning. Esempi di tali tecniche sono: la riduzione della precisione nella rappresentazione dei parametri (da un tipo di dato a 32 bit verso rappresentazioni a 16, 8 e perfino 2 o 1 bit); l'introduzione di tecniche di pruning (letteralmente potare in inglese) sui parametri o su alcuni task dei modelli di Deep Learning stessi; e l'introduzione di uscite intermedie che possono essere prese quando il modello di Deep Learning acquisisce abbastanza confidenza sulla decisione finale, saltando di conseguenza tutta la computazione rimanente. Infine, la terza e ultima direzione di ricerca divide i modelli di Deep Learning in task semplici e compatibili con le unità IoT e studia il modo migliore per distribuire questi task su un insieme di unità IoT connesse e potenzialmente eterogenee. Recentemente, è emersa una nuova area di ricerca, chiamata Tiny Machine Learning (TML), con l'obiettivo di sviluppare soluzioni di (Machine e) Deep Learning tenendo in considerazione i vincoli tecnologici dell'unità IoT su cui si pensa di eseguirle. L'impronta di memoria dei modelli TML generati deve essere quindi nell'ordine di grandezza di pochi kilo-byte, mentre il consumo energetico nell'ordine dei micro- o milli-Watt. La maggior parte delle soluzioni TML disponibili in letteratura (come anche parte delle soluzioni presentate in questo lavoro) si focalizza sullo sviluppo di soluzioni a supporto dell'inferenza dei modelli di Deep Learning, ovvero la gestione di un singolo dato in ingresso, come la classificazione di una immagine o la traduzione di una porzione di testo. Un'ulteriore direzione di ricerca, pressoché inesplorata in letteratura, ambisce a ideare soluzioni che permettono quello che in inglese viene definito come on-device learning, ovvero introdurre la possibilità di apprendimento per i modelli TML direttamente sull'unità IoT su cui vengono eseguiti. Il motivo di questa mancanza risiede principalmente nella particolare complessità delle tecniche di apprendimento rispetto alla semplice inferenza. Tuttavia, la capacità di apprendimento e quindi adattamento dei modelli TML direttamente sulle unità IoT è cruciale. L'ambiente in cui questi modelli operano è infatti tipicamente non stazionario, con effetti potenzialmente catastrofici sulle prestazioni dei modelli TML che assumono un ambiente immutabile nel tempo (esempi di cambiamenti che si riflettono nei dati acquisiti sono dovuti a guasti nei sensori di acquisizione, alla stagionalità o a effetti di invecchiamento). L'obiettivo di questo lavoro è la definizione di una metodologia per lo sviluppo di soluzioni di Deep and Wide Tiny Machine Learning, dove l'aggettivo deep (profondo in inglese) suggerisce l'utilizzo dei modelli di Deep Learning, mentre il termine wide (largo, ampio in inglese) la possibilità di definire task da distribuire su più unità IoT potenzialmente eterogenee. In aggiunta, questo lavoro definisce una prima soluzione al problema dell'on-device learning. La metodologia è stata validata sui dataset e sui benchmark disponibili per dimostrarne l'efficacia. Inoltre, secondo un approccio from the lab to the wild (dal laboratorio al selvaggio), alcune delle tecniche proposte sono state applicate in due scenari applicativi reali: il riconoscimento di vocalizzi di uccelli in aree remote (dove la connettività è assente o limitata) attraverso l'analisi di audio; e la caratterizzazione (e in futuro predizione) delle attività solari --altamente non stazionarie-- attraverso l'analisi dei magnetogrammi solari acquisiti dalla Terra. Infine, in questo lavoro viene presentato un approccio deep-learning-as-a-service in cui l'esecuzione dei modelli di Deep Learning viene eseguita su dati criptati, per gestire tutti i casi non coperti dalla metodologia presentata in cui è necessario utilizzare servizi sul Cloud, ma al tempo stesso garantire la privacy dei dati che vengono elaborati.

Deep and wide tiny machine learning

Disabato, Simone
2021/2022

Abstract

In the last decades and, in particular, in the last few years, Deep Learning (DL) solutions emerged as state of the art in several domains, e.g., image classification, object detection, speech translation and command identification, medical diagnoses, natural language processing, artificial players in games, and many others. In the same period, following the massive spread of pervasive technologies such as Internet of Things (IoT) units, embedded systems, or Micro-Controller Units (MCUs) in various application scenarios (e.g., automotive, medical devices, and smart cities, to name a few), the need for intelligent processing mechanisms as close as possible to data generation emerged as well. The traditional paradigm of having a pervasive sensor (or pervasive network of sensors) that acquires data to be processed by a remote high-performance computer is overcome by real-time requirements and connectivity issues. Nevertheless, the memory and computational requirements characterizing deep learning models and algorithms are much larger than the corresponding abilities in memory and computation of embedded systems or IoT units, significantly limiting their application. The related literature in this field is highly fragmented, with several works aiming to reduce the complexity of deep learning solutions. However, only a few aim to deploy such DL algorithms on IoT units or even on MCUs. All these works fall under the umbrella of a novel research area, namely Tiny Machine Learning (TML), whose goal is to design machine and deep learning models and algorithms able to take into account the constraints on memory, computation, and also energy the embedded systems, the IoT, and the micro-controller units impose. This work aims to introduce a methodology as well as algorithms and solutions to close the gap between the complexity of Deep Learning solutions and the capabilities of embedded, IoT, or micro-controller units. Achieving this goal required operating at different levels. First, the methodology aims at proposing inference-based Deep Tiny Machine Learning solutions, i.e., DL algorithms that can run on tiny devices after their training has been carried out elsewhere. Second, the first approaches to on-device Deep Tiny Machine Learning training are proposed. Finally, the methodology encompasses Wide Deep TML solutions that distribute the DL processing on a network of embedded systems, IoT, and MCUs. The methodology has been validated on available benchmarks and datasets to prove its effectiveness. Moreover, in a ``from the laboratory to the wild'' approach, the methodology has been validated in two different real-world scenarios, i.e., the detection of bird calls within audio waveforms in remote environments and the characterization and prediction of solar activity from solar magnetograms. Finally, a deep-learning-as-a-service approach to support privacy-preserving deep learning solutions (i.e., able to operate on encrypted data) has been proposed to deal with the need to acquire and process sensitive data on the Cloud.
PIRODDI, LUIGI
GATTI, NICOLA
16-feb-2022
Deep and wide tiny machine learning
Negli ultimi decenni e in particolare negli ultimi anni, le soluzioni di Deep Learning sono velocemente diventate lo stato dell'arte in diversi scenari applicativi ``intelligenti''. Gli esempi più noti sono: la classificazione, il rilevamento e l'identificazione di oggetti nelle immagini; la classificazione di video e la creazione automatica di sottotitoli o descrizioni; la traduzione di discorsi; il riconoscimento di comandi vocali; le diagnosi mediche; l'analisi del linguaggio scritto; le intelligenze artificiali nei giochi; i sistemi di navigazione automatica delle automobili o dei droni; e i sistemi di raccomandazione ad esempio di film o prodotti in un mercato. Nello stesso periodo, anche le tecnologie pervasive hanno vissuto una rapida espansione in vari scenari applicativi, come nei dispositivi medici; nelle automobili (ad esempio nella gestione degli airbag, nel mantenimento di una velocità di crociera, nel controllo di trazione e del sistema frenante); e nelle cosiddette Smart Cities (ovvero l'utilizzo di sistemi pervasivi in vari ambiti urbani, come la gestione dell'illuminazione pubblica, del trasporto pubblico o il monitoraggio ambientale). Esempi di dispositivi pervasivi sono i sistemi embedded, l'Internet of Things (IoT) e i micro-controllori, di seguito indicati per brevità come unità IoT. La necessità di spostare gli algoritmi intelligenti (ad esempio, per il riconoscimento di guasti o di cambiamenti nell'ambiente) il più vicino possibile al punto in cui i dati vengono generati è l'immediata conseguenza della diffusione pervasiva delle unità IoT. Il paradigma tradizionale dove un sensore pervasivo acquisisce dati e li inoltra verso un server remoto (ad esempio, sul Cloud) --dove viene svolta tutta la computazione intelligente-- in attesa di una risposta (ad esempio un comando per gli attuatori) non è più realistica e attuabile per tre motivi. In primo luogo, la connessione verso i server remoti deve essere stabile e ad alta velocità affinché l'intera soluzione sia attiva in maniera continuativa. In secondo luogo, delegare la computazione intelligente a un server remoto non è applicabile in tutti quegli scenari applicativi critici dove sono presenti requisiti stretti in termini di latenza tra l'acquisizione del dato e l'attuazione della corrispondente decisione. Infine, è preferibile non ricorrere a un server remoto laddove i dati che vengono acquisiti e inviati sono sensibili (ad esempio, quando vengono analizzate diagnosi mediche o immagini di persone in un sistema di video-sorveglianza). Il problema principale nell'eseguire algoritmi intelligenti (e.g., basati su Deep Learning) su unità IoT è la complessità di quest'ultimi. Infatti, i requisiti in termini di memoria, computazione ed energia dei modelli di Deep Learning sono quasi sempre in contrasto con le corrispondenti capacità in termini di memoria, computazione ed energia disponibili nelle unità IoT. Per avere un'idea, i modelli convolutivi usati nel dominio delle immagini hanno decine di milioni di parametri (i modelli di ResNet hanno da 11 a 60 milioni di parametri, mentre quelli Inception da 24 a 43), mentre i modelli usati per modellare il linguaggio, come BERT, richiedono centinaia di milioni o miliardi di parametri. Siccome ogni parametro viene solitamente rappresentato con un tipo di dato a 32 bit, si osserva subito come la memoria richiesta soltanto per i parametri dei modelli scala facilmente da decine di mega-byte ai giga-byte. In termini di computazione richiesta, invece, il numero di operazioni richieste per classificare una singola immagine da modelli come la ResNet o l'Inception varia dai 5 agli 11 milioni. L'altra faccia della medaglia sono le capacità delle unità IoT. Ad esempio, il micro-controllore STM32H743ZI ha a disposizione 1024 kilo-byte di memoria e un processore Cortex M7 a 480 MHz, mentre gli altri micro-controllori hanno a disposizione dai 96 ai 512 kilo-byte di memoria e processori a frequenze minori. In letteratura, questo problema è affrontato in maniera molto frammentata, con numerosi lavori che si pongono l'obiettivo di ridurre i requisiti di memoria o computazione delle soluzioni Deep Learning, ma con pochi lavori che hanno una visione d'insieme definendo quindi modelli di Deep Learning pensati per essere eseguiti su unità IoT. In particolare, si possono individuare tre principali aree di ricerca. La prima si concentra nello sviluppo di soluzioni hardware dedicate. Le piattaforme hardware risultanti sono caratterizzate dalle migliori prestazioni in termini di latenza (tempo di esecuzione dell'algoritmo per cui sono state pensate), di consumi energetici e di potenza richiesta. Tuttavia il processo di sviluppo risulta particolarmente complesso e le soluzioni sviluppate sono caratterizzate da una minore flessibilità. La seconda area di ricerca introduce varie tecniche di approssimazione per ridurre la complessità in termini di memoria o di computazione dei modelli di Deep Learning. Esempi di tali tecniche sono: la riduzione della precisione nella rappresentazione dei parametri (da un tipo di dato a 32 bit verso rappresentazioni a 16, 8 e perfino 2 o 1 bit); l'introduzione di tecniche di pruning (letteralmente potare in inglese) sui parametri o su alcuni task dei modelli di Deep Learning stessi; e l'introduzione di uscite intermedie che possono essere prese quando il modello di Deep Learning acquisisce abbastanza confidenza sulla decisione finale, saltando di conseguenza tutta la computazione rimanente. Infine, la terza e ultima direzione di ricerca divide i modelli di Deep Learning in task semplici e compatibili con le unità IoT e studia il modo migliore per distribuire questi task su un insieme di unità IoT connesse e potenzialmente eterogenee. Recentemente, è emersa una nuova area di ricerca, chiamata Tiny Machine Learning (TML), con l'obiettivo di sviluppare soluzioni di (Machine e) Deep Learning tenendo in considerazione i vincoli tecnologici dell'unità IoT su cui si pensa di eseguirle. L'impronta di memoria dei modelli TML generati deve essere quindi nell'ordine di grandezza di pochi kilo-byte, mentre il consumo energetico nell'ordine dei micro- o milli-Watt. La maggior parte delle soluzioni TML disponibili in letteratura (come anche parte delle soluzioni presentate in questo lavoro) si focalizza sullo sviluppo di soluzioni a supporto dell'inferenza dei modelli di Deep Learning, ovvero la gestione di un singolo dato in ingresso, come la classificazione di una immagine o la traduzione di una porzione di testo. Un'ulteriore direzione di ricerca, pressoché inesplorata in letteratura, ambisce a ideare soluzioni che permettono quello che in inglese viene definito come on-device learning, ovvero introdurre la possibilità di apprendimento per i modelli TML direttamente sull'unità IoT su cui vengono eseguiti. Il motivo di questa mancanza risiede principalmente nella particolare complessità delle tecniche di apprendimento rispetto alla semplice inferenza. Tuttavia, la capacità di apprendimento e quindi adattamento dei modelli TML direttamente sulle unità IoT è cruciale. L'ambiente in cui questi modelli operano è infatti tipicamente non stazionario, con effetti potenzialmente catastrofici sulle prestazioni dei modelli TML che assumono un ambiente immutabile nel tempo (esempi di cambiamenti che si riflettono nei dati acquisiti sono dovuti a guasti nei sensori di acquisizione, alla stagionalità o a effetti di invecchiamento). L'obiettivo di questo lavoro è la definizione di una metodologia per lo sviluppo di soluzioni di Deep and Wide Tiny Machine Learning, dove l'aggettivo deep (profondo in inglese) suggerisce l'utilizzo dei modelli di Deep Learning, mentre il termine wide (largo, ampio in inglese) la possibilità di definire task da distribuire su più unità IoT potenzialmente eterogenee. In aggiunta, questo lavoro definisce una prima soluzione al problema dell'on-device learning. La metodologia è stata validata sui dataset e sui benchmark disponibili per dimostrarne l'efficacia. Inoltre, secondo un approccio from the lab to the wild (dal laboratorio al selvaggio), alcune delle tecniche proposte sono state applicate in due scenari applicativi reali: il riconoscimento di vocalizzi di uccelli in aree remote (dove la connettività è assente o limitata) attraverso l'analisi di audio; e la caratterizzazione (e in futuro predizione) delle attività solari --altamente non stazionarie-- attraverso l'analisi dei magnetogrammi solari acquisiti dalla Terra. Infine, in questo lavoro viene presentato un approccio deep-learning-as-a-service in cui l'esecuzione dei modelli di Deep Learning viene eseguita su dati criptati, per gestire tutti i casi non coperti dalla metodologia presentata in cui è necessario utilizzare servizi sul Cloud, ma al tempo stesso garantire la privacy dei dati che vengono elaborati.
File allegati
File Dimensione Formato  
thesis.pdf

accessibile in internet per tutti

Dimensione 2.72 MB
Formato Adobe PDF
2.72 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/183012