Red de conocimiento de divisas - Apertura de cuenta en divisas - Análisis de redes neuronales recurrentes (RNN)

Análisis de redes neuronales recurrentes (RNN)

RNN es la abreviatura de dos modelos de redes neuronales, una es red neuronal recurrente y la otra es red neuronal recurrente. Aunque estas dos redes neuronales están inextricablemente vinculadas, este artículo analiza principalmente el segundo modelo de red neuronal: la red neuronal recurrente.

Las redes neuronales recurrentes son estructuras que aparecen repetidamente a lo largo del tiempo. Se utiliza ampliamente en campos como el procesamiento del lenguaje natural, el habla y las imágenes. La mayor diferencia entre las redes RNN y otras redes es que RNN puede lograr una determinada "función de memoria" y es la mejor opción para el análisis de series de tiempo. Al igual que los humanos usan sus recuerdos del pasado para comprender mejor el mundo. RNN también implementa este mecanismo de manera similar al cerebro humano. Tiene una cierta memoria de la información procesada. A diferencia de otros tipos de redes neuronales, no puede mantener la memoria de la información procesada.

El principio de la red neuronal recurrente no es muy complicado. Esta sección analiza principalmente la estructura y función de RNN en principio y no implica la derivación matemática ni la prueba de RNN. Toda la red tiene sólo parámetros simples de entrada, salida y estado de la red. Una red neuronal RNN típica es la siguiente:

Como se puede ver en la figura anterior, una red RNN típica incluye una entrada X, una salida H y una unidad de red neuronal A. ​​A diferencia de la ordinaria. Red neuronal, RNN La unidad de red neuronal A de la red no solo está conectada a la entrada y salida, sino que también tiene su propio bucle. Esta estructura de red revela la esencia de RNN: la información del estado de la red en el momento anterior afectará el estado de la red en el momento siguiente. Si la estructura de la red en la figura anterior no es lo suficientemente clara, la red RNN se puede expandir a la siguiente forma en series de tiempo:

El lado derecho del signo igual es la forma expandida de RNN. Debido a que RNN se usa generalmente para procesar información de secuencia, las series de tiempo se usan como ejemplo en la siguiente explicación. La entrada inicial de la red RNN equivalente en el lado derecho del signo igual es x0 y la salida es h0. Esto significa que la entrada de la red RNN es x0 en el momento 0 y la salida es h0. en el momento 0 se guarda en A.. la próxima vez Cuando llega 1, el estado de la neurona de la red no solo está determinado por la entrada de X1 en el momento 1, sino también por el estado de la neurona en el momento 0. Y así sucesivamente hasta el final de la serie temporal, tiempo t.

El proceso anterior se puede demostrar con un ejemplo simple: supongamos que hay una oración "Quiero jugar baloncesto". Dado que el lenguaje natural en sí es una serie de tiempo, el lenguaje anterior tendrá una cierta relación con el. lenguaje posterior. Por ejemplo, el verbo "jugar" en la oración de ahora significa que debe haber un sustantivo detrás. Es posible que sea necesario determinar qué es este sustantivo en un contexto más distante, por lo que una oración también se puede usar como entrada de RNN. . Volviendo a la oración anterior, las cinco palabras de esta oración aparecen en orden cronológico. Ahora codificamos estas cinco palabras y las introducimos en el RNN en secuencia. La primera es la palabra "I", que se utiliza como entrada x0 como primera palabra en la serie de tiempo, tiene salida h0 y cambia el estado de la neurona inicial A. La palabra "quiero" como segunda palabra en la palabra de serie temporal, la entrada es x1. En este momento, la salida y el estado de la neurona del RNN no solo estarán determinados por x1, sino también por el estado de la neurona en el último momento o la entrada x0 en el último momento. Y así sucesivamente, hasta que la frase anterior llegue a la última palabra "baloncesto".

A continuación, debemos prestar atención a la estructura neuronal de RNN:

La imagen de arriba sigue siendo un modelo de expansión de series temporales de la red neuronal RNN. El modelo de red en el intermedio. El tiempo t revela la estructura del RNN. Se puede ver que la estructura interna de la red RNN original es muy simple. El estado de la neurona A en el momento T es solo el valor de la función tangente hiperbólica entre el estado de la neurona en el momento t-1 y la entrada de la red en el momento T. Este valor no es solo la salida de la red en este momento, sino también el estado de la red en este momento y pasó al estado de la red en el momento siguiente. Este proceso se llama propagación directa de RNN. Nota: La fórmula analítica de la función tangente hiperbólica es la siguiente:

