Red de conocimiento informático - Conocimiento sistemático - Selección de función de pérdida y función de activación para aprendizaje profundo

Selección de función de pérdida y función de activación para aprendizaje profundo

Selección de función de pérdida y función de activación del aprendizaje profundo

En el algoritmo de propagación hacia atrás (BP) de la red neuronal profunda (DNN), resumimos el algoritmo de propagación hacia atrás hacia adelante de DNN. La función de pérdida utilizada es el error cuadrático medio y la función de activación es Sigmoide. De hecho, DNN puede utilizar muchas funciones de pérdida y funciones de activación. ¿Cómo elegir estas funciones de pérdida y funciones de activación? El siguiente es el contenido de este artículo.

El problema de la pérdida de MSE + función de activación sigmoidea

Veamos primero los problemas con la combinación de error cuadrático medio y + sigmoide. Mirando hacia atrás, la expresión de la función de activación sigmoidea es:

La imagen funcional es la siguiente:

Como se puede ver en la figura, para Sigmoide, cuando el valor de z se convierte en Cada vez más grande, la función La curva se vuelve cada vez más plana, lo que significa que la derivada σ′(z) se vuelve cada vez más pequeña. Asimismo, este problema también existe cuando el valor de z se hace cada vez más pequeño. Sólo cuando el valor de z es alrededor de 0, el valor de la derivada σ′(z) es mayor. En el algoritmo de error cuadrático medio + retropropagación sigmoidea, cada capa de recursión directa debe multiplicarse por σ′(z) para obtener el valor de cambio de gradiente. Esta curva sigmoidea significa que la mayoría de las veces, nuestro valor de cambio de gradiente es muy pequeño, lo que hace que w y b actualicen los valores extremos muy lentamente, lo que significa que nuestro algoritmo converge muy lentamente. Entonces, ¿qué se puede hacer para mejorarlo?

Pérdida de entropía cruzada + Sigmoide para mejorar la velocidad de convergencia

Las características funcionales de Sigmoide hacen que el algoritmo de retropropagación converja lentamente. ¿Reemplazo del colon sigmoide? Esta es ciertamente una opción. Otra opción común es reemplazar la función de pérdida de error cuadrático medio con una función de pérdida de entropía cruzada. La forma de la función de pérdida de entropía cruzada para cada muestra:

¿Dónde? es el producto interno del vector. De hecho, esta forma me resulta muy familiar. En el resumen de los principios de la regresión logística, en realidad utilizamos una forma similar, pero se obtuvo mediante estimación de máxima verosimilitud. El nombre científico de esta función de pérdida es entropía cruzada.

¿Puede la función de pérdida de entropía cruzada resolver el problema del algoritmo de retropropagación lenta cuando la derivada de la función sigmoidea cambia la mayor parte del tiempo? Echemos un vistazo al gradiente de δL en la capa de salida cuando usamos entropía cruzada.

Compare la función de pérdida de error cuadrático medio en el gradiente δL

Usando entropía cruzada, la expresión del gradiente δl no tiene σ′(z), y el gradiente es la diferencia entre los El valor predicho y el valor verdadero. Los gradientes de WL y BL obtenidos de esta manera no contienen σ′(z), evitando así el problema de la velocidad de convergencia lenta de la propagación hacia atrás. Por lo general, si utiliza la función de activación sigmoidea, la función de pérdida de entropía cruzada es definitivamente mejor que la función de pérdida de error cuadrático medio.

Clasificar y generar pérdida de probabilidad de registro + softmax.

Todos asumimos anteriormente que la salida es un valor continuamente diferenciable, pero si es un problema de clasificación, entonces la salida es una categoría. Entonces, ¿cómo usar DNN para resolver este problema?

El modelo de clasificación DNN requiere que el valor de salida de la neurona de la capa de salida esté entre 0 y 1, y que la suma de todos los valores de salida sea 1. Obviamente, las DNN ordinarias existentes no pueden cumplir con este requisito. Sin embargo, solo necesitamos mejorar ligeramente el DNN totalmente conectado existente para resolver el problema de clasificación. En el modelo DNN existente, podemos definir la función de activación de la I-ésima neurona en la capa de salida de la siguiente manera:

Este método es simple y hermoso, y solo necesita cambiar la función de activación de la salida. capa de funciones como Sigmoide Simplemente cámbiela a la función de activación de la fórmula anterior. La función de activación anterior es nuestra función de activación softmax. Es ampliamente utilizado en problemas de clasificación. También es más común utilizar DNN en problemas de clasificación y la función de activación softmax en la capa de salida.

Para la función de activación softmax utilizada para la clasificación, la función de pérdida correspondiente suele ser la función de probabilidad logarítmica, es decir:

