RNN - gradiente desaparece y explosión

Pasada aprendimos recurrente Neural Netwoks (RNN) y por qué they'er grande para Modeling Language (LM) antes de terminar en la red neuronal RNN como un modelo de lenguaje, o puede ser, el punto clave es la multiplexación W comprensión, y en un estado dar salida, ya que la entrada del siguiente estado. Si es demasiado poco entendimiento del modelo de lenguaje, entonces, hay una transición natural para RNN, la red lógica, no es complicado.

Bajo aquí que quería discutir, la cuestión más básica se RNN que hay que resolver, como el título de la charla gradientes desaparecen, o explosión gradiente. Entonces cómo solucionarlos. A continuación, introducir más compleja variantes RNN (RNN otras variantes como LSTM, GRU), etc., RNN me siento en la aplicación, sigue siendo bastante bueno.

Entonces se trata de de fuga Gradiente Problema (desaparece gradiente) que conduce LSTM GRU ... y también variaciones de los mismos, tales como bidireccional -RNN; Multi - capa - RNN ...

desaparece el gradiente y explosión

Se trata de una red neuronal puede ser problemático, porque el entrenamiento se basa principalmente en BP algoritmo es derivadas parciales de la función matemática variable y aplicación de regla de la cadena proceso de derivación. Muchos término medio se multiplica Bueno, si todos somos números muy pequeños se multiplicaron, y que el resultado global estarán cerca de 0 ah, no un gradiente.

rnn4

Como esta cifra representa como si en medio de un pequeño artículo ... que los resultados generales, causando un (gradiente de fuga) problema desaparece gradiente.

Esbozo de prueba de fuga gradiente

A Hidden pistas de capa de la vista.

\ (H ^ {(t)} = \ sigma (W_hh ^ {(t-1)} + W_xx ^ {(t)} + B_T) \)

Dependiendo capa oculta, dada la entrada x en la incrustación que onehot primero, y luego la matriz de multiplexación derecha W se multiplica por el valor de h y el producto W_h en un punto en el tiempo y de nuevo para introducir la activación como una función del último valor a una son vectores entre [0, 1].

Luego \ (h ^ {(t- 1)} \) en el derivado (regla de la cadena Oh)

$ \ frac {\ partial h ^ {(t)} {1}} {\ partial h ^ {(t-1)}} = $ \ (diag \ (\ sigma '(W_hh ^ {(t-1)} + W_xx ^ {(t)} + B_T)) W_h \)

  • La regla de la cadena es equivalente a Y = H (z), z = ax; derivadas parciales y de reclamación de x, a saber: h (z) '* parciales valores z parciales de x ....
  • Para una función sigmoide (abreviado \ (\ sigma (x) \ ) resultado derivación es, \ (\ Sigma (X) [l- \ Sigma (X)] \)

rnn5

El látex escrito un dolor de cabeza ... publicó un mapa olvidar, sobre todo arriba y abajo de este complejo la marcó.

Cuando \ (W_h \) es muy pequeño, es (ij) ésima potencia, este valor se vuelve muy pequeña Sí. Nota W_h matriz es lo que decimos por la pequeña matriz se refiere a la matriz es muy pequeño \ (| W_h | \) o la de la descomposición de la matriz característica (valor propio, vector propio), el valor absoluto de su mayor valor característico si el valor máximo típico, menos de 1 Ze \ (|| W_h || \) filas tipo de valor se vuelve pequeño. (predecesores han demostrado, que no sabía, en el primer registro a una conclusión con a) Si los valores propios máximo superior a 1 , que pueden causar problemas (gradientes) en explosión explosión gradiente .

¿Por qué es un problema de fuga de gradiente

Una explicación: el significado de derivada de.

Gradiente desaparece el rendimiento, como se indica a continuación, para volver a la significado de derivado, que se utiliza para medir la "velocidad de cambio" \ (\ frac Dy} {} {dt \)

Rnn6

gradiente cero se produce, entonces, para un pequeño incrementos h, y j no ha sido lo que la influencia de la vista del mapa se separa demasiado lejos, tal como j (. 4) no se ve afectado sustancialmente h (1) es . canto o detalle que puede decir lo siguiente:

Señal de gradiente desde la lejana se pierde porque es mucho más pequeña que la señal gradiente de cerca por

Así pesos modelo sólo se actualizan sólo con respecto a cerca de los efectos, los efectos a largo plazo no .

Explicar dos:

Gradiente puede ser vista ans medida (medida) del efecto del pasado en el ON en el futuro . Literalmente significa, gradiente, puede ser visto como el futuro de la medida actual. Gradiente es pequeño, significa un menor impacto en el futuro ahora.

impacto futuro ahora ?? me siento esta línea de tiempo, no parece entender Oh

En resumen Ha, el hecho básico se refleja en un pequeño gradiente:

  • En t pasos y t + n paso, "relevancia" si n es grande, entonces la palabra estos dos estados es relativamente pequeña
  • De este modo se calcularon los parámetros no son correctos, oh.

¿Por qué está explotando un problema gradiente

Del mismo modo, un gradiente de la explosión, es un gran problema. (Método de descenso de gradiente para actualizar los parámetros se puede ver intuitivamente)

Si el gradiente se vuelve demasiado grande, entonces el SGD (随机 梯度 下降 法) actualización de paso llegar a ser demasiado grande.

\ (\ Theta ^ {nuevo} = \ theta ^ {old} - \ alpha \ nabla _ \ theta J (\ theta) \)

Esta es una comprensión básica de ML son ladrón ha familiar. Esencialmente un ajuste de parámetros vector Bueno, cuando el gradiente de \ (\ nabla _ \ theta J (\ theta) \) particularmente grande, entonces todo el parámetro es todo lo que onda banda para romper el ritmo.

Esto puede causar malos actualizaciones : damos un paso demasiado grande y alcanzar una configuración paramenter mal (con gran pérdida)

Desde la perspectiva de carreras de código,

En el peor de los casos (peor), el resultado en la presente por Will INF o NaN en su red. Formación del Luego tienes que tenga que reiniciar desde un puesto de control anticipada. Código se le está dando a reescribir, reescribir ejecutar unas pocas horas se ha pasado ... y esta es una de las razones por las que no quiero aprender la profundidad del aprendizaje.

Resolver - desaparece el gradiente y explosión

resolver fuga

pasar

resolver la explosión

Tipo de método se llama, Gradiente de recorte: Si la norma del gradiente es mayor que algún umbral (umbral) y reduce su escala antes de aplicar la actualización SGD.

Como se muestra a continuación, el vector de parámetro de módulo g, si es superior a un cierto umbral, se actualiza (abajo) fue equivalente a un g mejorados (más pequeño)

rnn7

Se caracteriza por la ampliación del vector, no ha cambiado su dirección original, en el SGD, o para ajustar los parámetros oh lo largo de la dirección del gradiente .

Es decir, dar un paso en la misma dirección, pero un pequeño paso. Oh, pequeñas cosas.

resumen

  • estructura y propiedades, tales como W salida multiplexación red especializada RNN -> entrada
  • desaparece gradiente, los parámetros de entrenamiento de BP, derivación de la regla de la cadena, puede haber un producto directo de lo muy pequeño artículo, no todo el gradiente de la ecuación, la asociación entre las tablas de palabras débil
  • Gradiente de explosión, es esto, el ritmo de actualización de parámetros de ajuste demasiado grande, lo que resulta en NaN o Inf, contracción de código para participar en directo
  • Resolver desaparece gradiente ...
  • Resolver gradiente de explosión, se puede utilizar una forma de recorte de escalar el vector sin cambiar su dirección.

Supongo que te gusta

Origin www.cnblogs.com/chenjieyouge/p/12508078.html
Recomendado
Clasificación