Applicazioni ingegneristiche delle reti neurali artificiali

Le applicazioni ingegneristiche delle reti neurali artificiali o Ann (Artificial Neural Networks) e del softcomputing in generale stanno diventando sempre più diffuse e rappresentano una delle più importanti innovazioni dell’elettronica e non solo. Le reti neurali artificiali sono parte di una metodologia di computing radicalmente distinta da quella tradizionale basata su algoritmi matematici e di logica booleana. Tale metodologia è denominata Softcomputing per distinguerla da quella algoritmica detta Hardcomputing e include altre metodologie tra cui le più note sono la logica fuzzy e gli algoritmi genetici. Si tratta di un modello computazionale di natura linguistico molto più vicino al modello umano di elaborazione dell’informazione che a quello dei calcolatori. Molti dei problemi con cui gli ingegneri progettisti di sistemi elettronici real-time devono spesso confrontarsi sono adatti ad essere risolti in maniera molto efficiente ed efficace con la metodologia di computing delle reti neurali. Si tratta di problemi che fanno riferimento a dati incompleti e soprattutto contaminati da rumore (per esempio le informazioni che arrivano dai sensori). Oltre a dati di natura incerta, gli ingegneri devono anche far riferimento a contesti applicativi di difficilmente modellabili con esattezza in termini matematici. Le reti neurali artificiali hanno un’importante peculiarità relativamente al fondamentale problema con cui si deve misurare un ingegnere progettista di sistemi embedded real-time che interagiscono con il modo fisico, la capacità di modellare tramite l’apprendimento diretto dal mondo fisico esterno.

Le reti come il cervello umano
Le reti neurali artificiali sono sistemi di elaborazione ispirati al modello di elaborazione del cervello umano, quindi consistono di centinaia e anche migliaia di nodi elementari di elaborazione (i neuroni) interconnessi tra loro in strutture ad elevato parallelismo. I neuroni artificiali sono una versione semplificata ma sufficientemente efficace per replicare le principali proprietà dei neuroni naturali cui si ispirano, come per esempio la memoria a breve, medio e lungo termine. Un neurone trasmette agli altri neuroni un segnale (spike) solo quando riceve abbastanza e consistente informazione dagli altri neuroni a cui è interconnesso. I neuroni operano in parallelo e all’unisono relativamente agli stimoli che ricevono dal mondo esterno per produrre stimoli di controllo verso il mondo esterno. L’aggregazione in strutture di elaborazione parallela è di natura specialistica (finalizzata ad una specifica funzionalità, per esempio riconoscere una persona dal tono della voce senza ausilio visuale). La rete neurale è dunque un sistema composto da molti elementi di elaborazione capaci di operare in parallelo e il cui funzionamento è determinato dalla struttura della rete, dall’intensità delle sue interconnessioni e dall’elaborazione eseguita dagli elementi di elaborazione. La caratteristica della rete neurale è dunque quella di acquisire la conoscenza attraverso il processo di apprendimento e di memorizzare la conoscenza acquisita attraverso il rafforzamento delle connessioni (sinapsi).
È importante sottolineare che la soluzione al problema non viene trovata dal progettista ma dalla rete neurale artificiale che questo realizza e addestra. Ciò significa che la rete non può essere programmata come un computer per eseguire un algoritmo e quindi il suo comportamento è impredicibile in quanto dipendente dal fatto che la sua struttura (network) sia adatta alla soluzione del problema e che il suo addestramento (learning) sia stato fatto in maniera efficace. Malgrado questa natura indiretta e vaga di progettazione delle reti neurali, queste si rivelano estremamente più efficaci ed efficienti dei sistemi tradizionali di elaborazione al crescere della complessità del problema che devono risolvere e di fronte alla disponibilità di dati confusi e rumorosi.  Un esempio chiarissimo di questa natura applicativa delle reti neurali artificiali e delle relative potenzialità dimostrate nella metà degli anni 80 da Terrence Sejnowski Charles Rosenberg con il sistema di sintesi vocale da testo NETTalk, una rete neurale artificiale di tipo Back Propagation addestrata ad articolare foneticamente il testo scritto. Il risultato eccezionale di questo esperimento, eseguito quando venivano appena introdotti i primi microprocessori a 8 bit, è consistito soprattutto nel dimostrare la capacità di apprendimento della rete neurale artificiale nella stessa modalità di quella degli esseri umani. NETTalk imparava a parlare come un bambino e con il miglioramento dell’apprendimento parlava in maniera sempre più corretta e fluente  come un adulto. L’apprendimento di NETTalk avveniva tramite “ascolto” di esempi audio.
La metodologia neurale per la sintesi vocale da testo è stata utilizzata più recentemente, in considerazione della possibilità di portare su piattaforma embedded questo tipo di applicazione e integrarla con altre applicazioni di natura neurale come il riconoscimento fonetico basato sulle memorie associative per avere un sistema completamente neurale di riconoscimento vocale da testo e risposta vocale da testo.

Verso il chip neurale
La realizzazione sotto forma di circuito integrato della rete neurale artificiale è il passo fondamentale per le applicazioni ingegneristiche di questo del modello computazionale capace di risolvere in maniera efficace problematiche applicative molto complesse, ma allo stesso tempo molto utili alle attività umane. Nel 1989 Intel aveva sviluppato il chip neurale Etann dotato di 10240 sinapsi utilizzando la tecnologia Fgcmos per la memorizzazione di informazioni di natura analogica, come i pesi delle sinapsi. Ovviamente questa è stata una dimostrazione di fattibilità, dato che il livello di integrazione microelettronica a quell’epoca era senza dubbio non sufficiente alla realizzazione del numero abbastanza elevato di neuroni su singolo chip tipicamente richiesto dalle applicazioni embedded.

