Intelligenza Artificiale e Sistemi Embedded

Edge Computing e IoT

I recenti progressi compiuti dalle tecnologie elettroniche hanno permesso ai sistemi embedded di comunicare con sensori e altri dispositivi di campo in modo semplice, efficace ed economico. Grazie a piattaforme software e protocolli di comunicazione standard, questi dispositivi sono in grado di raccogliere i dati acquisiti dai sensori e trasferirli sulla rete Internet attraverso dei gateway IoT (in Figura 1 sono visibili dei gateway IoT per utilizzo industriale). Il cloud computing e i data center distribuiti svolgono un ruolo fondamentale per l’archiviazione e l’analisi dei dati, innescando importanti processi decisionali. Tuttavia, essi presentano tre limiti principali:

  • latenza, non sempre sufficientemente ridotta da consentire un comportamento real-time del sistema;
  • ampiezza di banda: i dati acquisiti dai sensori e dai dispositivi di campo richiedono spesso un’ampiezza di banda e una velocità di trasferimento nono compatibili con un sistema embedded (si pensi a un sistema di acquisizione ed elaborazione video composto da una o più telecamere);
  • costo: una soluzione che preveda una connessione dedicata con un cloud server presenta dei costi nono trascurabili, spesse volte legati al numero di dispositivi IoT collegati e alla quantità di banda utilizzata.
Figura 1: gateway industriale per applicazioni industriali

L’edge computing supera questi limiti implementando direttamente sul dispositivo embedded algoritmi di intelligenza artificiale che si integrano con i sensori di campo. L’edge computing fornisce funzionalità di gestione avanzate riducendo così latenza, problemi di connessione e costi di infrastruttura. L’integrazione con le piattaforme cloud diventa una funzionalità aggiuntiva per una gestione dell’infrastruttura end-to-end più completa. L’edge computing sta letteralmente rivoluzionando il panorama delle applicazioni embedded e IoT in particolare, portando l’intelligenza il più possibile vicina al punto in cui vengono generati i dati. Sfruttando gli algoritmi di intelligenza artificiale (AI), le tecniche di machine learning e l’infrastruttura IoT, l’edge computing consente di ottenere un’elaborazione più rapida dei dati, migliora il processo decisionale e riduce sia il tempo di latenza che l’ampiezza di banda richiesta dall’applicazione.

Come esempio di applicazione, si consideri il caso di un veicolo a guida autonoma che deve continuamente inviare un flusso di dati, acquisiti dai molteplici sensori installati sul veicolo, a un server centralizzato. Supponiamo ora che il veicolo, durante il proprio funzionamento, debba assumere una decisione cruciale per l’incolumità dei passeggeri o per tutto ciò che circonda il veicolo. Le conseguenze potrebbero essere disastrose se il veicolo dovesse aspettare di ricevere dal cloud l’azione da intraprendere e applicarla. L’obiettivo dell’edge computing è proprio quello di spostare l’intelligenza e la capacità decisionale del cloud diretamente sul dispositivo IoT, rendendolo così maggiormente autonomo e indipendente. Riducendo il volume di dati scambiati con il cloud (che, nel caso dei veicoli a guida autonoma, può essere dell’ordine di diversi terabyte) si riduce drasticamente il tempo di latenza: il sistema diventa più reattivo, con la capacità di assumere decisioni in tempi minori. Anche le esigenze di disponibilità della banda vengono ridimensionate, minimizzando il traffico dati scambiato tra sistema embedded e server cloud. In entrambi i casi, si tratta di fattori cruciali per un sistema IoT embedded, dove la connettività presenta dei limiti legati alla banda e ai costi che essa comporta. Trattandosi poi di apparecchiature alimentate prevalentemente a batteria, occorre ridurre al minimo il tempo di utilizzo dei transceiver per la comunicazione wireless, una delle principali fonti di assorbimento di potenza in un dispositivo IoT.

The Era of AIOT - intelligenza artificiale

