L’AI sulla cresta dell’onda

Financial chart on city scape with tall buildings background multi exposure. Analysis concept.

L’intelligenza artificiale è ormai considerata l’opzione primaria per la soluzione dei problemi sempre più complessi con cui si devono confrontare gli sviluppatori in tutti i settori, da quello industriale (Industry 4.0) a quello automotive (ADAS), da quello medicale (telemedicina) a quello consumer (natural language processing, biometrico). Il problema fondamentale è di natura computazionale, di embedding, di cloud computing o di edge computing?

L'AI alle origini

L’Intelligenza Artificiale (AI) inizia ad essere studiata e applicata negli anni ‘80, ma in una forma e con tecnologie computazionali molto differenti da quelle attuali. Inizialmente sono i centri di ricerca e le università che studiano e sviluppano modelli applicativi basati principalmente sulla programmazione classica dei computer per far eseguire a questi processi decisionali simili a quelli utilizzati dagli esseri umani, da cui il termine “Sistemi Esperti”. Data la complessità computazionale dei Sistemi Esperti e l’ancora esordiente tecnologia dei microprocessori, non c’era adeguata potenza computazionale (off-the-shelf) per eseguire i Sistemi Esperti, quindi le piattaforme computazionali di riferimento furono le Workstation, tutt’altro che economiche e di pratico utilizzo, come invece a breve sarebbero stati i futuri personal computer e i microcalcolatori. Con lo sviluppo della rete dati (reti di calcolatori), in particolare Internet, le Workstation furono utilizzate come nodi di rete (Server), quindi furono disponibili a tutti come risorsa computazionale distribuita e quasi illimitata. Negli anni ‘90 si svilupparono i paradigmi computazionali neuromorfi come le Reti Neurali Artificiali (ANN), come le FFBPANN (Feed Forward Back Propagation Artificial Neural Network) e le Memorie Autoorganizzanti (SOM), potenzialmente più pratici dei modelli algoritmici dei Sistemi Esperti in quanto programmabili direttamente dai flussi di dati (le ANN FFBP imparano direttamente dai dati utilizzando un modello di programmazione predefinito, quindi sono data-driven e non code-driven). La maggiore potenza computazionale on-chip, disponibile a basso costo nei personal computer e successivamente nei system-on-chip (SoC) dei sistemi embedded (MCU) ha consentito agli sviluppatori di realizzare applicazioni basate sui principi dell’intelligenza artificiale (AI) di natura “brain-inspired” di cui anche la logica fuzzy ha rappresentato negli anni ‘90 un importante momento di innovazione nel campo dell’intelligenza artificiale, a costi e modalità di utilizzo personali. La pervasiva diffusione dello smartcomputing e la crescente richiesta di applicazioni come il riconoscimento delle immagini, del riconoscimento biometrico e del natural language processing, hanno spostato sulla rete la soluzione del problema computazionale creando il cosiddetto modello di computing basato sulle risorse di rete noto come Cloud Computing.

Il Cloud Computing

Il Cloud Computing è stata un’idea geniale per la pratica applicabilità dell’intelligenza artificiale in quanto solo una grande quantità di computer connessi in rete poteva rendere disponibile la potenza computazionale richiesta dai nuovi paradigmi di intelligenza artificiale (Reti Neurali Artificiali Convolutive), ma ovviamente, come spesso accade nelle soluzioni apparentemente belle, i nodi vengono sempre al pettine. Essendo I paradigmi di Intelligenza Artificiale data-driven, il punto debole di questa soluzione si è rivelato la connettività. Miliardi di dispositivi connessi in rete always-on e che trasmettono continuamente enormi di flussi di dati verso il Cloud mettono la rete in crisi rendendo inapplicabile l’Intelligenza artificiale in modalità di cloud computing.

L’alternativa a questa situazione di stallo è spostare in periferia (edge) il computing nella consapevolezza di disporre di miliardi di microcomputer connessi alla rete ognuno capace di eseguire autonomamente i necessari paradigmi di intelligenza artificiale, ottenendo in tal modo una significativa riduzione del flusso di dati dalla periferia al centro della rete (cloud), rendendo così fattibile quel paradigma di rete tanto evocato e noto come Internet-of-the-Things (Io).

Edge computing

L’obiettivo degli sviluppatori nell’applicare l’Intelligenza Artificiale alle loro applicazioni è di ridurre al minimo possibile il trasferimento di dati verso il data center (cloud) e il conseguente ritorno di dati dal data center verso il nodo periferico. Il risultato cui tale obiettivo porta sono una serie di vantaggi funzionali che confermano la validità di questa scelta:

