Come viene eseguita l'operazione di convoluzione quando sul livello di ingresso sono presenti più canali? (ad esempio RGB)Reti neurali coattuzionali - Canali multipli
Dopo aver letto sull'architettura/implementazione di una CNN, capisco che ogni neurone in una mappa di caratteristiche fa riferimento a pixel NxM di un'immagine definita dalla dimensione del kernel. Ogni pixel viene quindi calcolato mediante il set di pesi NxM delle mappe di caratteristiche (il kernel/filtro), sommati e inseriti in una funzione di attivazione. Per una semplice immagine in scala di grigi, immagino l'operazione sarebbe qualcosa di aderire al seguente pseudo codice:
for i in range(0, image_width-kernel_width+1):
for j in range(0, image_height-kernel_height+1):
for x in range(0, kernel_width):
for y in range(0, kernel_height):
sum += kernel[x,y] * image[i+x,j+y]
feature_map[i,j] = act_func(sum)
sum = 0.0
Tuttavia non capisco come estendere questo modello per gestire più canali. Sono necessari tre set di pesi separati per ogni mappa di caratteristiche, condivisa tra ciascun colore?
Riferimenti sezione di questo tutorial 'Pesi condivise': http://deeplearning.net/tutorial/lenet.html Ogni neurone in uno strato funzione mappa riferimenti m-1 con colori fa riferimento dai neuroni separati. Non capisco la relazione che stanno esprimendo qui. I kernel dei neuroni oi pixel e perché fanno riferimento a parti separate dell'immagine?
In base al mio esempio, sembrerebbe che un singolo kernel di neuroni sia esclusivo di una particolare regione in un'immagine. Perché hanno diviso il componente RGB su più regioni?
Sto votando per chiudere questa domanda come off-topic perché appartiene a stats.stackexchange – jopasserat