30 votos

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

En términos de la jerga de la red neuronal (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 pienso es que si una entrada es importante, entonces tendrá una conexión muy ponderada con la primera capa, pero el peso puede ser positivo o negativo. Así que 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.

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

20voto

redconservatory Puntos 4848

Lo que describes es, de hecho, una forma estándar de cuantificar la importancia de los aportes de las redes neuronales. Sin embargo, para que esto funcione, las variables de entrada deben ser normalizadas 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 la sustracción de la media de una variable y la división por su desviación estándar. Si las variables no estuvieran normalizadas en primer lugar, se podría realizar una corrección de los pesos propiamente dichos en el cálculo de la importancia, como la multiplicación por la desviación estándar de la variable.

$I_i = \sigma_i\sum\limits_ {j = 0}^{n_ \text {hidden}} \left |w_{ij} \right |$ .

Aquí $ \sigma_i $ es la desviación estándar de la $i$ la entrada, $I_i$ es el $i$ La importancia de la entrada, $w_{ij}$ es el peso que conecta el $i$ la entrada de la $j$ el nodo oculto en la primera capa, y $n_ \text {hidden}$ es el número de nodos ocultos en la primera capa.

Otra técnica es utilizar el derivado de la cartografía de la red neuronal con respecto a la entrada en cuestión, promediado sobre las entradas.

$I_i = \sigma_i\left\langle\left | \frac {dy}{dx_i} \right | \right\rangle $

Aquí $x_i$ es el $i$ la entrada, $y$ es la salida, y el valor de expectativa se toma con respecto al vector de las entradas $ \mathbf {x}$ .

13voto

Hasselhoff Puntos 13

Una fuerza algo bruta pero una solución efectiva:

Intenta "soltar" una entrada usando una constante para una de tus características de entrada. Luego, entrena a la red para cada uno de los casos posibles y mira cómo baja tu precisión. Las entradas importantes proporcionarán el mayor beneficio para la precisión general.

8voto

David Puntos 41

Lo que describiste no es una "red profunda", donde sólo tienes $10$ entradas y $5$ unidades en la capa oculta. Cuando la gente dice aprendizaje profundo, normalmente significa cientos de miles de unidades ocultas.

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

Para una red realmente profunda, la gente no habla demasiado de importancia variable. Porque las entradas son características de nivel crudo, como los píxeles de una imagen.

4voto

user148405 Puntos 11

Lo más que he encontrado sobre esto es una elaborada lista en este sitio más específicamente puedes mirar este . Si se habla sólo de modelos lineales, entonces hay que normalizar los pesos para hacerlos interpretables, pero incluso esto puede ser más engañoso en el enlace mencionado. Algunas personas intentaron hacer funciones complejas de pesos para interpretar la importancia de las entradas (Garson, Gedeon y Milne), pero incluso esto puede ser engañoso, puedes encontrar más sobre esto una vez que desplaces el primer enlace que mencioné. En general, yo aconsejaría seguir adelante para interpretar los resultados con un grano de sal.

estaría de acuerdo con la respuesta de @rhadar pero le gustaría añadir que en lugar de usar cualquier constante intente usar el valor medio para esa entrada y no se olvide de volver a entrenar la red.

P.D.: Lo siento, no puedo poner más enlaces o comentarios aquí, no tengo mucha reputación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X