Relazione tra convoluzione in matematica e CNN


10

Ho letto la spiegazione della convoluzione e la capisco fino a un certo punto. Qualcuno può aiutarmi a capire come questa operazione si collega alla convoluzione nelle reti neurali convoluzionali? È una funzione simile a un filtro gche applica peso?



È esattamente quello che sto leggendo e vedo da lì che la convoluzione nella CNN è un'operazione a matrice. E la convoluzione "funzionale" non viene mai usata lì? Quindi si tratta solo di 2 diverse operazioni con lo stesso nome?
VladimirLenin,

2
Probabilmente la differenza che stai vedendo è tra visioni discrete e continue della convoluzione - è essenzialmente la stessa operazione, ma deve essere eseguita in modo diverso in quei due spazi diversi. Le CNN usano convoluzioni discrete. E lo fanno solo perché è un modo conveniente per esprimere la matematica delle connessioni (questo vale in entrambe le direzioni - è una comodità matematica data la progettazione, e probabilmente uno dei motivi per cui questa progettazione è popolare perché si adatta perfettamente a un pozzo funzione compresa già utilizzata nell'elaborazione del segnale)
Neil Slater,

Risposte:


2

Usando la notazione dalla pagina di Wikipedia, la convoluzione in una CNN sarà il kernel g di cui impareremo alcuni pesi per estrarre le informazioni di cui abbiamo bisogno e quindi applicare una funzione di attivazione.

Convoluzioni discrete

Dalla pagina di Wikipedia la convoluzione è descritta come

(fg)[n]=m=infinff[m]g[nm]

Ad esempio supponendo che sia la funzione e sia la funzione di convoluzione ,afbg

inserisci qui la descrizione dell'immagine

Per risolvere questo, possiamo usare prima l'equazione, capovolgiamo la funzione verticalmente, a causa del che appare nell'equazione. Quindi calcoleremo la somma per ogni valore di . Mentre si modifica , la funzione originale non si sposta, tuttavia la funzione di convoluzione viene spostata di conseguenza. A partire da ,bmnnn=0

c[0]=ma[m]b[m]=00.25+00.5+11+0.50+10+10=1

c[1]=ma[m]b[m]=00.25+10.5+0.51+10+10=1

c[2]=ma[m]b[m]=10.25+0.50.5+11+10+10=1.5

c[3]=ma[m]b[m]=10+0.50.25+10.5+11=1.625

c[4]=ma[m]b[m]=10+0.50+10.25+10.5+01=0.75

c[5]=ma[m]b[m]=10+0.50+10+10.25+00.501=0.25

Come puoi vedere, questo è esattamente ciò che otteniamo sulla trama . Quindi abbiamo spostato la funzione sulla funzione .c[n]b[n]a[n]

Convoluzione discreta 2D

Ad esempio, se abbiamo la matrice in verde

inserisci qui la descrizione dell'immagine

con il filtro di convoluzione

inserisci qui la descrizione dell'immagine

Quindi l'operazione risultante è una moltiplicazione in termini di elementi e aggiunta dei termini come mostrato di seguito. Proprio come mostra la pagina di Wikipedia, questo kernel (matrice arancione) viene spostato sull'intera funzione (matrice verde) .gf

inserisci qui la descrizione dell'immagine

preso dal link che fa riferimento a @Hobbes. Noterai che non c'è capovolgimento del kernel come abbiamo fatto per il calcolo esplicito della convoluzione sopra. Questa è una questione di notazione come sottolinea @Media. Questo dovrebbe essere chiamato correlazione incrociata. Tuttavia, dal punto di vista computazionale questa differenza non influisce sulle prestazioni dell'algoritmo poiché il kernel viene addestrato in modo tale che i suoi pesi siano più adatti all'operazione, quindi l'aggiunta dell'operazione di capovolgimento semplicemente farebbe sì che l'algoritmo impari i pesi in diverse celle del kernel per ospitare la vibrazione. Quindi possiamo omettere il capovolgimento.g


1

Sì, sono correlati. Ad esempio, considera il livellamento gaussiano (en.wikipedia.org/wiki/Gaussian_blur) che è una convoluzione con un nucleo di valori gaussiani. Una CNN apprende i pesi dei filtri (ad es. Kernel) e quindi può imparare a eseguire il livellamento se necessario.


1

Sebbene CNNrappresenti reti neurali convoluzionali, ciò che fanno è chiamato correlazione incrociata in matematica e non convoluzione. Dai un'occhiata qui .

Ora, prima di andare avanti c'è un commento tecnico che voglio fare sulla correlazione incrociata rispetto alle convoluzioni e solo per i fatti che cosa devi fare per implementare le reti neurali convoluzionali. Se stai leggendo un altro libro di testo matematico o un manuale di elaborazione del segnale, c'è un'altra possibile incoerenza nella notazione che è che, se guardi il tipico libro di testo matematico, il modo in cui la convoluzione viene definita prima di fare il prodotto e la somma dell'elemento Y, c'è in realtà un altro passo ...

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.