i CNN hanno importanti inconvenienti
I CNN (reti neurali convoluzionali) sono fantastici. Sono uno dei motivi per cui l’apprendimento profondo è così popolare oggi. Possono fare cose incredibili che la gente pensava che i computer non sarebbero stati in grado di fare per molto, molto tempo. Tuttavia, hanno i loro limiti e hanno svantaggi fondamentali.
Consideriamo un esempio molto semplice e non tecnico. Immagina una faccia. Quali sono i componenti? Abbiamo la faccia ovale, due occhi, un naso e una bocca. Per una CNN, una semplice presenza di questi oggetti può essere un indicatore molto forte per considerare che c’è un volto nell’immagine. Le relazioni spaziali orientative e relative tra questi componenti non sono molto importanti per una CNN.
Come funzionano le CNN? Il componente principale di una CNN è uno strato convoluzionale. Il suo compito è quello di rilevare caratteristiche importanti nei pixel dell’immagine. I livelli più profondi (più vicini all’input) impareranno a rilevare caratteristiche semplici come bordi e sfumature di colore, mentre i livelli più alti combineranno caratteristiche semplici in caratteristiche più complesse. Infine, gli strati densi nella parte superiore della rete combineranno funzionalità di livello molto alto e produrranno previsioni di classificazione.
Una cosa importante da capire è che le funzionalità di livello superiore combinano le funzionalità di livello inferiore come somma ponderata: le attivazioni di un livello precedente vengono moltiplicate per i pesi del neurone del livello successivo e aggiunte, prima di essere passate alla non linearità di attivazione. Da nessuna parte in questa configurazione esiste una relazione di posa (traslazionale e rotazionale) tra funzionalità più semplici che costituiscono una funzionalità di livello superiore. L’approccio CNN per risolvere questo problema consiste nell’utilizzare il pool massimo o strati convoluzionali successivi che riducono la dimensione spaziale dei dati che fluiscono attraverso la rete e quindi aumentano il “campo visivo” dei neuroni dello strato superiore, consentendo loro di rilevare caratteristiche di ordine superiore in una regione più ampia dell’immagine di input. Max pooling è una stampella che ha reso le reti convoluzionali funzionano sorprendentemente bene, ottenendo prestazioni sovrumane in molte aree. Ma non fatevi ingannare dalle sue prestazioni: mentre CNNs funzionano meglio di qualsiasi modello prima di loro, max pooling comunque sta perdendo informazioni preziose.
Hinton stesso ha dichiarato che il fatto che max pooling funzioni così bene è un grosso errore e un disastro:
Hinton: “L’operazione di pooling utilizzata nelle reti neurali convoluzionali è un grosso errore e il fatto che funzioni così bene è un disastro.”
Naturalmente, è possibile eliminare il pool massimo e ottenere comunque buoni risultati con i CNN tradizionali, ma non risolvono ancora il problema chiave:
La rappresentazione interna dei dati di una rete neurale convoluzionale non tiene conto di importanti gerarchie spaziali tra oggetti semplici e complessi.
Nell’esempio sopra, una semplice presenza di 2 occhi, una bocca e un naso in un’immagine non significa che ci sia una faccia, dobbiamo anche sapere come questi oggetti sono orientati l’uno rispetto all’altro.
Hardcoding Mondo 3D in una rete neurale: Approccio alla grafica inversa
La computer grafica si occupa della costruzione di un’immagine visiva da una rappresentazione gerarchica interna di dati geometrici. Si noti che la struttura di questa rappresentazione deve tenere conto delle posizioni relative degli oggetti. Quella rappresentazione interna è memorizzata nella memoria del computer come array di oggetti geometrici e matrici che rappresentano le posizioni relative e l’orientamento di questi oggetti. Quindi, un software speciale prende quella rappresentazione e la converte in un’immagine sullo schermo. Questo è chiamato rendering.
Ispirato da questa idea, Hinton sostiene che i cervelli, in realtà, fanno il contrario del rendering. La chiama grafica inversa: dalle informazioni visive ricevute dagli occhi, decostruiscono una rappresentazione gerarchica del mondo che ci circonda e cercano di abbinarlo a modelli e relazioni già appresi memorizzati nel cervello. Ecco come avviene il riconoscimento. E l’idea chiave è che la rappresentazione degli oggetti nel cervello non dipende dall’angolo di vista.
Quindi a questo punto la domanda è: come modelliamo queste relazioni gerarchiche all’interno di una rete neurale? La risposta viene dalla computer grafica. Nella grafica 3D, le relazioni tra oggetti 3D possono essere rappresentate da una cosiddetta posa, che è essenzialmente traduzione più rotazione.
Hinton sostiene che per eseguire correttamente la classificazione e il riconoscimento degli oggetti, è importante preservare le relazioni di posa gerarchiche tra le parti dell’oggetto. Questa è l’intuizione chiave che ti permetterà di capire perché la teoria delle capsule è così importante. Incorpora relazioni relative tra gli oggetti ed è rappresentato numericamente come una matrice di posa 4D.
Quando queste relazioni sono incorporate nella rappresentazione interna dei dati, diventa molto facile per un modello capire che la cosa che vede è solo un’altra visione di qualcosa che ha visto prima. Considera l’immagine qui sotto. Puoi facilmente riconoscere che questa è la Statua della Libertà, anche se tutte le immagini lo mostrano da diverse angolazioni. Questo perché la rappresentazione interna della Statua della Libertà nel tuo cervello non dipende dall’angolo di visione. Probabilmente non avete mai visto queste immagini esatte di esso, ma si sapeva ancora subito quello che era.