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?
fuente
Respuestas:
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.
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.σyo yo yoyo yo wyo j yo j norteoculto
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.
Aquí es el ésimo de entrada, es la salida, y el valor esperado se toma con respecto al vector de las entradas .Xyo yo y X
fuente
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.
fuente
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.
fuente
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.
fuente
Dado que tienes:
¿Alguien ha intentado:
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.
fuente