Riduzione della latenza: molte applicazioni sono particolarmente sensibili al tempo che intercorre tra l’invio dei dati al data center e il ritorno della risposta dal data center, rendendo l’applicazione critica e non affidabile. Il computing a livello periferico (edge) risolve questo problema quando il paradigma dell’Intelligenza Artificiale viene eseguito in periferia dal processore del nodo periferico.

Riduzione delle dimensioni e del costo: anche se apparentemente la rete e il modello del cloud computing sembrano illimitati relativamente allo sviluppo futuro (Internet of Everything), cioè di miliardi di miliardi di dispositivi connessi in rete, di fatto, come si è già dimostrato in altri paradigmi tecnologici (integrazione microelettronica), i limiti fisici sono sempre presenti e a più o meno a lungo termine si manifestano.

Aumento della sicurezza: spostare in rete una grossa quantità di dati sensibili e proprietari non è considerata una condizione sicura per l’implementazione di applicazioni di Intelligenza Artificiale come il riconoscimento facciale e biometrico, il natural language processing o il trattamento di dati sanitari.

Quale tecnologia per l’AI-edge computing?

Vari sono i presupposti tecnologici che consentono di portare l’Intelligenza Artificiale alla periferia della rete (edge):

• disponibilità di piattaforme di computing di natura System-on-Chip;

• disponibilità di tecnologie di energy harvesting;

• disponibilità di paradigmi computazionali efficienti.

Come è noto quasi tutti i produttori di Micro Controller Unit (MCU) integrano un IP core basato su una delle innumerevoli architetture ARM. Questa architettura computazionale è stata progressivamente ottimizzata per soddisfare i requisiti di progettazione dei sistemi embedded, in particolare relativamente ai requisiti di efficienza computazionale, di consumo energetico, di dimensioni e costo. Tutti requisiti che soddisfano l’applicazione dei paradigmi di Intelligenza Artificiale a livello di edge-node. Core processor come quelli della famiglia ARM Cortex M4, per esempio, sono stati ottimizzati relativamente alle caratteristiche di computing normalmente richiesti dalle due fasi operative dei paradigmi di Intelligenza Artificiale: apprendimento (learning) e inferenza (inference). Entrambi questi due meccanismi sono computazionalmente intensivi e si caratterizzano per attività computazionali su dati di segnali fisici catturati da sensori da cui vanno misurate caratteristiche (features) che consentono di eseguire il cosiddetto apprendimento supervisionato. Questa attività di estrazione delle caratteristiche dai dati sensoriali è una tipica attività di signal processing che richiede architetture computazionali tipiche di processori Application Specific come i Digital Signal Processor (DSP) e di sottosistemi di condizionamento del segnale Mixed-Signal come i Convertitori Analogico/Digitali (ADC), di Analog Front-End (AFE), di sensori, tutti integrati insieme al core processor in un unico sistema su chip ad architettura SoC.

L’aspetto di basso consumo energetico è una parte essenziale di questa tecnologia di edge-computing in quanto l’autonomia energetica dell’edge-node o l’eventuale lunga durata della batteria che alimenta il nodo diventa un fattore determinante dell’applicazione per garantire a questa l’auspicata capacità di supportare autonomamente l’intera applicazione di Intelligenza Artificiale alla periferia della rete. L’energy harvesting è la tecnologia che prevede di raccogliere dall’ambiente esterno all’edge node, l’energia necessaria (termica, meccanica, luminosa, chimica, ecc.) , trasformarla e accumularla in forma elettrica per fornirla in maniera illimitata nel tempo al nodo. In altenativa alla soluzione di harvesting energetico, vengono applicate tecnologie di basso consumo energetico estremo (ultra low-power) che consentono di alimentare un nodo con una sola batteria a bottone per mesi o anche per anni.

Lo sviluppo di nuovi paradigmi computazionali per l’intelligenza artificiale ispirati al modello biologico del cervello degli esseri viventi (paradigmi AI bioinspired) è il terzo tassello con cui si sta concretizzando la possibilità di spostare in maniera efficiente l’Intelligenza Artificiale dal Cloud alla periferia della rete (edge). Questi nuovi paradigmi di Intelligenza Artificiale rappresentano la terza generazione di paradigmi di reti neurali artificiali che si ispirano al modello naturale del cervello biologico: Evolving Connectionist Systems (ECOS), Evolving Fuzzy Neural Network (EfuNN) ed Evolving Spiking Neural Network (ESSN). Questi paradigmi brain-inspired sono particolarmente efficienti proprio nella fase più complessa e critica del paradigma di Intelligenza Artificiale: l’apprendimento. Per tali paradigmi l’apprendimento può essere eseguito online, in un solo passo, senza estrazione preliminare delle caratteristiche (features) e in modalità evolutiva (incrementale senza azzeramento della memoria dell’apprendimento pregresso).

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome