Cnn, oltre i limiti del Risc computing

La crescente complessità computazionale delle applicazioni, soprattutto quelle di natura multimediale, ha portato ai limiti le possibilità implementative basate sulle capacità di elaborazione delle architetture computazionali, principalmente di natura Risc. Il nuovo paradigma di elaborazione, “bio inspired”, noto come Convolutional neural networks, è la soluzione al superamento di questi limiti su cui, sia i produttori di componenti microelettronici, che gli sviluppatori di applicazioni computazionalmente intensive, stanno ponendo grande attenzione e capacità di ricerca e sviluppo.

L’evoluzione delle architetture

Negli anni ’80 si ebbe la sensazione che i limiti delle architetture di elaborazione, prevalentemente quelle di natura Cisc (Complex instruction set computer) fossero stati raggiunti e che potessero essere superati solo miglioramenti della microelettronica (transistor più piccoli e frequenze di clock più elevate). Dato che i limiti della capacità di integrazione cominciavano a diventare sempre più evidenti, cominciò a farsi strada l’idea che l’architettura computazionale poteva essere una soluzione efficace. Parallelismo e pipeline furono le prime soluzioni di architettura computazionale che cominciarono ad essere introdotte nelle architetture Cisc allo stato dell’arte (doppia Cpu ed estensione del numero di bus oltre il singolo bus tipico dei Cisc). Ciò portò in primo piano la proposta alternativa al Cisc nota come Risc (Reduced set instruction computer) che riducendo il set di istruzioni del processore, guadagnava in capacità di integrazione favorendo il parallelismo massiccio (Cpu multiple e Bus multipli). Negli anni 2000 emerge una sensazione simile a quella degli anni ’80, cioè che i limiti dei processori Risc siano stati raggiunti in concomitanza con i raggiunti limiti di riduzione della geometria di integrazione dei semiconduttori. La soluzione per il superamento di tali limiti sta ancora una volta nell’architettura (parallelismo e nuovi paradigmi computazionali). Dato che uno dei principali limiti all’efficienza computazionale sta proprio nel modello sequenziale di esecuzione delle istruzioni tipico dei Risc, la nuova proposta innovativa si chiama Zisc (Zero instruction set computer), cioè computer che non utilizzano istruzioni per eseguire un processo di elaborazione dell’informazione. L’architettura Zisc è stata per la prima volta proposta da Guy Paillet e Pascal Tannhof, che la svilupparono presso la Ibm. Zisc è un processore basato sul data driven processing e non sul microcodice e le istruzioni di programmazione, da cui il nome Zero Instruction Set Computer. Le architetture di elaborazione di natura data driven sono le reti neurali artificiali, un paradigma computazionale ispirato al modello di elaborazione del cervello umano, da cui la definizione “bio inspired computer”.

Le reti neurali artificiali

Le reti neurali artificiali o Ann (Artificial neural network) sono paradigmi computazionali ispirati dal modello biologico del cervello umano. Questi paradigmi sono stati studiati e modellati da decenni prima del paradigma computazionale del computer Von Neuman, quello attualmente più utilizzato e che sta evidenziando tutti i suoi limiti. La principale peculiarità delle Ann è il pieno parallelismo esecutivo. Una rete neurale artificiale è infatti una interconnessione di neuroni artificiali o PE (Processing Elements) che operano indipendentemente tra loro. La differenza rispetto a una Cpu è che il processo di elaborazione è basato sui dati e non su un codice di programmazione. Le connessioni sono dotate di pesi numerici e questi rappresentano il modello di programmazione della rete. I pesi numerici vengono determinati nella cosiddetta fase di apprendimento della rete. Quindi L’Ann è un computer data- driven che si differenzia in ciò dal computer Von Neuman che è invece code-driven. La rete neurale si programma attraverso un meccanismo di apprendimento per esempi, utilizzando i dati reali. Le Ann sono strutturate a strati, ogni strato realizza un livello di conoscenza. Il primo strato, quello cosiddetto di input, estrae dai dati di ingresso le informazioni di primo livello, che trasmette allo strato successivo attraverso le connessioni sotto forma di impulso che il peso ad essa associato amplifica in termini moltiplicativi e quindi sottopone ad una funzione non lineare di trasferimento vero l’uscita del neurone. Il meccanismo di elaborazione neurale è relativamente semplice in quanto se un numero abbastanza grande di neuroni si trova nella condizione di produrre uno spike in uscita, si determina una risposta positiva della rete corrispondente a una specifica combinazione di dati di ingresso, che per esempio potrebbe essere un pattern da riconoscere (come un’immagine). La peculiarità delle Ann, oltre all’elevata velocità di elaborazione delle informazioni (diretta conseguenza dell’architettura ad elevatissimo parallelismo esecutivo), sta anche nella modalità di progettazione. Le Ann non sono basate sull’esecuzione di algoritmi matematici o logici, quindi hanno un diverso paradigma di “programmazione”: quello dell’apprendimento della soluzione di un problema tramite addestramento basato su esempi. Cioè una serie di dati che rappresentano l’informazione da elaborare e un dato che rappresenta la soluzione del problema associato ai dati. Le Ann hanno al loro interno un meccanismo di autoconfigurazione che consente loro di modificare i pesi e le connessioni, in funzione delle indicazioni di errore che esse ricevono durante la fase di addestramento processando i dati di ingresso. Grazie a questa peculiarità, le Ann permettono di risolvere in maniera relativamente semplice problematiche in alcuni casi impossibili da risolvere con i metodi algoritmici e con i tradizionali computer, soprattutto le problematiche di natura non lineare, per esempio demiscelare le sorgenti audio.