Un core neurosinaptico digitale
Risale ad appena un anno fa l’annucio di Ibm relativo alla realizzazione di un core neurosinaptico digitale. Si tratta di un microprocessore che implementa 256 neuroni Lif (Leaky integrate-and-fire) in tecnologia Cmos. I neuroni sono organizzati in un array 16 x 16. Ogni neurone è connesso all’altro da 1024 sinapsi, consentendo in tal modo di realizzare 262144 sinapsi su un singolo core. Il processo di produzione è quello a 45 nm Soi. La caratteristica principale di questi dispositivi è quella della completa integrazione tra funzionalità computazionale e memoria, fattore questo fondamentale per l’esecuzione parallela dell’elaborazione e per la riduzione dei consumi di potenza. L’obiettivo di questa tecnologia è quello di arrivare ad una scala di integrazione tale da raggiungere la densità neurale paragonabile a quella del cervello umano, cioè dell’ordine delle centinaia di trilioni di sinapsi.

Reti neurali biologiche
Un’altra importante possibilità in termini di integrazione della funzionalità neurale è quella delle reti neurali biologiche integrabili nei sistemi elettronici. Il Mae (Multi-Electrode Array) è la novità più importante in fatto di integrazione in quanto consente di integrare la funzionalità elettronica con quella biologica. Questa tecnologia prevede di far sviluppare una cultura di celle neurali direttamente su un substrato adatto a impiantare elettrodi e che consentono l’interconnessione verso i sistemi elettronici. Gli elettrodi sono molto sottili, dell’ordine dei 30 micrometri di diametro e prossima alla dimensione del neurone stesso. Kevin Warwick, Professore di Cibernetica all’Università di Reading in Inghilterra, ha illustrato alla recente conferenza Eann2012 di Londra le entusiasmanti prospettive della realizzazione di dispositivi neurali biologici integrabili nell’elettronica, come il Mea. Questa è un’interfaccia tra funzionalità elettronica e funzionalità biologica. Il vantaggio di questa tecnologia rispetto a quella esclusivamente microelettronica è duplice. Da una parte offre la possibilità di utilizzare funzionalità biologiche in un contesto microelettronico, nella fattispecie le cellule neurali. Dall’altra quella di poter connettere ed anche impiantare negli esseri viventi dispositivi microelettronici in diretta connessione con apparati biologici anche molto complessi come per esempio quelli sensoriali. Nel caso più avanzato si avrebbe la possibilità di sostituire funzionalità biologiche con dispositivi Mea opportunamente configurati e composti in maniera ibrida da parte biologica e parte microelettronica. Questa strada del mix tra biologico e microelettronico è da tempo percorsa, con successi importanti dall’industria dei semiconduttori. 

Un biosensore con cellule nervose viventi
Infineon, in cooperazione con il Max Planck Institute, ha sviluppato e realizzato un biosensore con cellule nervose viventi capaci di leggere segnali elettrici prodotti dalle cellule nervose. Questa dirompente innovazione tecnologica chiamata Neuro-Chip è stata descritta con un articolo presentato alla International Solid State Circuits ISSC 2003, uno dei più importanti forum di discussione delle innovazioni tecnologiche della microelettronica. Il chip di Infineon integra 128 x 128 sensori. Questo array di sensori copre una superficie di solo 1 mmq. Sotto ogni sensore è integrato un amplificatore per processare opportunamente i piccoli segnali generati dal sensore neurale. Ogni neurone è immerso in una soluzione nutriente che mantiene vivo il neurone e consente la ricostruzione del tessuto nervoso. La densità in termini di sensori del Neuro-Chip è di 300 volte superiore a quella ottenibile con i metodi di integrazione correnti. Ogni sensore dista dall’altro solo 8 micron.

Applicazioni anche industriali
Le applicazioni ingegneristiche delle reti neurali sono ormai numerose e coprono la maggior parte dei campi applicativi in ambito industriale e presto saranno anche molto diffuse in abito civile, come quello medicale o quello consumer. Esempi di applicazioni sono:
•    Riconoscimento di oggetti in movimento
•    Modellazione di dati di natura elettroencefalografica e riconoscimento di pattern
•    Controllo dei robot attraverso segnali elettroencefalografico
•    Controllo del movimento dei robot e gruida
•    Riconoscimento del linguaggio gestuale
•    Robotica cognitiva ed emozionale
•    Robotica neuroriabilitativa
•    Robotica neurogenetica
•    Riconoscimento audio-visuale della voce
•    Retina su silicio
•    Coclea su silicio
La realizzazione delle applicazioni basate sulle reti neurali presuppone la disponibilità di dispositivi di elaborazione ad elevatissima potenza computazionale come i core e i multicore processor di ultima generazione o architetture hardware parallele programmabili come le Fpga ad elevatissima densità, oppure, come sta dimostrando il trend tecnologico attuale, di dispositivi che implementano direttamente sul silicio il modello computazionale neurale (il neurone e le sue proprietà) oppure il neurone biologico stesso.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome