Informazioni su CNN, kernel e invarianza di scala / rotazione


17

Ho un paio di domande che mi confondono riguardo alla CNN.
1) Le funzionalità estratte utilizzando CNN sono invarianti di scala e rotazione?
2) I kernel che utilizziamo per la convoluzione con i nostri dati sono già definiti in letteratura? che tipo di questi kernel sono? è diverso per ogni applicazione?

Risposte:


17

1) Le funzionalità estratte utilizzando CNN sono invarianti di scala e rotazione?

Una caratteristica in sé in una CNN non è invariante per scala o rotazione. Per maggiori dettagli, vedi: Deep Learning. Ian Goodfellow e Yoshua Bengio e Aaron Courville. 2016: http://egrcc.github.io/docs/dl/deeplearningbook-convnets.pdf ; http://www.deeplearningbook.org/contents/convnets.html :

La convoluzione non è naturalmente equivalente ad alcune altre trasformazioni, come i cambiamenti nella scala o nella rotazione di un'immagine. Altri meccanismi sono necessari per gestire questo tipo di trasformazioni.

È il massimo livello di pooling che introduce tali invarianti:

inserisci qui la descrizione dell'immagine

2) I kernel che utilizziamo per la convoluzione con i nostri dati sono già definiti in letteratura? che tipo di questi kernel sono? è diverso per ogni applicazione?

I noccioli vengono appresi durante la fase di addestramento dell'ANN.


Non posso parlare per i dettagli in termini di stato attuale della tecnica, ma sul tema del punto 1, ho trovato questo interessante.
GeoMatt22,

@Franck 1) Ciò significa che non prendiamo misure speciali per rendere invariata la rotazione del sistema? e che dire della scala invariante, è possibile ottenere la scala invariante dal pool massimo?
Aadnan Farooq

2) I kernel sono le caratteristiche. Non l'ho capito. [Qui] ( wildml.com/2015/11/… ) Hanno menzionato che "Ad esempio, nella classificazione delle immagini una CNN può imparare a rilevare i bordi dai pixel grezzi nel primo livello, quindi utilizzare i bordi per rilevare forme semplici nel secondo livello, quindi utilizzare queste forme per scoraggiare le caratteristiche di livello superiore, come le forme facciali in livelli superiori. L'ultimo livello è quindi un classificatore che utilizza queste caratteristiche di alto livello. "
Aadnan Farooq

2
Si noti che il pooling di cui si parla viene definito pooling cross-channel e non è il tipo di pool a cui si fa solitamente riferimento quando si parla di "max-pooling", che raggruppa solo su dimensioni spaziali (non su canali di input diversi ).
Soltius,

1
Ciò implica che un modello che non ha livelli di max pool (la maggior parte delle architetture SOTA attuali non usano il pool) dipende completamente dalla scala?
shubhamgoel27,

5

Penso che ci siano un paio di cose che ti confondono, quindi prima le cose.

x[n]h[n]x[n]h[n]y[n]=(Xh)[n]

y[n]=Σm=-X[m] h[n-m]

Quanto sopra se per segnali monodimensionali, ma lo stesso si può dire per le immagini, che sono solo segnali bidimensionali. In tal caso, l'equazione diventa:

Inew[r,c]=u=v=Iold[u,v] k[ru,cv]

Pittoricamente, questo è ciò che sta accadendo:

enter image description here

Ad ogni modo, la cosa da tenere a mente è che il kernel , in realtà, ha imparato durante l'allenamento di una rete neurale profonda (DNN). Un kernel sarà solo quello con cui contrai il tuo input. Il DNN imparerà il kernel, in modo tale da far emergere alcune sfaccettature dell'immagine (o dell'immagine precedente), che saranno buone per ridurre la perdita del tuo obiettivo.

Questo è il primo punto cruciale da capire: tradizionalmente le persone hanno progettato i kernel, ma in Deep Learning, lasciamo che la rete decida quale dovrebbe essere il kernel migliore. L'unica cosa che specifichiamo, tuttavia, sono le dimensioni del kernel. (Questo si chiama iperparametro, ad esempio 5x5 o 3x3, ecc.).


Bella spiegazione. Potete per favore rispondere alla prima parte della domanda. A proposito della CNN è scala / rotazione invariante?
Aadnan Farooq,

1
@AadnanFarooqA Lo farò stasera.
Tarin Ziyaee,

2

Molti autori tra cui Geoffrey Hinton (che propone Capsule net) cercano di risolvere il problema, ma qualitativamente. Cerchiamo di affrontare questo problema quantitativamente. Avendo tutti i kernel di convoluzione simmetrici (simmetria diedrica dell'ordine 8 [Dih4] o simmetrica di rotazione dell'incremento di 90 gradi, et al) nella CNN, forniremmo una piattaforma per il vettore di input e il vettore risultante su ogni strato nascosto di convoluzione da ruotare in modo sincrono con la stessa proprietà simmetrica (ad es. Dih4 o simmetrica di rotazione a 90 incrementi, et al). Inoltre, avendo la stessa proprietà simmetrica per ciascun filtro (cioè, completamente connesso ma pesa la condivisione con lo stesso modello simmetrico) sul primo strato appiattito, il valore risultante su ciascun nodo sarebbe quantitativamente identico e porterebbe allo stesso vettore di uscita CNN lo stesso anche. L'ho chiamato CNN identica alla trasformazione (o TI-CNN-1). Esistono altri metodi che possono anche costruire CNN identici alla trasformazione utilizzando input o operazioni simmetrici all'interno della CNN (TI-CNN-2). Sulla base della TI-CNN, una CNN identica alla rotazione orientata (GRI-CNN) può essere costruita da più TI-CNN con il vettore di ingresso ruotato di un piccolo angolo di passo. Inoltre, una CNN composta quantitativamente identica può anche essere costruita combinando più GRI-CNN con vari vettori di input trasformati.

  1. "Reti neurali convoluzionali trasformazionali identiche e invarianti attraverso operatori di elementi simmetrici" https://arxiv.org/abs/1806.03636 (giugno 2018)

  2. "Reti neurali convoluzionali trasformazionali identiche e invarianti combinando operazioni simmetriche o vettori di input" https://arxiv.org/abs/1807.11156 (luglio 2018)

  3. "Sistemi di reti neurali convoluzionali invariati e orientati alla rotazione" https://arxiv.org/abs/1808.01280 (agosto 2018)


-1

Penso che il max pooling possa riservare invarianze traslazionali e rotazionali solo per traduzioni e rotazioni inferiori alla dimensione del passo. Se maggiore, nessuna invarianza


1
potresti espanderci un po '? Incoraggiamo le risposte su questo sito ad essere un po 'più dettagliate di così (in questo momento, sembra più un commento). Grazie!
Antoine,
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.