Donde, si la salida de la muestra de entrenamiento es de clase I , entonces yk El valor de es 0 o 1..Yi=1, el resto j≠i tiene yj=0. Dado que cada muestra solo pertenece a una categoría, esta función de probabilidad logarítmica se puede simplificar como:

Se puede ver que la función de pérdida solo está relacionada con la salida correspondiente a la clase real, por lo que suponiendo que la la clase real es clase I, no Las derivadas de gradiente de otras neuronas que pertenecen a la clase I son directamente 0.

Para la clase I real, el cálculo del gradiente correspondiente a su WiL es el siguiente:

Se puede ver que el cálculo del gradiente también es muy simple y no hay ningún problema de velocidad de entrenamiento lenta mencionada en el primero. sección. Cuando se completa el cálculo de retropropagación de la capa de salida softmax, el cálculo de retropropagación de la capa DNN ordinaria no es diferente del DNN ordinario mencionado anteriormente.

El gradiente explota o desaparece y reaparece

Al aprender DNN, debes haber escuchado los términos explosión de gradiente y desaparición de gradiente. En particular, la desaparición de los gradientes es un obstáculo clave que restringe las DNN y el aprendizaje profundo, que aún no se ha superado por completo.

¿Qué son la explosión y la desaparición del gradiente? Una comprensión simple es que en el proceso del algoritmo de retropropagación, debido a que usamos la regla de la cadena de derivación de matrices, hay grandes multiplicaciones de series. Si el número de multiplicaciones de series en cada capa es menor que 1, el gradiente se hará más pequeño a medida que avance, lo que hará que desaparezca. Si el número de multiplicaciones de series en cada capa es mayor que 1, el gradiente aumentará a medida que avance, provocando una explosión de gradiente.

Por ejemplo, el siguiente cálculo de gradiente:

Si el gradiente de cada capa es menor que 1 debido a nuestras muestras, a medida que avanza el algoritmo de retropropagación, nuestro δl aumentará con la capa. El número se vuelve cada vez más pequeño, incluso cerca de 0, lo que hace que el gradiente casi desaparezca, y luego los parámetros W y B de la capa oculta anterior difícilmente cambiarán con las iteraciones, y mucho menos convergerán. Actualmente no existe una solución perfecta para este problema.

Para la explosión de gradiente, generalmente se puede resolver ajustando los parámetros de inicialización en nuestro modelo DNN.

Para el problema del gradiente de fuga que no se puede resolver perfectamente, una posible solución parcial es utilizar la función de activación ReLU (unidad lineal corregida). RELU se ha utilizado ampliamente en redes neuronales convolucionales (CNN), y la desaparición del gradiente parece ya no ser un problema en CNN. Entonces, ¿cómo se ve? En realidad, es muy simple, más simple que todas las funciones de activación que mencionamos anteriormente. La expresión es:

Es decir, si es mayor o igual a 0, permanecerá sin cambios. Si es menor que 0, será 0 después de la activación.

Otras funciones de activación

Las funciones de activación comúnmente utilizadas de DNN son:

Tangente hiperbólica

Esta es una variante del colon sigmoide, expresando La fórmula es:

La relación entre la función de activación tanh y la función de activación sigmoidea es la siguiente:

La característica principal de la comparación entre tanh y sigmoidea es que su salida cae dentro de [-1, 1], de esta manera se puede normalizar la salida. Al mismo tiempo, la curva de tanh no es tan plana como la sigmoide cuando es grande, por lo que existen ciertas ventajas al encontrar el valor de cambio de gradiente. Por supuesto, no es necesario decir que el tanh es definitivamente mejor que el colon sigmoide. Aún debe analizarse caso por caso.

softplus

Esta es en realidad la función original de la función sigmoidea, y la expresión es:

Su derivada es la función sigmoidea. La imagen funcional de softplus es algo similar a ReLU. Apareció antes que ReLU y puede considerarse como el creador de ReLU.

Prelu

Como se desprende del nombre, es una variante de ReLU. Su característica es que si el valor inactivo es menor que 0, no se cambiará de forma sencilla. aproximadamente se convierte en 0, pero disminuirá hasta cierto punto. Como se muestra a continuación.

Resumen

Arriba, analizamos en detalle la función de pérdida de DNN y la función de activación. Los puntos clave son los siguientes:

1) Si se utiliza la función de activación sigmoidea, la función de pérdida de entropía cruzada es generalmente mejor que la función de pérdida de error cuadrático medio;

2) Si se usa DNN para la clasificación, la capa de salida generalmente usa la función de activación softmax y la función de pérdida de probabilidad logarítmica;

3) La función de activación ReLU puede resolver el problema de la desaparición del gradiente hasta cierto punto, especialmente en CNN modelos.