Red neuronal recurrente (RNN&LSTM)

1. Redes neuronales recurrentes

1.1 ¿Qué es una Red Neuronal Recurrente?

La Red Neural Recurrente (RNN) es una red neuronal especialmente utilizada para procesar datos de secuencia , que pueden extraer información de tiempo e información semántica en los datos. Utilizando esta capacidad de RNN, el modelo de aprendizaje profundo ha logrado avances en la resolución de problemas en el campo de la PNL, como el reconocimiento de voz, el modelo de lenguaje, la traducción automática y el análisis de series temporales.

Las fallas de la red neuronal completamente conectada en el procesamiento de datos de secuencia: por ejemplo, en el problema de pronóstico de acciones, el precio de las acciones no solo depende del estado actual de los datos de entrada, sino que también depende de la información histórica, lo cual es imposible para la red neuronal completamente conectada.
inserte la descripción de la imagen aquí

1.2 Estructura de red de la red neuronal recurrente

La siguiente figura muestra una estructura de red RNN típica.
inserte la descripción de la imagen aquí
En la figura, UUU es la matriz de pesos desde la capa de entrada hasta la capa oculta,WWW es la matriz de peso de las conexiones recurrentes de capa oculta a capa oculta,VVV es la matriz de pesos desde la capa oculta hasta la capa de salida. xt x_tXtsignifica ttEntrada en el tiempo t , ht h_thtsignifica ttVector de capa oculta en el tiempo t , ot o_totsignifica ttsalida en el tiempo t .

ht = f ( U ⋅ xt + W ⋅ ht − 1 + bh ) h_t = f(U \cdot x_t + W \cdot h_{t-1} + b_h)ht=f ( tuXt+Wht 1+bh)
ot = gramo ( V ⋅ ht + bo ) o_t = g(V \cdot h_t + b_o)ot=gramo ( Vht+bo)

donde f ( ⋅ ) f(\cdot)f ( ) yg ( ⋅ ) g(\cdot)g ( ) es la función de activación.

  • Se utiliza para calcular el vector de capa oculta ht h_thtLa función de activación de se elige generalmente en RNN tanhy, a veces, ReLUse usa con frecuencia;
  • Se utiliza para calcular la salida ot o_totLa función de activación:
    • Si es un problema de clasificación binaria, podemos usar sigmoidla función;
    • Si es un problema de clasificación k, podríamos usar softmaxla función.

Se puede observar que el vector de capa oculta de RNN en cada momento no solo está determinado por la entrada en el momento actual, sino que también depende del vector de capa oculta en el momento anterior, lo que hace que RNN tenga la función de recordar la información de series temporales pasadas.

Una cosa que vale la pena señalar es que los RNN comparten los mismos pesos en diferentes pasos de tiempo .

1.3 Función de pérdida

En RNN, definimos la función de pérdida como la pérdida de regresión logística estándar (es decir, pérdida de entropía cruzada) .

Puede consultar la introducción a la entropía cruzada en este artículo .

La salida de nuestra red neuronal y ^ ( t ) \widehat{y}^{(t)}y ( t ) suele ser algún valor de probabilidad, yy ( t ) y^{(t)}y( t ) es una serie de valores determinados (etiquetas), por lo quey ( t ) = 1 y^{(t)} = 1y( t )=1 _

Función de pérdida para una sola palabra o un solo segmento en datos de series temporales:
L ( t ) ( y ^ ( t ) , y ( t ) ) = − y ( t ) logy ^ ( t ) = − logy ^ ( t ) L^{(t)} (\widehat{y}^{(t)} , y^{(t)}) = -y^{(t)} log \widehat{y}^{( t)} = -log \widehat{y}^{(t)}L( t ) (y ( t ) ,y( t ) )=y( t ) registro__y ( t )=- l o gy
Pérdida total para ( t )
secuencia: (promedio de pérdida de entropía cruzada) L ( y ^ , y ) = 1 T ∑ t = 1 TL ( t ) ( y ^ ( t ) , y ( t ) ) L(\widehat{y} , y) = \frac{1}{T}\sum\limits^T_{t=1} L^{(t)} (\widehat{y}^{( t)} , y^{(t)})L (y ,y )=T1t = 1TL( t ) (y ( t ) ,y( t ) )
y luego calcule los parámetros en el modelo por medio de propagación hacia atrás, y use el método de descenso de gradiente para actualizar los parámetros.

Para los modelos de lenguaje, un buen modelo de lenguaje puede usar unidades léxicas de alta precisión para predecir lo que veremos a continuación, como la información rápida del método de entrada cuando escribimos.
En el mejor de los casos, el modelo puede estimar perfectamente el token de etiqueta con probabilidad 1;
en el peor de los casos, el modelo predice el token de etiqueta con probabilidad 0;
al inicio, la predicción del modelo es una distribución uniforme entre todos los tokens disponibles en el vocabulario.


1.4 Problemas con las Redes Neuronales Recurrentes

