1. Red neuronal recurrente RNN (red neuronal recurrente)
Un núcleo de la red neuronal recurrente es que puede utilizar los datos de la secuencia anterior para predecir los resultados posteriores. Cómo lograr esto. La estructura RNN se muestra en la siguiente figura.
Una vez procesada la información de la secuencia anterior, se pasa a la secuencia posterior como información de entrada.
modelo matemático:
a 1 = ga ( W ha 0 + W ix 1 + ba ) a^1=g_a(W_{h}a^0+W_{i}x^1+b_a)a1=gramoun( Wha0+W.yoX1+bun),y 1 = gy ( W ya 0 + W ox 1 + bi ) y^1=g_y(W_{y}a^0+W_{o}x^1+b_i)y1=gramoy( Wya0+W.oX1+byo)
a 2 = ga ( W ha 1 + W ix 2 + ba ) a^2=g_a(W_{h}a^1+W_{i}x^2+b_a)a2=gramoun( Wha1+W.yoX2+bun),y 2 = gy ( W ya 1 + W ox 2 + bi ) y^2=g_y(W_{y}a^1+W_{o}x^2+b_i)y2=gramoy( Wya1+W.oX2+byo)
……
en = ga ( Qué − 1 + W ixt + ba ) a^t=g_a(W_{h}a^{t-1}+W_{i}x^t+b_a)at=gramoun( What - 1+W.yoXt+bun),yt = gy ( W yat − 1 + W oxt + bi ) y^t=g_y(W_{y}a^{t-1}+W_{o}x^t+b_i)yt=gramoy( Wyat - 1+W.oXt+byo)
gggg es la función de activación,W, b W,bW ,b es el parámetro de entrenamiento.
2. Diferentes tipos de modelos RNN
Entrada de estructura básica del modelo RNN
: x 1, x 2, x 2,..., xix^1,x^2,x^2,...,x^iX1 ,X2 ,X2 ,... ,Xi,输出: y 1 , y 2 , y 2 , . . . , y i y^1,y^2,y^2,... ,y^i y1 ,y2 ,y2 ,... ,yi
Estructura RNN de múltiples entradas a múltiples salidas con las mismas dimensiones.
Aplicación: Identificación de información específica.
Estructura RNN de entrada múltiple y salida única
Importar: x 1 , x 2 , x 2 , . . . , xix^1,x^2,x^2,... ,x^iX1 ,X2 ,X2 ,... ,Xyo , Salida:yyy
Aplicación: Reconocimiento de emociones
Estructura RNN de entrada única y salida múltiple
Entrada: xi xix i,输出:y 1 , y 2 , y 2 , . . . , yiy^1,y^2,y^2,... ,y^iy1 ,y2 ,y2 ,... ,yi
aplicación: generador de datos de secuencia, como generación de artículos, generación de música
Entrada de estructura RNN de múltiples entradas y múltiples salidas : x 1, x 2, x 2,..., xix^1,x^2,x^2,...,x^iX1 ,X2 ,X2 ,... ,Xi,输出: y 1 , y 2 , y 2 , . . . , y j y^1,y^2,y^2,... ,y^j y1 ,y2 ,y2 ,... ,yj
Aplicación: Traducción de idiomas
Cuando la red neuronal recurrente bidireccional (BRNN)
emite un juicio, también tiene en cuenta la información de la secuencia posterior.
Las redes neuronales recurrentes profundas (DRNN)
resuelven tareas de secuencia más complejas y se pueden combinar con pilas RNN de una sola capa o conexiones completas antes de la salida.
Defectos de las estructuras RNN ordinarias.
Primero, cuando la información de la secuencia frontal se transmite hacia atrás, el peso de la información disminuye, lo que resulta en la pérdida de información importante. El gradiente desaparece durante el proceso de solución.
En segundo lugar, RNN a veces pierde parámetros durante el proceso de entrenamiento.
En el proceso de minimizar la función de pérdida, el gradiente fluctuará repentina y violentamente, lo que provocará la pérdida de parámetros.
Entonces, ¿por qué sucede esto?
Tome la estructura RNN en la figura siguiente como ejemplo, asumiendo W i , W o W^i,W^oW.yo ,W.o son todos 1 y la longitud de entrada es 1000, entoncesy 1000 = w 999 y^{1000}=w^{999}y1000=w999
asumimos wwEl valor inicial de w es 1, enww¿ Qué sucede cuando w cambia ligeramente?
Entonces el problema con RNN es que durante el proceso de entrenamiento, el mismowww se usa repetidamente en diferentes momentos,wwUna vez que w tenga un impacto, tendrá un gran impacto.
Red de memoria a corto plazo y larga LSTM (memoria a corto plazo)
El uso de LSTM puede optimizar los defectos de la estructura RNN mencionada anteriormente. Agregue celdas de memoria cic^i a la unidad estructural RNN ordinaria originalCi , puede transmitir información sobre partes distantes del frente.
La estructura de LSTM consta de tres puertas, cuatro entradas y una salida. Las tres puertas son la puerta de entrada, la puerta de olvido y la puerta de salida. Utilice estas tres puertas para controlar qué información debe olvidarse y descartarse, qué información debe conservarse o mantenerse sin cambios. Las cuatro entradas son, datos de entradaZZZ , señal de control de puerta de entradaZ i Z_izyo, olvídate de la señal de control de puerta Z f Z_fzfy señal de control de puerta de salida Z o Z_ozo。
La puerta aquí puede entenderse como una función de activación, esta función de activación suele ser una función sigmoidea, porque el valor de la función sigmoidea está entre 0 y 1, que se utiliza para controlar el cierre y apertura de la puerta.
Supongamos que el valor original almacenado en la memoria es ccc , el valor actualizado esc ′ = g ( z ) f ( zi ) + cf ( zf ) c'=g(z)f(z_i)+cf(z_f)C′=gramo ( z ) f ( z)yo)+c f ( zf),c ′ c'C′ es el nuevo valor almacenado en la memoria. De esta fórmula podemos ver quef ( zi ) f(z_i)f ( zyo) es controlarZZ¿Se puede ingresar Z como nivel?f (zi) = 0 f(z_i)=0f ( zyo)=0 significa que no hay entrada,f (zi) = 1 f(z_i)=1f ( zyo)=1 tiene entrada. f ( zf ) f(z_f)f ( zf) controla si el valor en la memoria se actualizará. f(zf) = 0 f(z_f)=0f ( zf)=En 0 , olvida que la puerta está abierta y escribe 0 en la celda,f (zf) = 1 f(z_f)=1f ( zf)=Cuando 1 , pasa directamente y el valor mediano de la celda permanece sin cambios o c. f (zo) f(z_o)f ( zo) controla si hay un valor de salida.
Z i , Z f , Z , Z o Z_i,Z_f,Z_,Z_ozyo,zf,z,zoTodo por XXLa entrada obtenida multiplicando X por la matriz de peso. Ingrese la secuencia como se muestra a continuación.
LSTM puede resolver el problema de la desaparición del gradiente RNN. Los valores en la memoria RNN se borrarán cada vez, mientras que la memoria en LSTM siempre se superpondrá y solo se borrará a menos que se cierre la puerta.