Gradiente Decente y Estocástico Decente Decente

Gradiente Decente

Material de referencia principal: video de la estación B del curso de aprendizaje automático por el profesor Li Hongyi de la Universidad Nacional de Taiwán.
Similar al algoritmo EM del que he hablado antes, el algoritmo de descenso de gradiente también es un algoritmo de optimización. El problema que quiere resolver es:
encuentra
θ ⋆ = arg min ⁡ L (θ) \ theta ^ {\ star} = \ argmin L (\ theta)θ=a r gm i nL ( θ )

Donde θ \ thetaθ es el parámetro a actualizar. Tenga en cuenta que esto puede incluir varios parámetros, lo que significaθ \ thetaθ es un vector,L (θ) L (\ theta)L ( θ ) es la función de pérdida, que es la función que debemos seguir reduciendo durante el proceso de optimización.

En realidad, todo el proceso es muy sencillo de describir en matemáticas, y lo que se utiliza es el concepto de gradiente en números altos. Supongamos que θ = [θ 1, θ 2] T \ theta = [\ theta_1, \ theta_2] ^ Tθ=[ θ1,θ2]T , lo que significa que hay dos parámetros. Entonces todo el proceso de iteración de parámetros es el siguiente:

dondeθ ij \ theta_i ^ jθyojRepresenta el iii variable está enjjEl valor después de j iteraciones,η \ etaη es uno de los hiperparámetros más comunes en el aprendizaje profundo: tasa de aprendizaje tasa de aprendizaje.

Una cosa a tener en cuenta es obtener θ t + 1 \ theta ^ {t + 1}θt + 1 , entonces debes necesitar∇ L (θ) \ nabla L (\ theta)L ( θ ) , en otras palabras, es necesario calcular el gradiente de toda la función de pérdida, por lo que

Tasa de aprendizaje

La tasa de aprendizaje es el valor del paso del descenso del gradiente. Hay una imagen que creo que es muy clásica.
Inserte la descripción de la imagen aquí
Como se muestra en la figura anterior, cuando la tasa de aprendizaje es relativamente pequeña, los parámetros se actualizarán muy lentamente, lo que no es propicio para el entrenamiento de la red. Cuando la tasa de aprendizaje es muy grande, la pérdida aumentará en lugar de disminuir. Solo una tasa de aprendizaje adecuada puede lograr los mejores resultados.

Tasa de aprendizaje adaptativo

Mucha gente, incluyéndome a mí, tenía la idea natural cuando aprendieron por primera vez la tasa de aprendizaje, que la tasa de aprendizaje se puede reducir a medida que se acerca al valor extremo. ¿No sería suficiente para cumplir los requisitos de alta velocidad y alta precisión final?

He visto el video de Andrew Ng antes y él tiene una explicación para esto: de hecho, este tipo de operación no es necesaria. Tome la función cuadrática más común como ejemplo. En el proceso de disminuir el gradiente, incluso Mantenga constante la tasa de aprendizaje, porque cuanto más cerca del punto extremo, menor será el gradiente, por lo que tendrá un efecto gradualmente más y más preciso.

Pero a veces aún necesitamos diseñar un algoritmo de ajuste de la tasa de aprendizaje más adaptativo. Así nació Adaptive Learning Rate.

Adagrad

El flujo del algoritmo de Adagrad es el siguiente:
Inserte la descripción de la imagen aquí
aquí, el profesor Li Hongyi planteó una pregunta de la siguiente manera:
Inserte la descripción de la imagen aquí

La explicación del profesor Li Hongyi es muy clara:Inserte la descripción de la imagen aquí

En todo el proceso, el cuadrado medio del denominador en realidad asume un proceso de muestreo para aproximar la segunda derivada. Por supuesto, realmente puede encontrar una segunda derivada, pero en la operación real, el método de la figura anterior es mucho más rápido.

Gradiente estocástico Decente

En el algoritmo de descenso de gradiente, cuando calculamos el gradiente, usamos todas las muestras para calcular la función de pérdida para calcular el gradiente. Aunque la dirección del gradiente calculada cada vez es muy correcta, la velocidad es muy lenta. Es completamente innecesario al entrenar la red.
La principal diferencia entre los dos algoritmos es la siguiente:
Inserte la descripción de la imagen aquí
la pérdida en este momento ya no es la pérdida global, sino solo la pérdida de esta muestra tomada al azar. Por lo tanto, la velocidad es mucho más rápida que el descenso de gradiente ordinario.

Supongo que te gusta

Origin blog.csdn.net/Code_Tookie/article/details/104336536
Recomendado
Clasificación