Tipologie e comportamenti di reti neurali convoluzionali
Rete neurale convoluzionale (CNN)
Una rete neurale convoluzionale (CNN o ConvNet dall’inglese ConvolutionalNeuralNetwork) è un tipo di rete neurale di tipo feed-forward ispirata all’organizzazione della corteccia visiva del cervello umano. Senza entrare nel dettaglio, possiamo affermare che il cervello umano opera delle semplificazioni per consentirci di riconoscere gli oggetti così come fa una rete neurale di tipo CNN. L’architettura base di una CNN è costituita da un blocco di input, uno o più blocchi nascosti (hidden layer), che effettuano calcoli tramite funzioni di attivazione (ad esempio RELU) ed un blocco di output che effettua la classificazione vera e propria. Di seguito l’architettura completa.
Input->Conv->ReLU->Pool->Conv->ReLU->Pool->ReLU->Conv->ReLU->Pool->FullyConnected |
La differenza, sostanziale, rispetto alle classiche reti feed forward è rappresentata dalla presenza dei livelli di convoluzione, che svolgono un lavoro molto importante in quanto estraggono, attraverso l’uso di filtri, delle caratteristiche delle immagini di cui si desidera analizzare il contenuto.
A differenza di una feed forward tradizionale che lavora “sull’informazione generale dell’immagine” una CNN lavora e classifica l’immagine basandosi su particolari caratteristiche della stessa. In altre parole, a seconda del tipo di filtro utilizzato è possibile identificare sull’immagine di riferimento cose diverse, ad esempio i contorni delle figure, le linee verticali, le linee orizzontali, le diagonali, etc.
Il livello di input è costituito da una sequenza di neuroni in grado di ricevere le informazioni dell’immagine da trattare. A questo livello, infatti, verrà passato il vettore di dati che rappresentano i pixel dell’immagine di ingresso. Nel caso ad esempio di una immagine a colori di 32 x 32 pixel il vettore di ingresso dovrà avere una lunghezza di 32 x 32 x 3; in pratica per ogni pixel dell’immagine di dimensione 32 X 32 avremo 3 valori che rappresentano i tre colori dell’immagine in formato RGB (Red, Green e Blue).
Il Livello convoluzionale (Conv) è il principale della rete. Il suo obiettivo è quello di individuare schemi, come ad esempio curve, angoli, circonferenze o quadrati raffigurati in un’immagine con elevata precisione. I filtri applicabili sono e possono essere più di uno; Maggiore è il loro numero e maggiore è la complessità delle caratteristiche che si potranno individuare. Ma come funziona il livello di convoluzione? in pratica un filtro digitale (una piccola maschera) è fatto scorrere sulle diverse posizioni dell’immagine in input; per ogni posizione viene generato un valore di output, eseguendo il prodotto scalare tra la maschera e la porzione dell’input coperta (entrambi trattati come vettori).Nell’esempio in figura il filtro è rappresentato da una matrice 3×3 pertanto il pennello di scansione prenderà in esame solo una porzione di immagine di ingresso 3×3 tra cui si dovrà fare il prodotto con il filtro di convoluzione scelto. In definitiva l’immagine verrà scansionata pezzo per pezzo ottenendo in uscita una matrice di valori più piccola che rappresenta “l’immagine caratterizzata”
Il Livello ReLU (Rectified Linear Units) si pone l’obiettivo di annullare valori non utili ottenuti nei livelli precedenti ed è posto dopo i livelli convoluzionali.
Il Livello Pooling permette di identificare se la caratteristica di studio è presente nel livello precedente e rende più grezza l’immagine, mantenendo la caratteristica utilizzata dal livello convoluzionale. In altre parole, il livello di pooling esegue un’aggregazione delle informazioni, generando feature map di dimensione inferiore.
Il Livello FC (o Fully connected, completamente connesso): È il livello che esegue di fatto la classificazione delle immagini.
R-CNN
Una R-CNN, Region-based Convolutional Neural Network, è una rete in grado di estrarre adeguatamente le caratteristiche degli oggetti da identificare ma risulta molto lenta in fase di scansione ed in fase di identificazione delle regioni.
La lentezza della rete in termini di analisi dell’immagine di input è dovuta al fatto che per la rilevazione degli oggetti, la rete neurale utilizza un algoritmo chiamato “Selective Search” poco efficiente, che estrae approssimativamente 2000 regioni dell’immagine di partenza (Region Proposal), a valle del quale esegue N reti neurali convoluzionali (CNN) in cima a ciascuna regione, i cui output sono dati in pasto ad una SVM (Support Vector Machine) per classificarne la regione. La R-CNN sebbene sia intuitiva risulta essere, sfortunatamente molto lenta.
Fast R-CNN
Una Fast R-CNN è una rete semplificata di una R-CNN, migliore in termini di velocità di rilevazione, ma risultata un po’ carente in merito all’algoritmo di “selective search”, per l’individuazione delle possibili regioni di interesse (nel caso di studio i cassetti). La rete, infatti, si dimostra più performante rispetto alla precedente perché, l’estrazione delle caratteristiche viene effettuata prima di estrarre le regioni di interesse, utilizzando solo una CNN per l’intera immagine anziché 2000 CNN sulle 2000 regioni sovrapposte e la SVM è stata rimpiazzata da una funzione softmax che restituisce in uscita la probabilità di identificazione. Come si può evincere dall’immagine, con questo nuovo approccio è possibile individuare le regioni di interesse, non partendo dall’immagine originale, ma dall’ultima mappa delle caratteristiche estrapolate dalla rete ConvNet.
La Fast R-CNN performa, perciò, molto meglio in termini di velocità ma aumenta la possibilità di errore i termini di riconoscimento e di identificazione dei “box” (bounding box regressor).
Faster R-CNN
La Faster R-CNN, evoluzione della Fast R-CNN, ottimizza, l’algoritmo di “selective search” attraverso l’implementazione di una rete neurale veloce. Nello specifico la Faster R-CNN introduce la region proposal network (RPN). Significa che sostituisce l’algoritmo selettivo a ricerca lenta con una rete neurale veloce. L’RPN è posizionato dopo l’ultimo livello di convoluzione della CNN, i cui risultati vengono inviati al livello di pooling ROI seguito da un Classifier e dal Bbox Regressor.
Grazie a questi accorgimenti la Faster R-CNN ha una maggiore velocità nella ricerca dei “target” ed è maggiormente accurata. Bisogna sottolineare che nonostante siano stati fatti molteplici altri test e tentativi di aumentare la velocità di riconoscimento degli oggetti ad oggi la Faster R-CNN continua ad essere una delle reti più performanti.
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.
Comments