Para longitud TTsecuencia de T , calculamos este TTdurante la iteraciónGradientes sobre T pasos de tiempo, que producirán una longitud O ( T ) O(T)durante la retropropagaciónO ( T ) cadena de multiplicación de matrices. cuandottPara grandes T , esto puede conducir a una inestabilidad numérica, por ejemplo, gradientes que posiblemente exploten o desaparezcan. De esta forma podemos encontrar que la RNNTiene un efecto de proximidad y no es bueno para capturar dependencias a largo plazo.


2. LSTM

El siguiente contenido se refiere a la explicación detallada de LSTM .

2.1 Estructura de red de LSTM

El nombre completo de LSTM es Long Short Term Memory.La motivación de este algoritmo es resolver el problema de dependencia a largo plazo de RNN mencionado anteriormente. La razón por la que LSTM puede resolver el problema de dependencia a largo plazo de RNN es porque LSTM introducemecanismo de puertaSe utiliza para controlar el flujo y la pérdida de características. LSTM está compuesto por una serie de unidades LSTM (Unidad LSTM), y su estructura en cadena es como se muestra en la siguiente figura.
inserte la descripción de la imagen aquí
En la unidad LSTM, cada cuadro amarillo en la figura representa una capa de red neuronal, que consta de pesos, sesgos y funciones de activación; cada círculo rosa representa operaciones a nivel de elemento; las flechas representan flujo vectorial; las flechas que se cruzan representan empalmes de vectores; las flechas bifurcadas representan replicación de vectores.
inserte la descripción de la imagen aquí

2.2 Interpretación de la unidad LSTM

La parte central de LSTM es la parte similar a la cinta transportadora en la unidad LSTM (como se muestra en la figura a continuación).Esta parte generalmente se denomina estado de celda (cell state), que existe en todo el sistema de cadena de LSTM de principio a fin.

estado celular oficial
inserte la descripción de la imagen aquí C t = pies ⋅ C t − 1 + eso ⋅ C ~ t C_t = f_t \cdot C_{t-1} + i_t \cdot \widetilde{C}_tCt=FtCt 1+itC t

en,

  • pies piesFtse llama puerta de olvido, lo que significa C t − 1 C_{t-1}Ct 1¿Qué características de C t se utilizan para calcular C t C_tCtpies piesFtes un vector, y cada elemento del vector está en el rango [0,1]. Usualmente usamos sigmoide sigmoidefunción s i g m o i d como función de activación,sigmoide sigmoideLa salida de la función s i g m o i d es un valor entre [0,1].
  • eso esoitse llama la puerta de entrada y se usa para controlar C ~ t \widetilde{C}_tC tQué características de C t se utilizan para actualizar C_tCt. Igual que ft f_tFtTambién es un vector con elementos entre [0,1], generalmente usamos sigmoid sigmoidLa función s i g m o i d se utiliza como función de activación.

olvida la puerta ft f_tFt oficial
inserte la descripción de la imagen aquí pie = σ ( W F ⋅ [ ht − 1 , xt ] + bf ) f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)Ft=s ( Wf[ ht 1,Xt]+bf)

puerta de entrada it i_titcon valor de actualización de estado de celda C ~ t \widetilde{C}_tC t oficial
inserte la descripción de la imagen aquí it = σ ( W yo ⋅ [ ht − 1 , xt ] + bi ) i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)it=s ( Wyo[ ht 1,Xt]+byo)

C ~ t = tanh ( WC ⋅ [ ht − 1 , xt ] + segundo C ) \widetilde{C}_t = tanh(W_C \cdot [h_{t-1}, x_t] + b_C)C t=Inglés ( W _c[ ht 1,Xt]+bc)

en,

  • eso esoitse llama la puerta de entrada y se usa para controlar C ~ t \widetilde{C}_tC tQué características de C t se utilizan para actualizar C_tCt. Igual que ft f_tFtTambién es un vector con elementos entre [0,1], generalmente usamos sigmoid sigmoidLa función s i g m o i d se utiliza como función de activación.
  • C ~ t \widetilde{C}_tC tRepresenta el valor de actualización del estado de la unidad, la función de activación generalmente usa tanh tanhtu _ _

Salida de capa oculta ht h_tht oficial
inserte la descripción de la imagen aquí ot = σ ( W o ⋅ [ ht − 1 , xt ] + bo ) o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)ot=s ( Wo[ ht 1,Xt]+bo)

ht = ot ⋅ tanh ( C t ) h_t = o_t \cdot tanh(C_t)ht=otyo ( mayor )t)

Entre ellos, ot o_totexpresarpuerta de salida(Tenga cuidado de no confundir con la salida en RNN aquí), el método de cálculo es el mismo que ft f_tFtresúmalo _itmismo.





Referencia :
[1] "Aprendizaje profundo"
[2] Wu Enda - Curso de aprendizaje profundo
[3] "Aprendizaje profundo práctico"
[4] La explicación más detallada de la historia de la red neuronal cíclica (RNN/LSTM/GRU)
[5] Explicación detallada de LSTM

Supongo que te gusta

Origin blog.csdn.net/qq_42757191/article/details/126400525
Recomendado
Clasificación