Cosa fa il passaggio della convoluzione in una rete neurale convoluzionale?


16

Sto studiando reti neurali convoluzionali (CNN) a causa delle loro applicazioni nella visione artificiale. Ho già familiarità con le reti neurali standard feed-foward, quindi spero che alcune persone qui possano aiutarmi a fare un passo in più nella comprensione delle CNN. Ecco cosa penso delle CNN:

  1. Nei tradizionali NN feed-foward, abbiamo dati di addestramento in cui ogni elemento è costituito da un vettore di caratteristiche che immettiamo nell'NN nel "livello di input", quindi con il riconoscimento delle immagini, potremmo avere solo un pixel per ogni pixel. Questi sono i nostri vettori di funzionalità. In alternativa, potremmo creare manualmente altri vettori di funzionalità, probabilmente più piccoli.
  2. Il vantaggio della CNN è che può generare vettori di funzioni più forti che sono più invarianti rispetto alla distorsione e alla posizione dell'immagine. Come mostra la seguente immagine (da questo tutorial ), le CNN generano mappe di caratteristiche che vengono poi inviate a una rete neurale standard (quindi è davvero una fase di pre-elaborazione gigante).

inserisci qui la descrizione dell'immagine

  1. Il modo in cui otteniamo queste caratteristiche "migliori" è alternando convoluzione e sottocampionamento. Capisco come funziona il sottocampionamento. Per ogni mappa caratteristica, basta prendere un sottoinsieme dei pixel, oppure possiamo calcolare la media dei valori dei pixel.

Ma ciò su cui sono principalmente confuso è come funziona la fase di convoluzione. Conosco le convoluzioni della teoria della probabilità (densità per la somma di due variabili casuali), ma come funzionano nelle CNN e perché sono efficaci?

La mia domanda è simile a questa, ma in particolare, non sono sicuro del motivo per cui il primo passaggio di convoluzione funziona.

Risposte:


16

Per prima cosa cercherò di condividere alcune intuizioni dietro la CNN e poi commenterò gli argomenti specifici che hai elencato.

I livelli di convoluzione e sottocampionamento in una CNN non sono diversi dai livelli nascosti in un MLP comune, ovvero la loro funzione è quella di estrarre funzionalità dal loro input. Queste funzionalità vengono quindi assegnate al successivo livello nascosto per estrarre funzionalità ancora più complesse o vengono assegnate direttamente a un classificatore standard per generare la previsione finale (in genere è possibile utilizzare un Softmax, ma è possibile utilizzare anche SVM o qualsiasi altro). Nel contesto del riconoscimento delle immagini, queste caratteristiche sono tratta di immagini, come i disegni a tratti nei livelli inferiori e le parti degli oggetti nei livelli superiori.

Nelle immagini naturali queste caratteristiche tendono ad essere le stesse in tutte le posizioni. Riconoscere un certo tratto nel mezzo delle immagini sarà utile quanto riconoscerlo vicino ai bordi. Quindi perché non replicare i livelli nascosti e collegarne più copie in tutte le regioni dell'immagine di input, in modo che le stesse funzionalità possano essere rilevate ovunque? È esattamente ciò che fa una CNN, ma in modo efficiente. Dopo la replica (il passaggio "convoluzione") aggiungiamo un passaggio del sottocampione, che può essere implementato in molti modi, ma non è altro che un sottocampione. In teoria questo passaggio potrebbe anche essere rimosso, ma in pratica è essenziale per consentire al problema di rimanere tracciabile.

Così:

  1. Corretta.
  2. Come spiegato sopra, i livelli nascosti di una CNN sono estrattori di funzioni come in un normale MLP. Le fasi alternate di convoluzione e sottocampionamento vengono eseguite durante l'addestramento e la classificazione, quindi non vengono eseguite "prima" dell'elaborazione effettiva. Non li definirei "pre-elaborazione", allo stesso modo in cui i livelli nascosti di un MLP non sono chiamati così.
  3. Corretta.

3×35×5

inserisci qui la descrizione dell'immagine

9

Le fasi successive della convoluzione e del sottocampionamento si basano sullo stesso principio, ma calcolate su funzioni estratte nel livello precedente, anziché sui pixel non elaborati dell'immagine originale.


Grazie per il chiarimento. Controllerò il tutorial che hai citato.
ComputerScientist,

Grafica illustrativa davvero bella. Vedi l'opera referenec: M. Egmont-Petersen, D. de Ridder, H. Handels. Elaborazione di immagini con reti neurali - una recensione, Pattern Recognition, Vol. 35, n. 10, pagg. 2279-2301, 2002
Match Maker EE

Quattro anni dopo e ora lavoro con la CNN quasi ogni giorno. Questo post di @Saul Berardo mi ha davvero aiutato a prendere la strada giusta :)
ComputerScientist

1

Non ho idea di cosa intendi per "perché il primo passaggio di convoluzione funziona". Affinché una CNN abbia successo, deve avere molti livelli. Una delle idee fondamentali alla base della CNN e di molti altri approcci di apprendimento profondo è che segnali più grandi possono essere identificati dalla correlazione spaziale delle loro parti più piccole che possono essere scarsamente rappresentate. In altre parole, le immagini potrebbero sembrare complesse ma sono composte da una combinazione di poche parti di base. Per la visione artificiale, la struttura di base nelle immagini è generalmente composta da bordi e angoli. La CNN cerca di sfruttare la scarsità della struttura in un'immagine cercando strutture localizzate comuni. Questo è ciò che il primo strato della CNN sta cercando di determinare. Pensa a una convoluzione come a un filtro di corrispondenza che cerca segnali che corrispondono a un modello specifico. Come funziona dipende dai dati a portata di mano. Fortunatamente il mondo è pieno di ripetizioni su piccola scala, quindi la CNN funziona bene per le attività di visione artificiale.


Sì, penso che sia l'idea generale. Non ero chiaro nella mia domanda originale, ma mi chiedevo perché la matematica funzionasse, cioè perché la proprietà di convoluzione stessa permettesse al primo strato di trovare quelle piccole parti.
ComputerScientist,

1
Ulteriori informazioni su convoluzione e filtro abbinato. Quando il kernel di convoluzione corrisponde al segnale, fornisce il massimo ritorno.
SimpleLikeAnEgg

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.