Deep Learning sui Sistemi Embedded

L’ultima evoluzione del machine learning (ML), meglio nota come deep learning (DL), è una tecnologia che sta rivoluzionando numerose applicazioni della nostra vita, rendendo i dispositivi elettronici sempre più intelligenti e dotati di capacità decisionali autonome. Supportato dalla crescente capacità di elaborazione e memoria degli attuali sistemi embedded, unitamente alla disponibilità di enormi set di dati pre-processati, il deep learning ha permesso di ottenere significativi risultati soprattutto nelle applicazioni di riconoscimento delle immagini, del testo e della voce. Rispetto all’apprendimento automatico di tipo tradizionale, il deep learning fornisce una maggiore precisione, maggiore versatilità e migliore utilizzo del big data. Come visibile nella rappresentazione grafica di Figura 2, il deep learning può essere considerato come un sottoinsieme del machine learning ed è basato sui modelli di reti neurali artificiali, note anche come ANN, acronimo di Artificial Neural Network.

deep learning
Figura 2: il Deep Learning è un sottoinsieme del Machine Learning

Le tecniche di deep learning mimano il comportamento del cervello umano nell’apprendimento e nell’analisi dei dati provenienti dal mondo reale e nella conseguente capacità di assumere delle decisioni. Il deep learning è in grado di eseguire algoritmi predittivi più velocemente e più efficientemente rispetto ad altre tecniche di intelligenza artificiale, con applicazioni che spaziano dal riconoscimento facciale all’identificazione della segnaletica stradale. Ogni soluzione di deep learning è tipicamente composta da due elementi, o fasi: addestramento e inferenza. L’addestramento (training) viene tipicamente eseguito offline, utilizzando degli enormi volumi di dati (dataset) che coprono il più possibile i casi applicativi (ad esempio, collezione di immagini relative a oggetti o cartelli stradali). Una volta completata la fase di addestramento, viene sviluppata e rilasciata sulla piattaforma target embedded la parte di inferenza, la quale dipenderà dalla particolare applicazione di riferimento. È importante sottolineare come i sistemi su cui vengono eseguiti l’addestramento e l’inferenza possono (il più delle volte, sono) differenti. Poiché infatti l’addestramento viene eseguito offline, è possibile utilizzare per questo scopo sistemi di elaborazione molto potenti, come cloud server o architetture basate su GPU multicore. Il sistema target su cui viene eseguita la parte di inferenza, viceversa, è un sistema embedded le cui risorse di elaborazione e di memoria sono comunque limitate. Ne consegue che, mentre l’addestramento può essere eseguito offline, l’inferenza deve necessariamente essere eseguita in tempo reale direttamente sul sistema embedded, il più possibile vicino alla sorgente dei dati acquisiti (si parla in questo caso di “edge computing”). Ad esempio, in molte applicazioni, dal rilevamento dei segnali stradali ai robot autonomi, l’inferenza deve essere eseguita localmente al fine di ridurre la latenza e migliorare l’affidabilità. L’implementazione locale, eseguita in tempo reale, di algoritmi di deep learning consente di selezionare la piattaforma embedded in grado di offrire il giusto compromesso tra dimensioni, prestazioni e consumo energetico.

Stiamo assistendo a una crescente adozione del deep learning in numerose applicazioni di intelligenza artificiale che spaziano dai veicoli autonomi, ai sistemi di videosorveglianza, all’analisi delle vendite e dei consumi, fino alla sanità e altro ancora. Per motivi di affidabilità, latenza, costo e prestazioni, è necessario che gli algoritmi di deep learning siano distribuiti localmente su piattaforme embedded. Tuttavia, ogni sistema embedded presenta i propri vincoli relativi a prestazioni, dimensione della memoria e assorbimento di potenza. I framework e gli strumenti software supportati da queste piattaforme possono variare. La procedura relativa alla gestione dei dati, selezione del framework, progettazione degli algoritmi di deep learning, ottimizzazione e porting sul sistema embedded integrato rappresentano un framework guida per la distribuzione degli algoritmi di deep learning su piattaforme embedded.

