Cosa sono le reti neurali convoluzionali (CNN)?
Questo articolo fa parte di Demistificare AI, una serie di messaggi che (cercare di) disambiguare il gergo e miti che circondano AI.
Dal 1950, i primi giorni di intelligenza artificiale, gli scienziati informatici hanno cercato di costruire computer che possono dare un senso di dati visivi., Nei decenni successivi, il campo, che è diventato noto come computer vision, ha visto progressi incrementali. Nel 2012, la visione artificiale ha fatto un salto di qualità quando un gruppo di ricercatori dell’Università di Toronto ha sviluppato un modello di intelligenza artificiale che ha superato i migliori algoritmi di riconoscimento delle immagini con un ampio margine.
Il sistema di intelligenza artificiale, che divenne noto come AlexNet (dal nome del suo principale creatore, Alex Krizhevsky), ha vinto il concorso di visione artificiale ImageNet 2012 con una straordinaria precisione dell ‘ 85%. Il runner-up ha segnato un modesto 74 per cento sul test.,
Al centro di AlexNet c’era una rete neurale convoluzionale (CNN), un tipo specializzato di rete neurale artificiale che imita approssimativamente il sistema di visione umano. Negli ultimi anni, le CNN sono diventate fondamentali per molte applicazioni di visione artificiale. Ecco cosa devi sapere sulla storia e sul funzionamento delle CNNs.
Una breve storia delle reti neurali convoluzionali
Le reti neurali convoluzionali, chiamate anche convnet, sono state introdotte per la prima volta negli 1980 da Yann LeCun, un ricercatore post-dottorato di informatica., LeCun aveva costruito sul lavoro svolto da Kunihiko Fukushima, uno scienziato giapponese che, pochi anni prima, aveva inventato il neocognitron, una rete neurale di riconoscimento delle immagini molto semplice.
La prima versione di CNNs, chiamata LeNet (dopo LeCun), poteva riconoscere le cifre scritte a mano. CNNs ha trovato un mercato di nicchia nei servizi bancari e postali e bancari, dove leggono i codici postali sulle buste e le cifre sugli assegni.
Ma nonostante il loro ingegno, CONVNET rimasti ai margini della visione artificiale e l’intelligenza artificiale, perché hanno affrontato un problema serio: non potevano scalare., CNNs bisogno di un sacco di dati e risorse di calcolo per lavorare in modo efficiente per le immagini di grandi dimensioni. A quel tempo, la tecnica era applicabile solo alle immagini con basse risoluzioni.
Nel 2012, AlexNet ha dimostrato che forse era giunto il momento di rivisitare deep learning, il ramo di AI che utilizza reti neurali multistrato. La disponibilità di grandi insiemi di dati, vale a dire il set di dati ImageNet con milioni di immagini etichettate e vaste risorse di calcolo hanno permesso ai ricercatori di creare CNN complessi in grado di eseguire attività di visione artificiale che prima erano impossibili.
Come funzionano le CNN?,
Le reti neurali convoluzionali sono composte da più strati di neuroni artificiali. I neuroni artificiali, un’imitazione approssimativa delle loro controparti biologiche, sono funzioni matematiche che calcolano la somma ponderata di più input e output di un valore di attivazione.
Il comportamento di ogni neurone è definita dai suoi pesi., Quando vengono alimentati con i valori dei pixel, i neuroni artificiali di una CNN individuano varie caratteristiche visive.
Quando si immette un’immagine in una ConvNet, ciascuno dei suoi livelli genera diverse mappe di attivazione. Le mappe di attivazione evidenziano le caratteristiche rilevanti dell’immagine. Ciascuno dei neuroni prende una patch di pixel come input, moltiplica i loro valori di colore per i suoi pesi, li riassume e li esegue attraverso la funzione di attivazione.
Il primo livello (o inferiore) della CNN di solito rileva caratteristiche di base come i bordi orizzontali, verticali e diagonali., L’output del primo livello viene alimentato come input del livello successivo, che estrae caratteristiche più complesse, come angoli e combinazioni di bordi. Man mano che ci si sposta più in profondità nella rete neurale convoluzionale, i livelli iniziano a rilevare funzionalità di livello superiore come oggetti, volti e altro.
L’operazione di moltiplicare i valori dei pixel per pesi e sommarli è chiamata” convoluzione ” (da qui il nome rete neurale convoluzionale). Una CNN è solitamente composta da diversi livelli di convoluzione, ma contiene anche altri componenti. Il livello finale di una CNN è un livello di classificazione, che prende l’output del livello di convoluzione finale come input (ricorda, i livelli di convoluzione più alti rilevano oggetti complessi).,
In base alla mappa di attivazione del livello di convoluzione finale, il livello di classificazione emette un insieme di punteggi di confidenza (valori compresi tra 0 e 1) che specificano la probabilità che l’immagine appartenga a una “classe.” Ad esempio, se si dispone di un ConvNet che rileva gatti, cani e cavalli, l’output del livello finale è la possibilità che l’immagine di input contenga uno di questi animali.,
Formazione la convolutional rete neurale
Una delle grandi sfide di sviluppo CNNs è regolare i pesi dei singoli neuroni per estrarre le caratteristiche giuste da immagini. Il processo di regolazione di questi pesi è chiamato “allenamento” della rete neurale.
All’inizio, la CNN inizia con pesi casuali., Durante l’allenamento, gli sviluppatori forniscono alla rete neurale un ampio set di dati di immagini annotate con le loro classi corrispondenti (gatto, cane, cavallo, ecc.). ConvNet elabora ogni immagine con i suoi valori casuali e quindi confronta il suo output con l’etichetta corretta dell’immagine. Se l’output della rete non corrisponde all’etichetta—che è probabilmente il caso all’inizio del processo di allenamento—fa una piccola regolazione ai pesi dei suoi neuroni in modo che la prossima volta che vede la stessa immagine, il suo output sarà un po ‘ più vicino alla risposta corretta.,
Le correzioni vengono effettuate attraverso una tecnica chiamata backpropagation (o backprop). In sostanza, backpropagation ottimizza il processo di ottimizzazione e rende più facile per la rete decidere quali unità regolare invece di apportare correzioni casuali.
Ogni esecuzione dell’intero set di dati di allenamento è chiamata “epoca.”Il ConvNet attraversa diverse epoche durante l’allenamento, regolando i suoi pesi in piccole quantità. Dopo ogni epoca, la rete neurale diventa un po ‘ migliore nel classificare le immagini di allenamento., Man mano che la CNN migliora, le regolazioni che apporta ai pesi diventano sempre più piccole. Ad un certo punto, la rete “converge”, il che significa che diventa essenzialmente il più buono possibile.
Dopo aver addestrato la CNN, gli sviluppatori utilizzano un set di dati di test per verificarne l’accuratezza. Il set di dati di test è un insieme di immagini etichettate che non fanno parte del processo di formazione. Ogni immagine viene eseguita attraverso ConvNet e l’output viene confrontato con l’etichetta effettiva dell’immagine. In sostanza, il set di dati di test valuta quanto sia buona la rete neurale a classificare le immagini che non ha visto prima.,
Se un CNN segna bene sui suoi dati di allenamento ma segna male sui dati di test, si dice che sia stato “sovralimentato.”Questo di solito accade quando non c’è abbastanza varietà nei dati di allenamento o quando ConvNet attraversa troppe epoche sul set di dati di allenamento.
Il successo delle reti neurali convoluzionali è in gran parte dovuto alla disponibilità di enormi set di dati di immagine sviluppati negli ultimi dieci anni. ImageNet, il concorso menzionato all’inizio di questo articolo, ha preso il titolo da un set di dati omonimo con più di 14 milioni di immagini etichettate., Ci sono altri set di dati più specializzati, come il MNIST, un database di 70.000 immagini di cifre scritte a mano.
Tuttavia, non è necessario addestrare ogni rete neurale convoluzionale su milioni di immagini. In molti casi, è possibile utilizzare un modello pre-addestrato, come AlexNet o ResNet di Microsoft, e finetune per un’altra applicazione più specializzata. Questo processo è chiamato apprendimento di trasferimento, in cui una rete neurale addestrata viene riqualificata in una serie più piccola di nuovi esempi.,
I limiti delle reti neurali convoluzionali
Nonostante la loro potenza e complessità, le reti neurali convoluzionali sono, in sostanza, macchine di riconoscimento dei pattern. Possono sfruttare enormi risorse di calcolo per individuare schemi visivi minuscoli e poco appariscenti che potrebbero passare inosservati all’occhio umano. Ma quando si tratta di comprendere il significato del contenuto delle immagini, si comportano male.
Considera la seguente immagine. Un ConvNet ben addestrato ti dirà che è l’immagine di un soldato, un bambino e la bandiera americana., Ma una persona può dare una lunga descrizione della scena e parlare del servizio militare, dei tour in un paese straniero, della sensazione di nostalgia per la casa, della gioia di riunirsi con la famiglia, ecc. Le reti neurali artificiali non hanno alcuna nozione di questi concetti.
Questi limiti diventano più evidenti nelle applicazioni pratiche di reti neurali convoluzionali. Ad esempio, le CNN sono ora ampiamente utilizzate per moderare i contenuti sulle reti di social media., Ma nonostante i vasti repository di immagini e video su cui sono addestrati, fanno ancora fatica a rilevare e bloccare contenuti inappropriati. In un caso, l’IA di moderazione dei contenuti di Facebook ha vietato la foto di una statua di 30.000 anni come nudità.
Inoltre, le reti neurali iniziano a rompersi non appena si spostano un po ‘ fuori dal loro contesto. Diversi studi hanno dimostrato che i CNN addestrati su ImageNet e altri set di dati popolari non riescono a rilevare gli oggetti quando li vedono in diverse condizioni di illuminazione e da nuove angolazioni.,
Un recente studio condotto da ricercatori del MIT-IBM Watson AI Lab mette in evidenza queste carenze. Introduce anche ObjectNet, un set di dati che rappresenta meglio le diverse sfumature di come gli oggetti sono visti nella vita reale. Le CNN non sviluppano i modelli mentali che gli esseri umani hanno su oggetti diversi e sulla loro capacità di immaginare quegli oggetti in contesti precedentemente invisibili.
Un altro problema con le reti neurali convoluzionali è la loro incapacità di comprendere le relazioni tra diversi oggetti. Si consideri la seguente immagine, che è noto come un” problema Bongard”, dal nome del suo inventore, scienziato informatico russo Mikhail Moiseevich Bongard. I problemi di Bongard ti presentano due serie di immagini (sei a sinistra e sei a destra) e devi spiegare la differenza fondamentale tra i due set., Ad esempio, nell’esempio seguente, le immagini nel set di sinistra contengono un oggetto e le immagini nel set di destra contengono due oggetti.
È facile per gli esseri umani trarre tali conclusioni da quantità così piccole di campioni. Se ti mostro questi due set e poi ti fornisco una nuova immagine, sarai in grado di decidere rapidamente se andare nel set sinistro o destro.
Ma non esiste ancora una rete neurale convoluzionale in grado di risolvere i problemi di Bongard con così pochi esempi di allenamento. In uno studio condotto nel 2016, i ricercatori di IA hanno addestrato una CNN su campioni di Bongard 20,000 e l’hanno testata su altri 10,000. Le prestazioni della CNN erano molto più basse di quelle degli umani medi.
Le peculiarità dei CONVNET li rendono anche vulnerabili agli attacchi contraddittori, perturbazioni nei dati di input che passano inosservate all’occhio umano ma influenzano il comportamento delle reti neurali., Gli attacchi contraddittori sono diventati una delle principali fonti di preoccupazione in quanto l’apprendimento profondo e in particolare le CNN sono diventati una componente integrante di molte applicazioni critiche come le auto a guida autonoma.
Questo significa che le CNN sono inutili?, Nonostante i limiti delle reti neurali convoluzionali, tuttavia, non si può negare che abbiano causato una rivoluzione nell’intelligenza artificiale. Oggi, i CNN sono utilizzati in molte applicazioni di visione artificiale come il riconoscimento facciale, la ricerca e l’editing di immagini, la realtà aumentata e altro ancora. In alcune aree, come l’elaborazione di immagini mediche, CONVNET ben addestrati potrebbero persino sovraperformare gli esperti umani nel rilevare modelli rilevanti.,
Come mostrano i progressi nelle reti neurali convoluzionali, i nostri risultati sono notevoli e utili, ma siamo ancora molto lontani dal replicare le componenti chiave dell’intelligenza umana.