Yan LeCun y otros argumentan en Efficient BackProp que
La convergencia suele ser más rápida si el promedio de cada variable de entrada sobre el conjunto de entrenamiento es cercano a cero. Para ver esto, considere el caso extremo donde todas las entradas son positivas. Los pesos para un nodo particular en la primera capa de peso se actualizan en una cantidad proporcional a donde es el error (escalar) en ese nodo es el vector de entrada (ver ecuaciones (5) y (10)). Cuando todos los componentes de un vector de entrada son positivos, todas las actualizaciones de los pesos que se introducen en un nodo tendrán el mismo signo (es decir, signo ( )). Como resultado, estos pesos solo pueden disminuir o aumentar todos juntosδxδxδpara un patrón de entrada dado. Por lo tanto, si un vector de peso debe cambiar de dirección, solo puede hacerlo zigzagueando, lo que es ineficiente y, por lo tanto, muy lento.
Es por eso que debe normalizar sus entradas para que el promedio sea cero.
La misma lógica se aplica a las capas intermedias:
Esta heurística se debe aplicar en todas las capas, lo que significa que queremos que el promedio de las salidas de un nodo sea cercano a cero porque estas salidas son las entradas a la siguiente capa.
Postscript @craq señala que esta cita no tiene sentido para ReLU (x) = max (0, x), que se ha convertido en una función de activación muy popular. Si bien ReLU evita el primer problema de zigzag mencionado por LeCun, LeCun no resuelve este segundo punto, quien dice que es importante llevar el promedio a cero. Me encantaría saber qué dice LeCun sobre esto. En cualquier caso, hay un documento llamado Batch Normalization , que se basa en el trabajo de LeCun y ofrece una manera de abordar este problema:
Se sabe desde hace mucho tiempo (LeCun et al., 1998b; Wiesler y Ney, 2011) que el entrenamiento de la red converge más rápido si sus entradas se blanquean, es decir, se transforman linealmente para tener cero medias y variaciones de unidades, y están relacionadas con la decoración. Como cada capa observa las entradas producidas por las capas de abajo, sería ventajoso lograr el mismo blanqueamiento de las entradas de cada capa.
Por cierto, este video de Siraj explica mucho sobre las funciones de activación en 10 divertidos minutos.
@elkout dice "La verdadera razón por la que se prefiere el tanh en comparación con el sigmoide (...) es que las derivadas del tanh son más grandes que las derivadas del sigmoide".
Creo que esto no es un problema. Nunca vi que esto fuera un problema en la literatura. Si te molesta que una derivada sea más pequeña que otra, puedes escalarla.
La función logística tiene la forma . Usualmente, usamos , pero nada le prohíbe usar otro valor para para ampliar sus derivados, si ese fuera su problema.σ(x)=11+e−kxk=1k
Nitpick: tanh es también una función sigmoidea . Cualquier función con forma de S es un sigmoide. Lo que ustedes llaman sigmoide es la función logística. La razón por la cual la función logística es más popular es por razones históricas. Ha sido utilizado durante más tiempo por los estadísticos. Además, algunos sienten que es más biológicamente plausible.