Sto cercando di capire meglio le reti neurali convoluzionali scrivendo il codice Python che non dipende dalle librerie (come Convnet o TensorFlow) e mi sto bloccando in letteratura su come scegliere i valori per la matrice del kernel, quando eseguendo una convoluzione su un'immagine.
Sto cercando di comprendere i dettagli dell'implementazione nel passaggio tra le mappe delle caratteristiche nell'immagine seguente che mostra i livelli di una CNN.
Secondo questo diagramma:
Il kernel della matrice del kernel "passa" sull'immagine, creando una mappa delle caratteristiche, in cui ogni pixel è la somma di tutti i prodotti saggi tra ogni peso del kernel (o matrice del filtro) e il corrispondente valore di pixel dell'immagine di input.
La mia domanda è: come inizializziamo i pesi della matrice del kernel (o filtro)?
Nella dimostrazione sopra, sono semplicemente 1 e 0, ma suppongo che questo sia semplificato dal punto di vista del diagramma.
Questi pesi vengono addestrati in alcune fasi di preelaborazione? O scelto esplicitamente dall'utente?