Perché funzionano le reti neurali convoluzionali?


22

Ho sentito spesso persone dire che il motivo per cui le reti neurali convoluzionali sono ancora poco comprese. È noto perché le reti neurali convoluzionali finiscono sempre per apprendere caratteristiche sempre più sofisticate mentre saliamo di livello? Cosa li ha spinti a creare una tale serie di funzionalità e questo sarebbe vero anche per altri tipi di reti neurali profonde?


Grande spiegazione di Jeremy Howard nella seconda metà di questo video: youtube.com/watch?v=ACU-T9L4_lI
Dan

2
Penso che tu sia frainteso. Comprendiamo assolutamente abbastanza bene perché le convnet funzionano come una classe di algoritmi. D'altra parte, è spesso molto difficile capire perché un modello specifico abbia fatto una previsione particolare. Questo è il motivo per cui li chiamiamo "modelli di scatola nera: il loro processo di inferenza è opaco per noi. Ciò non significa che siamo confusi sul perché siano efficaci.
David Marx,

Risposte:


19

In realtà immagino che la domanda sia un po 'ampia! Comunque.

Comprensione delle reti di convoluzione

Ciò che viene appreso ConvNetscerca di ridurre al minimo la funzione di costo per classificare correttamente gli input nelle attività di classificazione. Tutti i parametri modificati e i filtri appresi servono a raggiungere l'obiettivo indicato.

Funzionalità apprese in diversi livelli

Tentano di ridurre i costi apprendendo caratteristiche di basso livello, a volte insignificanti, come le linee orizzontali e verticali nei loro primi livelli e quindi impilandole per creare forme astratte, che spesso hanno un significato, negli ultimi livelli. Per illustrare questa fig. 1, che è stato utilizzato da qui , può essere considerato. L'ingresso è il bus e la cintura mostra le attivazioni dopo aver passato l'ingresso attraverso diversi filtri nel primo livello. Come si può vedere, il riquadro rosso che è l'attivazione di un filtro, che i suoi parametri sono stati appresi, è stato attivato per bordi relativamente orizzontali. La cornice blu è stata attivata per bordi relativamente verticali. È possibile questoConvNetsapprendere i filtri sconosciuti che sono utili e noi, come ad esempio i professionisti della visione artificiale, non abbiamo scoperto che potrebbero essere utili. La parte migliore di queste reti è che cercano di trovare i filtri appropriati da soli e non usano i nostri filtri scoperti limitati. Imparano i filtri per ridurre la quantità della funzione di costo. Come accennato, questi filtri non sono necessariamente noti.

** Figura 1. ** * Attivazioni di basso livello *

In strati più profondi, le caratteristiche apprese nei livelli precedenti si uniscono e formano forme che spesso hanno un significato. In questo articolo è stato discusso che questi strati possono avere attivazioni che sono significative per noi o che i concetti che hanno significato per noi, come esseri umani, possono essere distribuiti tra altre attivazioni. In fig. 2 la cornice verde mostra le attivazioni di un filtro nel quinto strato di aConvNet. Questo filtro si prende cura dei volti. Supponiamo che a quello rosso importi dei capelli. Questi hanno un significato. Come si può vedere ci sono altre attivazioni che sono state attivate proprio nella posizione delle facce tipiche nell'input, la cornice verde è una di queste; La cornice blu è un altro esempio di questi. Di conseguenza, l'astrazione delle forme può essere appresa da un filtro o da numerosi filtri. In altre parole, ogni concetto, come la faccia e i suoi componenti, può essere distribuito tra i filtri. Nei casi in cui i concetti sono distribuiti su diversi livelli, se qualcuno li osserva, possono essere sofisticati. Le informazioni sono distribuite tra loro e per capire che tutte le informazioni su quei filtri e le loro attivazioni devono essere prese in considerazione sebbene possano sembrare molto complicate.

** Figura 2. ** * Attivazioni di alto livello *

CNNsnon dovrebbe essere considerato come una scatola nera. Zeiler e tutti in questo straordinario articolo hanno discusso dello sviluppo di modelli migliori ridotti a tentativi ed errori se non si capisce cosa viene fatto all'interno di queste reti. Questo documento tenta di visualizzare le mappe caratteristiche in ConvNets.

Capacità di gestire diverse trasformazioni da generalizzare

ConvNetsutilizzare i poolinglivelli non solo per ridurre il numero di parametri, ma anche per avere la capacità di essere insensibili alla posizione esatta di ciascuna funzione. Inoltre, il loro utilizzo consente ai livelli di apprendere diverse funzionalità, il che significa che i primi livelli apprendono semplici funzioni di basso livello come bordi o archi, mentre i livelli più profondi apprendono caratteristiche più complicate come occhi o sopracciglia. Max Poolingad es. cerca di verificare se esiste una funzione speciale in una regione speciale o meno. L'idea dei poolinglivelli è così utile ma è solo in grado di gestire la transizione tra altre trasformazioni. Sebbene i filtri in diversi livelli provino a trovare modelli diversi, ad esempio una faccia ruotata viene appresa utilizzando livelli diversi rispetto a una faccia normale,CNNsdi per sé non hanno alcun livello per gestire altre trasformazioni. Per illustrare questo supponiamo che tu voglia imparare facce semplici senza alcuna rotazione con una rete minima. In questo caso il tuo modello potrebbe farlo perfettamente. supponiamo che ti venga chiesto di imparare tutti i tipi di facce con rotazione delle facce arbitraria. In questo caso il tuo modello deve essere molto più grande della precedente rete appresa. Il motivo è che devono essere presenti filtri per apprendere queste rotazioni nell'input. Purtroppo queste non sono tutte trasformazioni. Anche il tuo contributo potrebbe essere distorto. Questi casi hanno fatto arrabbiare Max Jaderberg e tutti . Hanno composto questo documento per affrontare questi problemi al fine di calmare la nostra rabbia come la loro.

