Red de conocimiento informático - Aprendizaje de programación - Recomprensión de las estructuras lstm y gru

Recomprensión de las estructuras lstm y gru

Creo que la mayoría de los artículos que presentan RNN solo dibujan imágenes de celdas, pero esto causará muchos malentendidos para los principiantes. El método de introducción correcto debería ser presentar primero la estructura general de RNN y luego presentar la estructura de la celda. Sólo así podremos tener una comprensión más clara de rnn.

A menudo vemos imágenes como ésta en Internet.

¿Qué es una célula? Volvamos primero a la estructura de MLP.

Las células de RNN son en realidad neuronas en la capa oculta de la estructura MLP. Sin embargo, esta neurona es un poco especial. Agrega las características de las series de tiempo, por lo que la expresión es diferente en diferentes períodos de tiempo.

Por lo tanto, el diagrama de estructura del modelo correcto de RNN debería ser así:

La dirección horizontal son tiempos diferentes y la dirección vertical son capas diferentes. ¿Esto haría que fuera más fácil de entender?

Sin embargo, LSTM y GRU son solo formas variantes de células, mientras que la estructura de RNN en su conjunto no cambia. La estructura general del RNN bidireccional no ha cambiado, pero la forma de las celdas sí ha cambiado.

Bien, volvamos a las escenas que vemos a menudo.

Esta imagen es la estructura general de lstm. Sabemos que el concepto más importante en lstm es la "estructura de puerta", que se divide en puerta de olvido, puerta de entrada y puerta de salida. Hay cuatro pasos para comprender la estructura de esta célula.

Puedes ver [h, x] en la fórmula, lo que significa concatenar la entrada x[t] en este momento y la salida h[t-1] en el momento anterior, y luego usar el sigmoide función .

Debido a que la salida de sigmoide es 0 y 1 (en la mayoría de los casos), cuando 0 y 1 se multiplican por lo siguiente, equivale a convertir cierta información en 0, lo que equivale a olvidar cierta información. En realidad, se trata de un interruptor que controla la transmisión de información.

Por ejemplo, si hace una pregunta cerrada para completar los espacios en blanco con "él" o "ella", el estado de la celda puede contener la categoría del tema actual. Cuando vemos pronombres nuevos, queremos olvidar los antiguos.

[h, x] en la fórmula sigue siendo una operación concat.

El significado aquí puede verse como qué nueva información se coloca en el estado de la celda (C[t]).

I[t] tiene un sigmoide, que es similar a la operación de olvidar. Aquí está la selección de nuevos conocimientos, C`[t] puede tratarlos como todo conocimiento nuevo.

Las dos primeras operaciones complementarias son actualizar el estado de las células y actualizar el sistema de conocimiento. Incluyendo hacer que las células olviden algo y luego agregarles nuevos conocimientos.

Aquí hay otro punto, por qué lstm puede resolver el problema de dispersión/desaparición de gradiente de RNN.

Debido a que C[t] se obtiene agregando dos resultados más, el gradiente de actualización se conservará durante la derivación.

Se entiende la estructura lstm, pero la estructura gru se entiende básicamente de esta manera. Sigue siendo la misma imagen

La diferencia con lstm aquí es:

Si r[t] = 1, z[t] = 1, entonces las celdas de gru y rnn ordinario son las mismo .

Debido a que gru tiene menos parámetros, gru es más fácil de entrenar que lstm.

¡Sin embargo, los resultados finales de estas dos células no son muy diferentes! No te preocupes por qué estructura elegir al usarlo.

Bien, lstm y gru están completos. Hagamos algo nuevo la próxima vez, seq2seq y prestemos atención.