Estoy tratando de entender mejor las redes neuronales convolucionales escribiendo mejor el código de Python que no depende de las bibliotecas (como Convnet o TensorFlow), y me estoy atascando en la literatura sobre cómo elegir valores para la matriz del núcleo, cuando realizando una convolución en una imagen.
Estoy tratando de entender los detalles de implementación en el paso entre mapas de características en la imagen a continuación que muestra las capas de una CNN.
De acuerdo con este diagrama:
El núcleo de la matriz del núcleo "pasa" sobre la imagen, creando un mapa de características, donde cada píxel es la suma de todos los productos de elementos entre cada peso del núcleo (o matriz de filtro) y el valor de píxel correspondiente de la imagen de entrada.
Mi pregunta es: ¿cómo inicializamos los pesos de la matriz del núcleo (o filtro)?
En la demostración anterior, son simplemente 1s y 0s, pero supongo que esto se simplifica por el bien del diagrama.
¿Se entrenan estos pesos en algún paso de preprocesamiento? ¿O elegido explícitamente por el usuario?