La derivada de la función tangente hiperbólica es la siguiente:

La imagen de la función tangente hiperbólica es la siguiente:

Esto plantea una pregunta: ¿Por qué deberíamos elegir la tangente hiperbólica en lugar de sigmod como función de activación de la red RNN? (La función de activación de RNN no es solo la tangente hiperbólica, sino que la función RELU también se usa ampliamente). La razón es que la solución de la red RNN implica una gran cantidad de operaciones derivadas de series de tiempo. usando la función sigmod, y la forma derivada de sigmod es compleja.

De hecho, incluso si se utiliza la función tangente hiperbólica, la red RNN tradicional todavía tiene el problema de la desaparición del gradiente y no puede "recordar" la información en una secuencia a largo plazo. Este problema no se puede resolver hasta que el estado de la celda se introduzca en LSTM.

Esta sección presenta principalmente la derivación matemática relacionada con RNN. Dado que RNN es un modelo de series de tiempo, su proceso de solución puede ser diferente al de las redes neuronales generales. Primero, debemos presentar el diagrama de estructura completo de RNN. El diagrama de estructura de RNN proporcionado en la sección anterior omite muchos parámetros internos y solo se proporciona como un modelo conceptual.

La imagen de arriba es la topología completa de la red RNN, desde donde se pueden ver los parámetros en la red RNN. Aquí solo analizamos el comportamiento y la derivación matemática de la red en el momento t. En el momento t, la red recibe una entrada xt. En este momento, el estado de la neurona st de la red se expresa mediante la siguiente fórmula:

<. p>El estado de la red en el momento T St no solo debe ingresarse al estado de la red en el siguiente momento t+1, sino que también debe usarse como salida de la red en ese momento. Por supuesto, st no se puede generar directamente. Debe multiplicarse por un coeficiente v para generar la salida. Y para facilitar la propagación hacia atrás del error, la salida generalmente se normaliza, es decir, la salida es softmax. Por lo tanto, la salida ot de la red en el momento t se expresa de la siguiente manera:

Para facilitar la expresión, el autor transforma las dos fórmulas anteriores de la siguiente manera:

Lo anterior es el Expresión matemática de la red RNN. Siguiente Necesitamos resolver este modelo. Antes de discutir soluciones específicas, es necesario aclarar dos preguntas: ¿Cuál es la función objetivo de optimización? ¿Cuál es la cantidad a optimizar?

Solo cuando se aclaren estas dos cuestiones se podrá derivar y resolver específicamente el modelo. Para la primera pregunta, el autor elige la función de pérdida del modelo como objetivo de optimización; para la segunda pregunta, podemos encontrar fácilmente en el diagrama de estructura RNN que siempre que obtengamos los tres parámetros del modelo U, V, W. , se puede determinar completamente El estado del modelo. Por lo tanto, las variables de optimización de este problema de optimización son estos tres parámetros de RNN. Por cierto, los tres parámetros u, v y w del modelo RNN se comparten globalmente, lo que significa que los parámetros del modelo en diferentes momentos son completamente consistentes, lo que hace que el RNN tenga un poco menos de parámetros.

Sin más discusión, la función de pérdida de RNN es la entropía cruzada, que es una de las funciones de pérdida más utilizadas en el aprendizaje automático. Generalmente se expresa de la siguiente manera:

La fórmula anterior es la forma escalar de entropía cruzada, y_i es el valor real de la etiqueta, y_i* es el valor predicho dado por el modelo y hay un símbolo de acumulación en el lado más externo debido a que la salida del modelo es generalmente un vector multidimensional, y solo sumando todas las pérdidas N-dimensionales se puede obtener el valor de pérdida real. Cuando se aplica la entropía cruzada a RNN, es necesario realizar algunos cambios: primero, la salida de RNN está en forma vectorial, no es necesario sumar todas las dimensiones y, en segundo lugar, el valor de pérdida se puede representar directamente mediante un vector; Dado que el modelo RNN trata problemas de secuencia, la pérdida del modelo no puede ser solo la pérdida en un momento, sino que también incluye la pérdida en todos los N momentos.

Por lo tanto, la función de pérdida del modelo RNN en el momento t se escribe como:

