Estoy estudiando redes neuronales convolucionales (CNN) debido a sus aplicaciones en visión por computadora. Ya estoy familiarizado con las redes neuronales estándar de alimentación hacia adelante, por lo que espero que algunas personas aquí puedan ayudarme a dar un paso adicional para comprender las CNN. Esto es lo que pienso sobre las CNN:
- En los NN de alimentación hacia adelante tradicionales, tenemos datos de entrenamiento en los que cada elemento consiste en un vector de características que ingresamos al NN en la "capa de entrada", por lo que con el reconocimiento de imágenes, podríamos hacer que cada píxel sea una entrada. Esos son nuestros vectores de características. Alternativamente, podríamos crear manualmente otros vectores de características, probablemente más pequeños.
- La ventaja de la CNN es que puede generar vectores de características más fuertes que son más invariables para la distorsión y la posición de la imagen. Como muestra la siguiente imagen (de este tutorial ), los CNN generan mapas de características que luego se alimentan a una red neuronal estándar (por lo que realmente es un paso de preprocesamiento gigante).
- La forma en que obtenemos esas "mejores" características es alternando convolución y submuestreo. Entiendo cómo funciona el submuestreo. Para cada mapa de características, solo tome un subconjunto de los píxeles, o podemos promediar los valores de píxeles.
Pero lo que más me confunde es cómo funciona el paso de convolución. Estoy familiarizado con las convoluciones de la teoría de probabilidad (densidad para la suma de dos variables aleatorias), pero ¿cómo funcionan en las CNN y por qué son efectivas?
Mi pregunta es similar a esta, pero en particular, no estoy seguro de por qué funciona el primer paso de convolución.