Dalla rete neurale artificiale alla rete neurale convolutiva

Le reti neurali artificiali sono sistemi che interconnettono tra loro i neuroni i quali sono a tutti gli effetti dei processori (PE) che ricevono informazioni in ingresso e producono informazioni in uscita. Il modello di interconnessione tra i PE di una rete neurale è ad elevatissimo parallelismo, nel senso che ogni PE elabora le sue informazioni senza tempi di attesa e quindi, per una Ann il tempo di risposta a uno stimolo in ingresso è estremamente piccolo, in quanto tale tempo dipende solo dal tempo di propagazione dei segnali di ingresso e di uscita da ogni PE. Il tempo di elaborazione interno di un PE è minimo, in quanto il PE esegue operazioni semplici come la sommatoria di prodotti, implementata in alcuni casi con circuiteria elettronica analogica (quindi ultraveloce). Un neurone consiste di assoni che lo connettono agli altri neuroni tramite punti di connessione in ingresso chiamati sinapsi (w). Le sinapsi sono un meccanismo di connessione peculiare dei neuroni che li rendono particolarmente potenti nella loro capacità di imparare ad apprendere funzioni molto complesse, come quelle del riconoscimento e del controllo. La sinapsi è un meccanismo di collegamento programmabile dell’assone verso il neurone. L’assone porta l’informazione elaborata da un neurone a un altro neurone, la sinapsi consente di modulare in termini moltiplicativi (come un amplificatore) l’informazione in ingresso al neurone che riceve. La sinapsi è una specie di parametro di configurazione collocato sul dendrite (la fibra che porta le informazioni in ingresso al neurone). La sinapsi è modificabile nel tempo in modo da consentire al neurone di memorizzare il modello di interpretazione degli stimoli di ingresso per produrre la migliore risposta agli stimoli di ingresso per eseguire la funzione desiderata. Le sinapsi (w) vengono modificate durante la fase di addestramento della Ann attraverso un meccanismo basato su esempi di dati forniti in ingresso alla Ann e di misura dell’errore di risposta prodotto da ogni PE, con un algoritmo detto Error Back Propagation, cioè di propagazione a ritroso dall’uscita verso l’ingresso dell’errore: maggiore l’errore più forte la correzione del coefficiente (w) che rappresenta la sinapsi. Questo meccanismo è la principale e più importante peculiarità della Ann, in quanto consente a questa di imparare ad eseguire correttamente e velocemente una funzione direttamente dai dati. Quindi, quando per una certa applicazione non è noto o non si riesce a ricavare un modello matematico o funzionale che possa essere tradotto in un algoritmo eseguibile da una macchina sequenziale come il calcolatore, allora la Ann è la soluzione più semplice a problemi impossibili (tipicamente quelli non lineari), come per esempio capire cosa sta dicendo una persona immersa in una folla di centinaia di altre persone tutte parlanti ad alta voce. Le Ann sono organizzate a strati, con un’architettura parallela in cui ogni neurone di uno strato può essere direttamente connesso a un neurone dello strato superiore senza limitazioni al flusso dell’informazione dall’ingresso verso l’uscita. Problematiche molto complesse, come la visione e il riconoscimento automatico dei segni e delle forme nella guida assistita delle automobili, trovano la migliore soluzione computazionale proprio nel modello di elaborazione delle Ann. Data la grande importanza delle applicazioni di visione artificiale in campo automobilistico, grande attenzione è stata posta nello studio del miglior modello possibile di Ann. Dato che la Ann è un modello computazionale ispirato alla biologia del cervello degli esseri viventi, studiando il meccanismo della visione degli esseri viventi, presente nella corteccia cerebrale, è stato scoperto che in questa zona del cervello c’è un numero molto elevato di cellule specializzate nella rivelazione di particolari luminosi in sotto regioni sovrapposte del campo visivo (i cosiddetti campi recettivi). Tali cellule si comportano come filtri locali capaci di estrarre caratteristiche dell’immagine molto particolari che consentono di rendere particolarmente efficiente il processo finale di riconoscimento dell’immagine in situazioni difficili come le distorsioni o il rumore delle immagini. Questi studi hanno portato alla modellazione delle Reti Neurali Convolutive o Cnn (Convolutional neural networks). Lo strato di ingresso delle Cnn implementa, secondo il modello convolutivo, la funzione svolta dalle cellule dell’area della visione, la corteccia cerebrale svolge la funzione di estrattore di caratteristiche. Le Cnn vengono vantaggiosamente utilizzate in molti campi applicativi in cui il riconoscimento delle immagini è una funzione vitale del sistema. Dato che il modo tradizionale di sviluppare un sistema di riconoscimento di immagini è fondamentalmente di natura manuale, la capacità di una Cnn di imparare in maniera automatica a riconoscere rappresenta un enorme vantaggio e grande interesse per gli sviluppatori.Le Cnn sono un caso speciale di Ann. Le Cnn sono strutturate a livelli come le Ann, ma a differenza di queste i livelli sono specializzati in funzioni che permettono di rendere più efficiente e robusta la Cnn rispetto a una generica Ann. I livelli della Cnn sono quello convolutivo (tipicamente implementato in ingresso), quello di sottocampionamento (subsampling) che riduce la risoluzione delle caratteristiche estratte dallo strato convolutivo rendendo la Cnn più efficiente e robusta rispetto al rumore. A tale livello di sottocampionamento segue un eventuale altro livello convolutivo. Infine la Cnn si conclude con un livello di interconnessione completo che implementa lo stadio finale che porta alla decisione che produce il risultato finale del riconoscitore (il riconoscimento).