La función de pérdida (pérdida global) de los n momentos se expresa de la siguiente manera:

Cabe señalar que, además, yt es el valor verdadero de la etiqueta ingresado en el momento t, ot es el valor predicho del modelo y n representa los n momentos. Para facilitar la escritura, la pérdida se abreviará como l a continuación. Antes del final de esta sección, se agregará una fórmula de derivación de la función softmax:

Dado que el modelo RNN está relacionado con series de tiempo, el El algoritmo BP no se puede utilizar directamente. Para el caso especial del problema RNN, se propone el algoritmo BPTT. El nombre completo de BPTT es "Retropropagación a través del tiempo". La base de este método sigue siendo la regla de derivación de cadena convencional, y luego comienza la derivación específica. Aunque la pérdida global de RNN está relacionada con todos los N momentos, por simplicidad, el autor solo se centra en la función de pérdida en T momentos.

Primero, obtenga el diferencial de la función de pérdida con respecto a o_t* en el momento t:

Encuentre el diferencial de la función de pérdida con respecto al parámetro v:

Por lo tanto, la pérdida global es relativamente El diferencial con respecto al parámetro v es:

Encuentre el diferencial de la función de pérdida con respecto a st* en el momento t;

Encuentre el diferencial de la función de pérdida con respecto a s_t-1* en el momento t;

Encuentre la derivada parcial de la función de pérdida con respecto al parámetro u en el momento t Nota: Dado que es un modelo de serie de tiempo. , la derivada de u con respecto al tiempo t está relacionada con los primeros momentos t-1. El cálculo específico se puede limitar a los primeros n momentos, pero todos los primeros momentos t-1 deben incluirse en la derivación:

Por lo tanto, la derivada parcial de la pérdida global con respecto a u es:

Usando el mismo método anterior, encuentre Obtenga la derivada parcial de la función de pérdida con respecto al parámetro w en el momento t. Aquí, todavía necesitamos calcular todas las situaciones antes del tiempo t-1:

Por lo tanto, el resultado diferencial de la pérdida global con respecto al parámetro w es:

Hasta ahora, Hemos obtenido aproximadamente tres Diferenciación de la función de pérdida general de los parámetros principales. La organización es la siguiente:

A continuación, simplifique aún más la expresión diferencial anterior. La principal dirección de simplificación es el diferencial de la función de pérdida en el tiempo t con respecto a ot y con respecto a st*. Dada la expresión de la función de pérdida en el tiempo t, encuentre el diferencial con respecto a ot;

La derivación de la función softmax:

Por lo tanto:

Porque :

Y:

A través de la derivación matemática anterior, podemos obtener la fórmula del gradiente de pérdida global para los tres parámetros u, v y w:

Debido a las fórmulas diferenciales de los parámetros u y w no solo están relacionadas con el tiempo t, sino también con el tiempo anterior t-1, por lo que es imposible escribir una fórmula de cálculo directa. Sin embargo, la fórmula de recursividad diferencial de la función de pérdida de s_t-1 en el momento t se proporcionó anteriormente. Resolver esta fórmula es muy simple, por lo que no entraré en detalles aquí.

Lo anterior es la derivación matemática completa del algoritmo BPTT. Se puede ver en los resultados finales que los resultados diferenciales parciales de las tres fórmulas son muy simples y pueden incorporarse directamente al cálculo durante el proceso de optimización específico. Para este problema de optimización, el método más utilizado es el descenso de gradiente. Para el problema RNN involucrado en este artículo, se puede construir una fórmula de actualización de gradiente con tres parámetros:

De acuerdo con la fórmula de actualización de gradiente anterior, los tres parámetros se pueden resolver iterativamente hasta que los valores de los tres los parámetros convergen.

Este es el primer intento del autor de derivar el modelo matemático de RNN. Hay muchos errores en el proceso de derivación. Estoy muy agradecido a algunos blogs e información pública en Internet por brindarme gran ayuda y orientación. A continuación, el autor intentará implementar un modelo RNN de una sola capa oculta para implementar un modelo de predicción semántica.

上篇: ¿Qué clase de hotel es Huizhou Merchants Hometown Hotel? 下篇: Soy de Tangshan. Queremos hacer un viaje sin conductor a Dalian a finales de julio y nos gustaría saber la ruta de viaje. Alojamiento y atracciones asequibles
Artículos populares