¿Qué función de activación para la capa de salida?

44

Si bien la elección de las funciones de activación para la capa oculta es bastante clara (principalmente sigmoide o tanh), me pregunto cómo decidir la función de activación para la capa de salida. Las opciones comunes son funciones lineales, funciones sigmoideas y funciones softmax. Sin embargo, ¿cuándo debo usar cuál?

Julian
fuente
3
Más recientemente, ReLU se ha vuelto popular como la función de activación para unidades ocultas.
ijuneja el

Respuestas:

39
  • Regresión: lineal (porque los valores son ilimitados)
  • Clasificación: softmax (el sigmoide simple también funciona, pero softmax funciona mejor)

Use sigmoide simple solo si su salida admite múltiples respuestas "verdaderas", por ejemplo, una red que verifica la presencia de varios objetos en una imagen. En otras palabras, la salida no es una distribución de probabilidad (no necesita sumar 1).

rcpinto
fuente
2
Softmax también es importante si tiene varios grupos para la clasificación
cdeterman
15
Creo que es incorrecto decir que softmax funciona "mejor" que un sigmoide, pero puede usar softmax en casos en los que no puede usar un sigmoide. Para la clasificación binaria, la función logística (un sigmoide) y softmax funcionarán igualmente bien, pero la función logística es matemáticamente más simple y, por lo tanto, la elección natural. Sin embargo, cuando tiene más de dos clases, no puede usar una función escalar como la función logística, ya que necesita más de una salida para conocer las probabilidades para todas las clases, por lo tanto, usa softmax.
HelloGoodbye
1
No creo que softmax sea una activación. En términos generales, debe activarlo antes de normalizarlo (softmax).
Aaron
23

Puede que llegue tarde a la fiesta, pero parece que hay algunas cosas que deben aclararse aquí.

En primer lugar: la función de activación g(x) en la capa de salida a menudo depende de su función de costo . Esto se hace para hacer la derivada Cz de la función de costoCcon respecto a las entradaszen la última capa fácil de calcular.

Como ejemplo , podríamos usar la pérdida de error cuadrática media C(y,g(z))=12(yg(z))2en una configuración de regresión. Al establecerg(x)=x(función de activación lineal), encontramos la derivada

C(y,g(z))z=C(y,g(z))g(z)g(z)z=g(z)(12(yg(z))2)z(z)=(yg(z))1=g(z)y
Obtiene la misma expresión fácil paraCz si combina la pérdida de entropía cruzada con las funciones de activación sigmoide o softmax logísticas.

Esta es la razón por la cual las activaciones lineales a menudo se usan para regresión y las activaciones logísticas / softmax para la clasificación binaria / multi-clase. Sin embargo, nada le impide probar diferentes combinaciones. Aunque la expresión para Cz probablemente no será tan agradable, no implica que su función de activación se desempeñe peor.

En segundo lugar, me gustaría agregar que hay muchas funciones de activación que se pueden usar para las capas ocultas. Se ha comprobado que los sigmoides (como la función logística y la tangente hiperbólica) funcionan bien, pero según lo indicado por Jatin , estos sufren gradientes que desaparecen cuando sus redes se vuelven demasiado profundas. En ese caso, las ReLU se han vuelto populares. Sin embargo, me gustaría enfatizar que hay muchas más funciones de activación disponibles y que diferentes investigadores continúan buscando nuevas (por ejemplo, Unidades Lineales Exponenciales (ELU), Unidades Lineales de Error Gaussiano (GELU), ...) con diferentes / mejores propiedades

Para concluir: cuando busque las mejores funciones de activación, sea creativo. Pruebe diferentes cosas y vea qué combinaciones conducen al mejor rendimiento.


Anexo: Para más pares de funciones de pérdida y activaciones, probablemente desee buscar funciones de enlace (canónicas)

Señor tsjolder
fuente
¿Por qué no es esta la mejor respuesta? bastante maldito intuitivo y completamente científico
Vikram Murthy
13

Sigmoid y tanh no deben usarse como función de activación para la capa oculta. Esto se debe al problema del gradiente de fuga, es decir, si su entrada está en un lado más alto (donde el sigmoide se vuelve plano), entonces el gradiente estará cerca de cero. Esto causará un aprendizaje muy lento o nulo durante la propagación hacia atrás, ya que los pesos se actualizarán con valores realmente pequeños.

Explicación detallada aquí: http://cs231n.github.io/neural-networks-1/#actfun

La mejor función para capas ocultas es, por lo tanto, ReLu.

Jatin
fuente
11
La pregunta es preguntar por la capa de salida. -1
Euler_Salter
1
Convenido. Se agregó la respuesta basada en la primera línea de pregunta. Tal vez esto debería haber sido un comentario en lugar de una respuesta.
Jatin
Bueno, pero entonces ¿no tendrías también un "problema de neuronas ReLU muertas"? Además, el problema del gradiente vanishijg se puede "resolver" mediante la normalización por lotes. Si aún desea "desactivar" algunas neuronas de la forma en que lo hacen las activaciones de ReLU, puede desactivar las neuronas de forma aleatoria mediante abandonos. Así que creo que al final, todo depende del problema y solo usa lo que funciona mejor
Kevvy Kim
5

2,3,4,5,...

2,3,4,...

p(y=1)1p(y=1)=p(y=0)

Usar la función de identidad como salida puede ser útil cuando sus salidas no tienen límites. Las ganancias o pérdidas de algunas empresas durante un trimestre podrían ser ilimitadas en ambos lados.

Las unidades ReLU o variantes similares pueden ser útiles cuando la salida está limitada por encima o por debajo. Si la salida solo está restringida a ser no negativa, tendría sentido usar una activación ReLU como la función de salida.

[1,1]

Lo bueno de las redes neuronales es que son herramientas increíblemente flexibles.

Reinstalar a Mónica
fuente