Una Cnn gerarchica per il riconoscimento dei segnali stradali

Date le enormi potenzialità applicative delle Cnn nel campo del Pattern Recognition, l’industria informatica sta ponendo grande attenzione allo sviluppo di questo nuovo paradigma computazionale in termini di hardware dedicato facilmente integrabile in applicazioni come quelle richieste in campo automotive e dell’automazione industriale. Cadence per esempio sta lavorando su un algoritmo che consente di ottenere un buon compromesso tra complessità e prestazioni, considerando che le risorse computazionali rappresentano spesso un vincolo importante per i sistemi embedded. Il modello Cnn è stato implementato sul processore Vision P5 di Tensilica, un Dsp ad elevatissime prestazioni specificamente sviluppato per applicazioni di imaging e computer vision. P5 è un Dsp ad architettura Vliw (Very long instruction word) con supporto Simd (Single instruction multiple data). È caratterizzato da un’istruzione a 96 bit ed è capace di caricare parole da 1024 bit ad ogni ciclo di accesso alla memoria. I registri interni e le unità operative sono da 512 bit a 1536 bit e i dati possono avere formati qualsiasi (8, 16, 24, 32 e 48 bit). Il P5 è un Dsp fixed-point, quindi a bassissimo consumo. Cadence ha sviluppato una Cnn gerarchica per il riconoscimento dei segnali stradali particolarmente performante grazie alle capacità computazionali del Dsp P5 di Tensilica; oltre 850 cartelli stradali differenti riconosciuti a 600 MHz di clock.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome