[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

吴恩达老师DeepLearning.ai课程笔记
【吴恩达Deeplearning.ai笔记一】直观解释逻辑回归
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络上
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络下
深度网络不好使?吴恩达老师带你优化神经网络(1)

Si desea mejorar la eficiencia del entrenamiento de una red neuronal profunda, debe comenzar desde todos los aspectos, optimizar todo el proceso de cálculo y prevenir diversos problemas que puedan ocurrir.

Este artículo implica la optimización de varios métodos de descenso de gradiente en redes neuronales profundas, Momentum, RMSProp, algoritmos de optimización de Adam en descenso de gradiente, atenuación de la tasa de aprendizaje, estandarización de lotes, etc.

1 Descenso de gradiente por lotes (BGD) del método de descenso de gradiente


El descenso de gradiente por lotes (BGD) es la forma más comúnmente utilizada de descenso de gradiente, y el descenso de gradiente utilizado en la regresión logística anterior y la construcción de redes neuronales profundas es esta forma. Utiliza todas las muestras para actualizar al actualizar los parámetros. El proceso específico es:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

gráfico de muestra:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

  • Ventajas: Minimice la función de pérdida de todas las muestras de entrenamiento para obtener la solución óptima global; fácil de implementar en paralelo.
  • Desventaja: cuando el número de muestras es grande, el proceso de formación será muy lento.

2 Método de descenso de gradiente estocástico (SGD) del método de descenso de gradiente


El descenso de gradiente estocástico (SGD) es similar al principio del descenso de gradiente por lotes, excepto que se actualiza iterativamente a través de una muestra cada vez. El proceso específico es:

[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
gráfico de muestra:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

  • Ventajas: velocidad de entrenamiento rápida.
  • Desventajas: minimiza la función de pérdida de cada muestra, el resultado final suele estar cerca de la solución óptima global, no del óptimo global; no es fácil de implementar en paralelo.

3 Método de descenso de gradiente del método de descenso de gradiente de lotes pequeños (MBGD)


Mini-Batch Gradient Descent (MBGD) es un compromiso entre el método de descenso de gradiente por lotes y el método de descenso de gradiente estocástico. Utiliza m muestras de entrenamiento y cada vez que se utilizan t (1 <t <m) muestras para la actualización iterativa . El proceso específico es:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
Entre ellos,
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
entonces, el
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
diagrama de ejemplo:

[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

El valor del número de muestras t se ajusta de acuerdo con el número real de muestras. Para ser compatible con el método de almacenamiento de información de la computadora, el valor de t se puede establecer en una potencia de 2. Pasar todas las muestras de entrenamiento por completo se denomina época.

4 Promedio ponderado exponencial del método de optimización del descenso de gradiente


El promedio de peso exponencial es un método comúnmente utilizado para procesar datos de secuencia, y su fórmula de cálculo es:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

Dada una serie de tiempo, como los valores diarios de temperatura en Londres durante un año: los
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
puntos azules representan los valores reales de los datos.

Para un valor de temperatura instantáneo, tomando el valor de peso β como 0,9, entonces:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

de acuerdo a:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

El valor así obtenido es la curva roja de la figura, que refleja la tendencia general de los cambios de temperatura.
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

Cuando el valor de peso β = 0,98, se puede obtener una curva verde más suave en la figura. Cuando el valor de peso β = 0,5, se obtiene una curva amarilla con más ruido en la figura. Cuanto mayor sea el valor de β equivale a más días de utilización promedio, la curva naturalmente será más suave y más retrasada.

Al calcular el promedio ponderado exponencialmente, el primer valor ν0 se inicializa a 0, lo que provocará una cierta desviación en el cálculo anterior. Para corregir la desviación, es necesario utilizar la siguiente fórmula para corregir la desviación después de cada iteración:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

5 Descenso de gradiente de impulso del método de optimización del descenso de gradiente


Gradient Descent with Momentum (Gradient Descent with Momentum) es calcular el promedio ponderado exponencialmente del gradiente y usar este valor para actualizar el valor del parámetro. El proceso específico es:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
el parámetro β de disminución del momento es generalmente 0,9.
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
Al realizar un descenso de gradiente general se obtendrá la curva azul en la figura, y cuando se usa el descenso de gradiente Momentum, la oscilación en la trayectoria al mínimo se reduce por acumulación, y se acelera la convergencia y se obtiene la curva roja en la figura.

Cuando las direcciones del gradiente frontal y posterior son las mismas, el descenso del gradiente Momentum puede acelerar el aprendizaje; cuando las direcciones del gradiente frontal y posterior son inconsistentes, el descenso del gradiente Momentum puede suprimir el impacto.

6 algoritmo RMSProp del método de optimización del descenso de gradiente


El algoritmo RMSProp (Root Mean Square Prop) introduce la raíz cuadrada y la raíz cuadrada sobre la base del promedio ponderado exponencialmente del gradiente. El proceso específico es:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
donde ε = 10-8, que se utiliza para mejorar la estabilidad numérica y evitar que el denominador sea demasiado pequeño.

[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

7 algoritmo de optimización de Adam del método de optimización del descenso de gradientes


El algoritmo de optimización Adam (Adaptive Moment Estimation, Adaptive Moment Estimation) es adecuado para muchas estructuras de red de aprendizaje profundo diferentes. Básicamente, combina el descenso de gradiente Momentum y el algoritmo RMSProp. El proceso específico es:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
la tasa de aprendizaje α debe ajustarse, el hiperparámetro β1 se denomina primer momento, generalmente 0,9, β2 es el segundo momento, generalmente 0,999 y ε generalmente 10-8.

8 decadencia de la tasa de aprendizaje


A medida que pasa el tiempo, reduzca lentamente el tamaño de la tasa de aprendizaje α. Cuando α es grande en la etapa inicial, el tamaño del paso es mayor y el gradiente se puede reducir a una velocidad más rápida, mientras que el valor de α se reduce gradualmente en la etapa posterior. El tamaño del paso ayuda al algoritmo a converger y es más fácil acercarse a la solución óptima.

Varios métodos de caída de la tasa de aprendizaje que se utilizan comúnmente son:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
decay_rate es la tasa de caída y epoch_num es el número de épocas para todo el entrenamiento.

9 lotes de estandarización


La normalización de lotes (BN) es similar a la normalización de conjuntos de datos anterior y es una forma de unificar datos dispersos. Los datos con especificaciones uniformes pueden facilitar que las máquinas aprendan las leyes de los datos.

Para una determinada capa de red neuronal con m nodos, los pasos para realizar operaciones de estandarización por lotes en z son:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
γ y β no son hiperparámetros, sino dos parámetros que deben aprenderse. La red neuronal aprende a usar y modificar Estos dos parámetros extendidos. De esta manera, la red neuronal puede averiguar lentamente si las operaciones de estandarización anteriores están optimizadas. Si no funcionan, use γ y β para compensar algunas de las operaciones estandarizadas anteriores. Por ejemplo, cuando
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
se canceló antes de la operación de regularización.
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

El fenómeno del "Cambio Covariable" ocurre cuando la experiencia actual no puede adaptarse a la nueva muestra y al nuevo entorno. Para una red neuronal, el cambio constante del valor de peso anterior provocará el cambio constante del siguiente valor de peso, y la estandarización por lotes ralentiza el grado de cambio de distribución de peso de la capa oculta. Una vez adoptada la estandarización por lotes, aunque la z de cada capa todavía está cambiando, su media y varianza permanecerán básicamente sin cambios, lo que hace que los datos posteriores y la distribución de datos sean más estables, reduciendo el acoplamiento entre la capa frontal y la capa posterior. Haga que cada capa no dependa demasiado de la capa de red anterior y, en última instancia, acelere el entrenamiento de toda la red neuronal.

La estandarización de lotes también tiene un efecto de regularización acompañante: cuando se usa el descenso de gradiente de mini lotes, cuando se realiza la estandarización de lotes en cada mini lote, traerá alguna interferencia al último z obtenido en este mini lote, que es similar a DropOut El efecto de regularización, pero el efecto no es muy significativo. Cuando el número de este pequeño lote es mayor, el efecto de la regularización es más débil.

Cabe señalar que la estandarización por lotes no es un método de regularización, y el efecto de regularización es solo un efecto secundario menor. Además, si se usa la estandarización de lotes durante la capacitación, también se debe usar la estandarización de lotes durante las pruebas.

Al entrenar, la entrada es un pequeño lote de muestras de entrenamiento, y al realizar pruebas, las muestras de prueba se ingresan una por una. Aquí nuevamente, se usa el promedio ponderado exponencial En el proceso de entrenamiento, se obtiene la media y el promedio ponderado de la varianza de cada mini-lote, y luego se guarda el resultado final y se aplica al proceso de prueba.

10Softmax vuelve


El modelo de regresión Softmax es la promoción del modelo de regresión logística en problemas de clasificación múltiple. En problemas de clasificación múltiple, el valor de la salida y ya no es un número, sino un vector de columna multidimensional. Hay tantas dimensiones como clasificaciones. La función de activación utiliza la función softmax: la
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)
función de pérdida es:
[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

Nota: Las imágenes y los materiales incluidos en este artículo se compilaron y tradujeron de la serie Deep Learning de Andrew Ng, y los derechos de autor le pertenecen. El nivel de traducción y cotejo es limitado, y le invitamos a señalar cualquier punto inadecuado.

[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

Lectura recomendada:

Video | ¿Qué debo hacer si no puedo producir un artículo?
¿Por qué no probar estos métodos? [Combate de aprendizaje profundo] Cómo lidiar con el relleno de secuencia de longitud variable de entrada RNN en pytorch
[Teoría básica del aprendizaje automático] Comprensión detallada de la estimación de probabilidad posterior máxima (MAP)

      欢迎关注公众号学习交流~         

[Deeplearning.ai] Aprendizaje profundo (4): Optimización de redes neuronales (2)

Supongo que te gusta

Origin blog.51cto.com/15009309/2554218
Recomendado
Clasificación