L’intelligenza artificiale accelera l’adozione della manutenzione predittiva

La manutenzione predittiva svolge un ruolo fondamentale nell’automazione della fabbrica ed è uno dei pilastri su cui si basa l’Industria 4.0. Lo scopo della manutenzione predittiva è quello di sfruttare i dati acquisiti da opportuni sensori per stabilire dove e quando si potrebbe verificare un malfunzionamento dei macchinari o di una linea produttiva, mettendo in atto le azioni correttive richieste. Più precisamente, la manutenzione predittiva svolge un duplice compito:

  • minimizzare il rischio dei guasti: ciò avviene monitorando lo stato di salute delle macchine e degli impianti e adottando opportune contromisure prima che si verifichi il problema;
  • trovare all’interno dei dati acquisiti delle relazioni, o pattern, che possano aiutare a predire un’anomalia. Ciò consente di evitare possibili guasti o malfunzionamenti, riducendo i tempi di fermo macchina e i costi ad essi associati, ottenendo un incremento dell’efficienza produttiva.

Alcuni studi di ricerca hanno evidenziato come, nel lungo termine, la manutenzione predittiva possa ridurre fino al 40% i costi di manutenzione e fino al 5% i costi relativi ai nuovi macchinari. Per raggiungere questi risultati ambiziosi è anzitutto necessario disporre di una quantità di informazioni sufficientemente ampia, sia per tipologia che per storicità. I dati sono normalmente acquisiti da sensori collocati nei punti critici dei macchinari, potendo di raccogliere in tempo reale informazioni quali: temperatura (sia del dispositivo che dell’ambiente), umidità, pressione e vibrazione. I tradizionali sistemi per il monitoraggio e il controllo degli impianti, come gli SCADA (Supervisory Control And Data Acquisition), non sono adatti a questo scopo, in quanto richiedono l’intervento manuale ed è praticamente impossibile, per un uomo, eseguire l’interpretazione di ingenti moli di dati in tempo reale.

Le soluzioni per la manutenzione predittiva sono oggi basate sull’intelligenza artificiale, in particolare sulle tecniche di machine learning (ML). Il ML è in grado di analizzare in tempo reale i dati acquisiti, trovando non soltanto le relazioni esistenti tra dati storici e misure correnti (i cosiddetti pattern), ma è anche in grado di avvisare il personale qualora venisse individuato un elevato rischio di guasto. Tutto ciò non richiede alcun intervento umano, ma solo la disponibilità dei dati. Gli algoritmi ML sono in grado di trovare una correlazione tra le performance passate di un impianto o macchinario (le serie storiche) e i dati acquisiti in tempo reale, con la possibilità di:

  • identificare possibili condizioni anomale o pericolose;
  • suggerire delle attività per mitigare i rischi;
  • proporre dei piani di manutenzione ottimizzati;
  • minimizzare i tempi di fermo macchina.

La manutenzione predittiva può essere formulata seguendo uno tra i seguenti due approcci:

  • classificazione: consiste nel predire se entro un intervallo di tempo prestabilito vi sarà una possibilità di guasto dell’apparecchiatura;
  • regressione: consiste nel predire quanto tempo rimane prima che si verifichi il prossimo guasto. Questo tempo viene anche chiamato RUL (acronimo di Remaining Useful Life).

Il primo approccio fornisce soltanto una risposta (predizione) di tipo booleano, quindi VERO oppure FALSO. Il vantaggio di questo approccio è quello di fornire un’elevata accuratezza anche utilizzando una quantità di dati limitata. Il secondo approccio, viceversa, richiede una maggiore quantità di dati ma fornisce anche informazioni più complete su quando si potrà verificare il prossimo guasto.

The Era of AIOT - intelligenza artificiale
Redazione Fare Elettronica