función de activación de tanh vs función de activación sigmoidea

82

La función de activación de tanh es:

tanh(x)=2σ(2x)1

Donde σ(x) , la función sigmoide, se define como:

σ(x)=ex1+ex
.

Preguntas:

  • ¿Realmente importa entre usar esas dos funciones de activación (tanh vs. sigma)?
  • ¿Qué función es mejor en qué casos?
satya
fuente
12
tanh(x)=2σ(2x)1
Roman Shapovalov
Las redes neuronales profundas han avanzado. La preferencia actual es la función RELU.
Paul Nord el
77
@PaulNord Tanto el tanh como los sigmoides todavía se usan junto con otras activaciones como RELU, depende de lo que intentes hacer.
Tahlor

Respuestas:

80

Sí, es importante por razones técnicas. Básicamente para la optimización. Vale la pena leer Efficient Backprop de LeCun et al.

Hay dos razones para esa elección (suponiendo que haya normalizado sus datos, y esto es muy importante):

  1. Tener gradientes más fuertes: dado que los datos se centran alrededor de 0, las derivadas son más altas. Para ver esto, calcule la derivada de la función tanh y observe que su rango (valores de salida) es [0,1].

El rango de la función tanh es [-1,1] y el de la función sigmoide es [0,1]

  1. Evitar sesgos en los gradientes. Esto se explica muy bien en el documento, y vale la pena leerlo para comprender estos problemas.
jpmuc
fuente
Tengo una pequeña duda en el documento que sugirió. En la página 14, "Cuando MLP ha compartido pesos (por ejemplo: redes convolucionales), la tasa de aprendizaje debe elegirse de tal manera que sea proporcional a la raíz cuadrada del número de conexiones que comparten el peso". ¿Puedes explicar por qué?
Satya
esta pregunta ya ha sido respondida aquí stats.stackexchange.com/questions/47590/…
jpmuc
1
Esa es una pregunta muy general. En pocas palabras: la función de costo determina lo que debe hacer la red neuronal: clasificación o regresión y cómo. Si pudiera obtener una copia de "Redes neuronales para el reconocimiento de patrones" por Christopher Bishop, sería genial. También "Machine Learning" de Mitchell le da una buena explicación a un nivel más básico.
jpmuc
1
Lo siento, Satya, generalmente estoy bastante ocupado durante la semana. ¿Cómo normalizas tus datos exactamente? en.wikipedia.org/wiki/Whitening_transformation No estoy realmente seguro de cuál puede ser su problema. La forma más fácil es restar la media y luego igualar con la matriz de covarianza. Evtl. necesita agregar algún componente para frecuencias altas (vea la transformación ZCA en la referencia anterior)
jpmuc
1
Muchas gracias juampa. Realmente me estás ayudando mucho. La lectura sugerida es muy buena. Realmente estoy haciendo un proyecto sobre minería de datos climáticos. El 50% de mis características de entrada son temperatura (rango 200K-310K) y el 50% de mis características de entrada son valores de presión (rango 50000pa a 100000pa). Estoy haciendo blanqueamiento. Antes de PCA, ¿hay alguna necesidad de normalizarlo? En caso afirmativo, ¿cómo debo normalizarlo? ¿Debo normalizar antes de restar por medio o después de restar por medio? Estoy obteniendo resultados diferentes si me estoy normalizando por diferentes métodos ...
Satya
32

Muchas gracias @jpmuc! Inspirado por su respuesta, calculé y tracé la derivada de la función tanh y la función sigmoidea estándar por separado. Me gustaría compartir con todos ustedes. Aquí está lo que tengo. Esta es la derivada de la función tanh. Para la entrada entre [-1,1], tenemos derivada entre [0.42, 1]. ingrese la descripción de la imagen aquí

Esta es la derivada de la función sigmoidea estándar f (x) = 1 / (1 + exp (-x)). Para la entrada entre [0,1], tenemos derivada entre [0.20, 0.25]. ingrese la descripción de la imagen aquí

Aparentemente, la función tanh proporciona gradientes más fuertes.

Mina HE
fuente
66
Otra forma de ver esto es que σ (2x) es lo mismo que σ (x), pero con un estiramiento horizontal aplicado, factor de escala 1/2 (es decir, es el mismo gráfico pero con todo aplastado hacia el eje y). Cuando lo
aplastas
2
No veo por qué esto haría alguna diferencia. La escala y el aplastamiento serán aleatorios para cada nodo y (con compensaciones y pesos en la entrada y la salida) ambos serán aproximadores universales, que convergerán en el mismo resultado.
endolito el