1 votos

En la BPTT periódica, ¿se evalúa el softmax sólo al final del período?

Supongamos que tengo una secuencia continua $X$ de palabras y deseo entrenar un modelo de lenguaje RNN. Según [1], dividiría $X$ en subsecciones $X^{1..|X|/k_1}$ $k_1$ subsecuencias de tamaño ( $k_1$ es nuestro periodo), entonces para cada subsecuencia $X^i$ , propagar $X^i_1$ a través de la red, entonces $X^i_2$ , ... $X^i_{k_1}$ almacenando el estado oculto de la red para el último $k_2$ de estas propagaciones hacia adelante. Por último, se evalúa el softmax sólo para el $X^i_{k_1}$ palabra, es decir, cómo de bien predijo la red esta última palabra. Este error se retropropaga en el tiempo para $k_2$ pasos de tiempo, utilizando el estado oculto para estos pasos de tiempo que almacenamos previamente para calcular los gradientes.

Mi pregunta es: me parece un poco extraño que sólo se evalúe el softmax al final de la $k_1$ período. ¿Cómo se pueden tener en cuenta los errores cometidos en los pasos de tiempo anteriores al último? BPTT retrocederá el error cometido en $X^i_{k_1}$ para $k_2$ tiempos, pero ¿qué pasa con los errores cometidos en $X^i_{1...k_1-1}$ que nunca se calcularon con softmax? ¿No son igual de importantes?

Gracias por su ayuda.

[1] Mikolov, Tomáš. "Modelos lingüísticos estadísticos basados en redes neuronales". Presentación en Google, Mountain View, 2 de abril (2012).

0voto

Richard Huber Puntos 21

He pasado los últimos días investigando esto y haciendo algunos experimentos. Parece que evaluar el softmax sólo al final de la secuencia es menos eficaz para predecir el siguiente valor de una secuencia, pero es necesario si tu tarea implica clasificar una secuencia en su conjunto (análisis de sentimientos, por ejemplo).

A continuación se muestra una comparación del error a lo largo del tiempo para evaluar sólo el softmax al final de la secuencia (mostrado en verde) y evaluarlo en cada paso de la secuencia (mostrado en azul) enter image description here

Aquí hay un ejemplo que encontré de diferentes tipos de arquitecturas para diferentes problemas. El "muchos a muchos" estaría evaluando una salida para cada paso de la secuencia, y el "muchos a uno" estaría evaluando sólo una predicción final. Todo depende de tu tarea. enter image description here

Escribí una explicación más profunda como respuesta a una pregunta similar que hice aquí ¿Por qué la retropropagación en el tiempo en una RNN?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X