47 votos

¿Por qué las funciones de activación no centradas en cero son un problema en la retropropagación?

Leo ici lo siguiente:

  • Las salidas sigmoides no están centradas en el cero . Esto no es deseable, ya que las neuronas de las capas posteriores de procesamiento en una red neuronal (más sobre esto pronto) recibirían datos que no están centrados en el cero. Esto tiene implicaciones en la dinámica durante el descenso de gradiente, porque si los datos que llegan a una neurona son siempre positivos (por ejemplo $x > 0$ en forma elemental en $f = w^Tx + b$ )), entonces el gradiente en los pesos $w$ durante la retropropagación serán todos positivos, o todas negativas (dependiendo del gradiente de toda la expresión $f$ ). Esto podría introducir una dinámica indeseable de zig-zag en las actualizaciones del gradiente para los pesos. Sin embargo, observe que una vez que estos gradientes se suman a través de un lote de datos, la actualización final de los puede tener signos variables, lo que mitiga un poco este problema. Por lo tanto, esto es un inconveniente pero tiene menos consecuencias comparado con el problema de activación saturada anterior.

¿Por qué tener todos los $x>0$ (elementalmente) conducen a gradientes totalmente positivos o negativos en $w$ ?


5 votos

Yo también tenía exactamente la misma duda viendo los vídeos del CS231n.

59voto

dontloo Puntos 334

$$f=\sum w_ix_i+b$$ $$\frac{df}{dw_i}=x_i$$ $$\frac{dL}{dw_i}=\frac{dL}{df}\frac{df}{dw_i}=\frac{dL}{df}x_i$$

porque $x_i>0$ el gradiente $\dfrac{dL}{dw_i}$ siempre tiene el mismo signo que $\dfrac{dL}{df}$ (todas positivas o todas negativas).

Actualización
Digamos que hay dos parámetros $w_1$ y $w_2$ . Si los gradientes de dos dimensiones son siempre del mismo signo (es decir, ambos son positivos o ambos son negativos), significa que sólo podemos movernos aproximadamente en la dirección del noreste o del suroeste en el espacio de los parámetros.

Si resulta que nuestro objetivo está en el noroeste, sólo podemos movernos en zig-zag para llegar a él, como si estuviéramos aparcando en paralelo en un espacio estrecho. (perdona mi dibujo)

enter image description here

Por lo tanto, las funciones de activación totalmente positivas o negativas (relu, sigmoide) pueden ser difíciles para la optimización basada en el gradiente. Para resolver este problema, podemos normalizar los datos de antemano para que estén centrados en cero, como en la normalización de lotes/capas.

También otra solución que se me ocurre es añadir un término de sesgo para cada entrada de manera que la capa se convierta en $$f=\sum w_i(x_i+b_i).$$ Los gradientes son entonces $$\frac{dL}{dw_i}=\frac{dL}{df}(x_i-b_i)$$ el signo no dependerá únicamente de $x_i$ .

0 votos

Por favor, corrígeme si me equivoco, pero el valor de dL/df no debería ser la transposición de x, es decir, x.T, ya que estaríamos utilizando la idea de Jacobin aquí.

0 votos

@chinmay perdón por la respuesta tardía, creo que $f$ este es el resultado de $w^Tx+b$ por lo que el valor de dL/df no depende de x, y normalmente $L$ es un escalar, $w$ y $x$ son vectores 1d, por lo que dL/df también debería ser un escalar, ¿no?

0 votos

Sí, es un gran error de mi parte. Me refería a df/dw .... pero creo que depende más del vector x y de si es un vector fila o un vector columna

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