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.
fuente
No tengo idea de lo que quieres decir con "por qué funciona el primer paso de convolución". Para que una CNN tenga éxito, necesita tener muchas capas. Una de las ideas fundamentales detrás de CNN y muchos otros enfoques de aprendizaje profundo es que las señales más grandes pueden identificarse mediante la correlación espacial de sus partes más pequeñas que pueden estar escasamente representadas. En otras palabras, las imágenes pueden parecer complejas, pero están hechas de una combinación de solo unas pocas partes básicas. Para la visión por computadora, la estructura de la línea de base en las imágenes generalmente se compone de bordes y esquinas. CNN intenta explotar la escasez de la estructura en una imagen buscando estructuras localizadas comunes. Eso es lo que la primera capa de la CNN está tratando de determinar. Piense en una convolución como un filtro de coincidencia que busca señales que coincidan con una plantilla específica. Lo bien que funcione depende de los datos disponibles. Afortunadamente, el mundo está lleno de repetición a pequeña escala, por lo que CNN funciona bien para las tareas de visión por computadora.
fuente
Este video explica muy bien lo básico de la convolución.
fuente