Cómo interpretar el resultado de una red totalmente convolucional

Dado que cada neurona en el mapa de características de salida 10 × 10 tiene un campo receptivo en la imagen original (digamos una región de 50 × 50), puede averiguar qué partes de la imagen de entrada causaron la activación que está observando en el mapa de características. Es decir, los mapas de características tienen una especie de codificación espacial de la imagen de entrada. Normalmente, construiría su red de una manera particular para aprovechar eso. Permítanme pasar por un ejemplo simple de cómo esto podría usarse para la localización.

Digamos que está tratando de clasificar su imagen en una de las clases K. Para aprovechar la codificación espacial en la salida, lo más común es que diseñe su red de manera que termine con mapas de características K 10 × 10. Esos pueden ser agrupados al máximo o agrupados promedio para obtener una activación única para cada clase. Finalmente, estas activaciones de K se envían a través de una capa softmax para obtener su vector de probabilidad típico para cada clase. Lo bueno ahora es que cada clase tiene su propio mapa de características 10 × 10. Además, cada neurona en este mapa de características tiene un campo receptivo en la imagen original que depende de la arquitectura de la red y puede calcularse fácilmente. Entonces, digamos que su red predijo la clase k, puede ver las activaciones en el mapa de características correspondiente y descubrir en qué parte de la imagen original fue lo que causó que la red prediga esta clase. Si, por ejemplo, la neurona en (2,3) fue la que más salió, entonces el objeto de la categoría k probablemente esté al menos parcialmente en la región de su imagen de 500 × 500 que se conecta a esta neurona, o en otras palabras, esto campo receptivo de neuronas.

Eso es básicamente lo que hizo el autor de este artículo.

Bueno, como sabrán, en CNN, el objetivo de las capas totalmente convolucionales es reconocer las diferentes características gráficas dentro de la imagen, por ejemplo, las diferentes formas, los colores, las texturas, etc. Durante el entrenamiento, la propagación inversa evoluciona los filtros para extraer las características correctamente. Después del entrenamiento, los filtros generalmente se ven así:

En la CNN tradicional, una vez que se han extraído las características, las capas completamente conectadas hacen el trabajo de clasificar la imagen de acuerdo con las características. Básicamente verifican qué características se han encontrado e intentan adivinar qué podría ser. Tomemos un ejemplo simple, si las capas convolucionales descubrieron que las imágenes contienen muchos píxeles azules y blancos, con algunos bordes borrosos, ¡entonces las capas completamente conectadas podrían adivinar que es un cielo!

Ahora, simulando que elimina estas capas completamente conectadas, se detendrá justo después de la extracción de características. Lo que significa que lo que obtendrás son solo los filtros entrenados.

Sin embargo, no tengo idea de cómo entrenar a un FCN y cuál es su propósito, pero así es como los entiendo

Lo interpretarías como un mapa de calor reducido.

Según los valores, la imagen de 10 × 10 indicaría dónde se encuentra probablemente un objeto en particular. Por supuesto, para obtener mejores resultados, recomiendo pasar esa representación latente a través de algunas capas de deconvolución para que obtenga una imagen del mismo tamaño que la original y que le dé un mapa de calor 1-1.

Cualquier red neuronal genera valores para los que ha sido entrenada. En el caso de las CNN, pasamos la salida a través de un softmax y las comparamos con las probabilidades más altas utilizando la pérdida logarítmica. Así es como se entrena y, por lo tanto, interpretamos los resultados como probabilidades de clase.

En el caso de los FCN, también están capacitados para ser comparados con algunas etiquetas de verdad básicas. Por ejemplo, SegNet está entrenado para clasificar cada píxel de la entrada y, por lo tanto, genera una imagen completa, cada píxel es una probabilidad de clase.

En el caso de SRCNN, genera la imagen súper resuelta.

Todo por eso es lo que está entrenado para hacer.

Una pregunta más interesante (sin una buena respuesta hasta ahora) es cómo interpretaría la activación de las capas intermedias (ocultas) de cualquier red.

El video tutorial disponible en este enlace: Tutoriales interactivos: Niraj contiene una explicación interactiva de la funcionalidad y estructura de la red neuronal convolucional. También demuestra la red neuronal convoluncional a través de un ejemplo de entrenamiento interactivo. Espero que sirva para su propósito (si no completamente).

Enlace: Tutoriales interactivos – Niraj