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:
- 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.
- 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).
- 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.