Aprendizaje profundo: ¿Cómo sé qué variables son importantes?


20

En términos de jerga de redes neuronales (y = Peso * x + sesgo), ¿cómo sabría qué variables son más importantes que otras?

Tengo una red neuronal con 10 entradas, 1 capa oculta con 20 nodos y 1 capa de salida que tiene 1 nodo. No estoy seguro de cómo saber qué variables de entrada son más influyentes que otras variables. Lo que estoy pensando es que si una entrada es importante, tendrá una conexión altamente ponderada a la primera capa, pero el peso puede ser positivo o negativo. Entonces, lo que podría hacer es tomar el valor absoluto de los pesos de la entrada y sumarlos. Las entradas más importantes tendrían sumas más altas.

Entonces, por ejemplo, si la longitud del cabello es una de las entradas, entonces debería tener 1 conexión a cada uno de los nodos en la siguiente capa, por lo que 20 conexiones (y por lo tanto 20 pesos). ¿Puedo simplemente tomar el valor absoluto de cada peso y sumarlos?


3
Ciertamente puede hacer eso, pero no está claro qué significa realmente además de "la suma de todos los pesos para esta variable en todas las conexiones". Llamarlo "importancia" es completamente arbitrario.
Matthew Drury

1
Solo quiero CUALQUIER información que sugiera que una variable es importante, y creo que esta podría ser una buena manera.
user1367204

Respuestas:


16

Lo que usted describe es de hecho una forma estándar de cuantificar la importancia de las entradas de la red neuronal. Tenga en cuenta que para que esto funcione, sin embargo, las variables de entrada deben normalizarse de alguna manera. De lo contrario, los pesos correspondientes a las variables de entrada que tienden a tener valores más grandes serán proporcionalmente más pequeños. Existen diferentes esquemas de normalización, como por ejemplo restar la media de una variable y dividirla por su desviación estándar. Si las variables no se normalizaron en primer lugar, podría realizar una corrección en los pesos mismos en el cálculo de importancia, como multiplicar por la desviación estándar de la variable.

yoyo=σyoj=1norteocultoEl |wyojEl |.

Aquí es la desviación estándar de la ésima entrada, es la importancia de la ésima entrada, es el peso que conecta la ésima entrada al ésimo nodo oculto en la primera capa, y es el número de nodos ocultos en la primera capa.σyoyoyoyoyowyojyojnorteoculto

Otra técnica es utilizar la derivada del mapeo de la red neuronal con respecto a la entrada en cuestión, promediada sobre las entradas.

yoyo=σyoEl |reyreXyoEl |

Aquí es el ésimo de entrada, es la salida, y el valor esperado se toma con respecto al vector de las entradas .XyoyoyX


¿Funcionaría esto si solo uso las conexiones entre las entradas y la primera capa oculta (en lugar de usar todas las capas ocultas)?
user1367204

Solo debes usar la primera capa oculta. Después de una capa, los otros pesos no están vinculados a una entrada más que a otra. Edité la respuesta un poco para aclarar esto.
Sam Marinelli

Recordé otro enfoque y lo agregué a la respuesta.
Sam Marinelli

11

Una fuerza algo bruta pero una solución efectiva:

Intente 'dropear' una entrada usando una constante para una de sus características de entrada. Luego, entrene la red para cada uno de los casos posibles y vea cómo disminuye su precisión. Las entradas importantes proporcionarán el mayor beneficio para la precisión general.


Esa es ciertamente una posibilidad.
SmallChess

66
Sin embargo, existe una trampa: incluso si una característica es extremadamente importante, si hay otra característica altamente correlacionada con la primera, ninguno de ellos se considerará importante según sus criterios (la falta de la primera se compensa con la presencia de la segunda, aunque es menos informativa, pero más características 'únicas' parecerán más importantes de esa manera)
Firebug

Esto a veces se llama prueba de ablación (más específicamente
microablación

7

105 5

Para una red poco profunda, esto da un ejemplo de definir la importancia variable.

Para una red realmente profunda, las personas no hablan demasiado sobre la importancia variable. Debido a que las entradas son características de nivel sin procesar, como píxeles en una imagen.


Edité mi comentario para reflejar lo que quise decir. Quise decir 20 nodos en la primera capa, no 5 nodos. Gran parte y gracias por distinguir redes poco profundas / profundas.
user1367204

99
@ hxd1011 no es prudente pedante, pero profundo significa más capas, no miles de unidades ocultas :).
Rafael

3

Lo más que he encontrado sobre esto está detallado en este sitio, más específicamente puede ver esto . Si solo habla de modelos lineales, debe normalizar los pesos para que sean interpretables, pero incluso esto puede ser más engañoso en el enlace mencionado. Algunas personas intentaron realizar funciones complejas de pesos para interpretar la importancia de las entradas (Garson, Gedeon y Milne), pero incluso esto puede ser engañoso, puede encontrar más información sobre esto una vez que desplaza el primer enlace que mencioné. En general, aconsejaría seguir interpretando los resultados con un grano de sal.

estaría de acuerdo con la respuesta de @ rhadar pero quisiera agregar eso en lugar de usar cualquier intento constante usando el valor medio para esa entrada y no olvide volver a entrenar la red.

PD: lo siento, no podría publicar más enlaces o comentarios aquí, no tengo mucha reputación.


1

Dado que tienes:

  1. Una tarea de clasificación
  2. Un modelo entrenado
  3. Características normalizadas (entre 0 y 1)

¿Alguien ha intentado:

  1. Poner a cero los prejuicios
  2. Pase cada vez como características un vector caliente donde todas las características son cero excepto una.
  3. Examina la salida.

En ese caso, creo que la salida sería un número que designa la "importancia" de la función, ya que esta salida también representaría la salida de la ruta de esta señal 1 dentro de la red.

Es como encender solo una bombilla dentro de un laberinto y medir la luz que sale por la salida.


No creo que esto ayude mucho. Lo que le gustaría evaluar es cuánto afectaría la variación de esa entrada a la salida (por sí sola o en combinación con otras características)
elachell
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.