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

26

Leí aquí lo siguiente:

  • Las salidas sigmoideas no están centradas en cero . Esto no es deseable ya que las neuronas en las capas posteriores de procesamiento en una red neuronal (más sobre esto pronto) recibirían datos que no están centrados en cero. Esto tiene implicaciones en la dinámica durante el descenso del gradiente, porque si los datos que ingresan a una neurona siempre son positivos (por ejemplo, en sentido de elemento en )), entonces el gradiente en los pesos durante la retropropagación se convertirá todos serán positivos o todos negativos (dependiendo del gradiente de toda la expresión X>0 0F=wTX+siwF) Esto podría introducir dinámicas de zigzag no deseadas en las actualizaciones de gradiente para los pesos. Sin embargo, tenga en cuenta que una vez que estos gradientes se suman en un lote de datos, la actualización final de los pesos puede tener signos variables, lo que mitiga un poco este problema. Por lo tanto, esto es un inconveniente pero tiene consecuencias menos graves en comparación con el problema de activación saturado anterior.

¿Por qué tener todo (en sentido de elemento) conduciría a gradientes totalmente positivos o negativos en ?X>0 0w


Amelio Vazquez-Reina
fuente
2
También tenía exactamente la misma pregunta viendo videos CS231n.
subwaymatch el

Respuestas:

28

F=wyoXyo+si
reFrewyo=Xyo
reLrewyo=reLreFreFrewyo=reLreFXyo

porque Xyo>0 0 , el gradiente reLrewyo siempre tiene el mismo signo quereLreF (todo positivo o todo negativo).

Actualización
dicen que hay dos parámetros w1 y w2 , si las pendientes de dos dimensiones son siempre del mismo signo, esto significa que sólo podemos mover más o menos en la dirección del noreste o suroeste en el espacio de parámetros.

Si nuestro objetivo es estar en el noreste, solo podemos movernos en zigzag para llegar allí, al igual que el estacionamiento paralelo en un espacio estrecho. (perdona mi dibujo)

ingrese la descripción de la imagen aquí

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

F=wyo(Xyo+siyo).
reLrewyo=reLreF(Xyo-siyo)
Xyo

dontloo
fuente
Por favor, corríjame si estoy equivocado, pero no debería transponerse el valor de dL / df de x, es decir, xT, ya que estaríamos usando la idea de Jacobin aquí.
chinmay
fwTx+bLwx
Sí, es un gran error tipográfico de mi parte. Quise decir df / dw ... pero creo que depende más del vector x y si es un vector de fila o un vector de columna
chinmay
dL/df
1
@floyd hola Acabo de agregar algunas actualizaciones para su pregunta
dontloo