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?
neural-networks
Julian
fuente
fuente
Respuestas:
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).
fuente
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óng(x) en la capa de salida a menudo depende de su función de costo . Esto se hace para hacer la derivada ∂C∂z de la función de costoC con respecto a las entradasz en la última capa fácil de calcular.
Como ejemplo , podríamos usar la pérdida de error cuadrática mediaC(y,g(z))=12(y−g(z))2 en 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(y−g(z))2)⋅∂∂z(z)=−(y−g(z))⋅1=g(z)−y
Obtiene la misma expresión fácil para∂C∂z 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∂C∂z 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)
fuente
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.
fuente
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.
Lo bueno de las redes neuronales es que son herramientas increíblemente flexibles.
fuente