Le reti neurali convoluzionali funzionano

Infine, dopo aver fatto riferimento a questi punti, funzionano perché provano a trovare modelli nei dati di input. Li impilano per creare concetti astratti da lì strati di convoluzione. Provano a scoprire se i dati di input hanno ciascuno di questi concetti o no in strati densi per capire a quale classe appartengono i dati di input.

Aggiungo alcuni link utili:


12

Le Convnet funzionano perché sfruttano la localizzazione delle funzionalità. Lo fanno a diverse granularità, quindi sono in grado di modellare funzionalità di livello gerarchicamente superiore. Sono invarianti nella traduzione grazie alle unità di pooling. Non sono invarianti di rotazione di per sé , ma di solito convergono in filtri che sono versioni ruotate degli stessi filtri , quindi supportano input ruotati.

Non conosco altre architetture neurali che traggono profitto dalla località caratteristica nello stesso senso di ConvNets.


1
Direi che le RNN traggono beneficio in modo simile alle CNN, riutilizzando i pesi nelle serie storiche. Le CNN possono anche essere considerate non necessariamente invarianti dalla traduzione, ma "invarianti dalla dimensione" (anche se non sono sicuro che sia un termine corretto o riconosciuto)
Neil Slater,

Grazie per la tua risposta. Correggimi se sbaglio sulle seguenti conclusioni: 1. Sembra che abbiamo progettato implicitamente ConvNets per apprendere funzionalità di livello gerarchicamente superiore attraverso il pooling. Non è un caso che le funzionalità diventino sofisticate negli strati. 2. Includere le informazioni sul dominio nella progettazione della propria rete neurale può fare un'enorme differenza nell'efficienza dell'apprendimento. ConvNets e RNNs stanno provando a fare proprio questo.
Loda il signore il

Le tue dichiarazioni 1 e 2 mi sembrano corrette.
ncasas,

1
Penso che le reti di capsule dovrebbero sfruttare la localizzazione delle caratteristiche in un modo simile
David Marx,

3

Uno non dovrebbe mai dimenticare gli altri componenti in una ConvNet tipica. I filtri di convoluzione individuano le caratteristiche spaziali invarianti, come bordi e cerchi. Queste caratteristiche sono quantificate in un livello di raggruppamento che segue il livello C. Infine, vengono inseriti in (di solito) più livelli completamente collegati (fc). Il merito deve essere dato a questi livelli completamente collegati che non sono altro che ciò che si trova in qualsiasi normale MLP.


3

Le reti neurali convoluzionali funzionano perché è una buona estensione dell'algoritmo di apprendimento profondo standard.

Con risorse e denaro illimitati, non è necessario un convoluzione perché anche l'algoritmo standard funzionerà. Tuttavia, convoluzionale è più efficiente perché riduce il numero di parametri . La riduzione è possibile perché sfrutta la localizzazione delle funzionalità, esattamente ciò che scrive @ncasas.


Questa dovrebbe essere la risposta migliore
Jie.Zhou

1

È noto perché le reti neurali convoluzionali finiscono sempre per apprendere caratteristiche sempre più sofisticate mentre saliamo di livello?

Questa è pura matematica. Una rete neurale, alla fine della giornata, è una grande funzione matematica. E più profonda è la rete, maggiore è la funzione che rappresenta. E per più grande, intendo ovviamente ad alta dimensione. Le funzionalità apprese sono più sofisticate perché sono il risultato di funzioni più sofisticate.

Ciò che li ha causati creano una tale pila di funzionalità

È interessante notare che le reti neurali convenzionali sono state ispirate dalla nostra biologia, in realtà dei gatti. Hubel e Wiesel condussero esperimenti sulla corteccia visiva dei gatti e si resero conto che la luce veniva percepita da pile di campi ottici. Questo è ciò che ha ispirato lo strato convoluzionale e un'architettura più profonda.


0

Basandosi sulle risposte di ncasas e horaceT , ConvNets è molto efficiente perché:

  1. Sono invadenti alle trasformazioni geometriche e apprendono funzionalità che diventano sempre più complicate e dettagliate, quindi potenti estrattori gerarchici di caratteristiche grazie agli strati convoluzionali.
  2. Combinano le caratteristiche estratte e le aggregano in modo non lineare per prevedere l'output e quindi essere classificatori robusti grazie ai livelli completamente collegati.

Se vuoi saperne di più sulle convnet e sui diversi blocchi che le costruiscono, nonché sulle intuizioni sottostanti, ecco un post che ho recentemente scritto sul mio blog personale che analizza i dettagli.


3
Nota: se desideri promuovere il tuo prodotto / blog, devi rivelare la tua affiliazione nella risposta , altrimenti la tua risposta potrebbe essere contrassegnata come spam. Se non sei affiliato al sito, ti consiglio di dirlo per evitarlo. Si prega di leggere Come non essere uno spammer
AJ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.