¿Qué aprendió mi red neuronal? ¿Qué características le importan y por qué?

30

Una red neuronal aprende las características de un conjunto de datos como un medio para lograr algún objetivo. Cuando esté hecho, podemos querer saber qué aprendió la red neuronal. ¿Cuáles fueron las características y por qué le importaban? ¿Alguien puede dar algunas referencias sobre el cuerpo de trabajo relacionado con este problema?

usuario442920
fuente

Respuestas:

28

Es cierto que es difícil entender qué está aprendiendo una red neuronal, pero ha habido mucho trabajo en ese frente. Definitivamente podemos tener una idea de lo que está buscando nuestra red.

Consideremos el caso de una red neuronal convolucional para imágenes. Tenemos la interpretación para nuestra primera capa de que estamos deslizando los filtros sobre la imagen, por lo que nuestra primera capa oculta corresponde al acuerdo entre pequeños fragmentos de la imagen y nuestros diversos filtros. Podemos visualizar estos filtros para ver cuál es nuestra primera capa de representación:K

alexnet capa 1

Esta imagen es de la primera capa de filtros de una AlexNet y está tomada de este maravilloso tutorial: http://cs231n.github.io/understanding-cnn/ . Esto nos permite interpretar la primera capa oculta como aprender a representar la imagen, que consiste en píxeles sin formato, como un tensor donde cada coordenada es la concordancia de un filtro con una pequeña región de la imagen. La siguiente capa está trabajando con estas activaciones de filtro.

[010141010].

0

Este artículo de Erhan et al (2009) está de acuerdo con esto: dicen que las visualizaciones de la primera capa oculta son comunes (y eso fue en 2009), pero visualizar las capas más profundas es la parte difícil. De ese papel:

El principal hallazgo experimental de esta investigación es muy sorprendente: la respuesta de una unidad interna a las imágenes de entrada, como una función en el espacio de la imagen, parece ser unimodal, o al menos que el máximo se encuentra de manera confiable y consistente para todas las inicializaciones aleatorias probadas . Esto es interesante porque encontrar este modo dominante es relativamente fácil, y mostrarlo proporciona una buena caracterización de lo que hace la unidad.

Chris Olah et al ( https://distill.pub/2017/feature-visualization/ ) se basan en esto y discuten cómo en general puede (1) generar imágenes que conducen a grandes activaciones para tener una idea de lo que la red está buscando; o (2) tome imágenes de entrada reales y vea cómo diferentes partes de la imagen activan la red. Esa publicación se centra en (1).

En la imagen a continuación, tomada de ese artículo vinculado por Olah et al., Los autores discuten los diferentes aspectos de la red que puede inspeccionar. La imagen de la izquierda muestra el resultado de optimizar la activación de una neurona particular sobre el espacio de la imagen de entrada, y así sucesivamente.

C. Olah et al.

Recomiendo encarecidamente leer ese artículo en su totalidad si desea una comprensión más profunda de esto, y al leer sus referencias debe tener una gran comprensión de lo que se ha hecho con esto.

Ahora, por supuesto, todo esto fue solo para imágenes donde nosotros, como humanos, podemos dar sentido a las entradas. Si está trabajando con algo más difícil de interpretar, como un gran vector de números, es posible que no pueda hacer visualizaciones tan geniales, pero en principio aún podría considerar estas técnicas para evaluar las diversas neuronas, capas, etc. .

jld
fuente
2
+1 especialmente para el párrafo final. Personalmente, creo que las personas con visión han terminado de hacer visualizaciones en este gran número de parámetros.
Haitao Du
por supuesto +1 para la respuesta larga bien escrita con referencias creíbles.
Haitao Du
1
@ hxd1011 gracias, y creo que Olah et al hacen un gran punto en ese artículo de que no es realmente justo ver qué maximiza una sola neurona, ya que realmente la capa es como una base y se trata más del espacio que representa la capa que Los vectores base exactos. Así, mientras que la diversión a la vista, muchas de esas visualizaciones no puede ser súper perspicaz
JLD
1
También una idea errónea común es que cuando se toman los filtros de la primera capa, un parche de imagen que maximizará la salida de una neurona dada se ve exactamente como ese filtro. En realidad no, un parche que maximiza la salida de una neurona no se parece en nada a los valores numéricos del filtro, ya que su convolución, no coincide con la plantilla. Ahí es donde creo que residen los ejemplos adversos.
Lugi
Olah y col. la publicación de blog es agradable, pero cometen un error: "optimizan para la máxima activación" (no exactamente eso, pero cerca), encuentran una imagen que no se parece en nada a las imágenes del conjunto de entrenamiento y concluyen que las CNN "ven" de manera diferente a nosotros. Si bien la conclusión es obviamente cierta, el razonamiento es defectuoso: el modo de distribución de alta dimensión no se parece en nada a una muestra típica de esa distribución. En otras palabras, es precisamente porque las CNN necesitan clasificar a los gatos, que el modo de distribución no debe ser un gato, sino un "gato de pesadilla".
DeltaIV
7

Neural Network es uno de los modelos de caja negra que no daría reglas "fáciles de entender" o lo que se ha aprendido.

Específicamente, lo que se ha aprendido son los parámetros en el modelo, pero los parámetros pueden ser grandes: cientos de miles de parámetros son muy normales.

Además, tampoco está claro sobre las características importantes aprendidas, puede entender que el modelo usa todas las características, con muchas operaciones complicadas para obtener los resultados, donde no es fácil decir en inglés simple cómo el modelo transforma cada característica.


De hecho, la red neuronal de una capa (sin capa oculta) con función logística como función de activación es idéntica a la regresión logística. La regresión logística es muy rica en interpretaciones. Aquí hay un ejemplo. Pero con una red neuronal compleja / capas más ocultas, tal interpretación no se aplicará.

Haitao Du
fuente