¿Cuál es la diferencia clave entre backprop y backprop truncado a través del tiempo?

La retropropagación a través del tiempo (BPTT) es una extensión de la retropropagación clásica (BP) para la red neuronal recurrente (RNN).

Recomiendo esta publicación de blog [1] de Christopher Olah para una buena presentación del algoritmo BP.

Con los RNN, no podemos aplicar directamente este algoritmo debido a la presencia de ciclo en el gráfico. Entonces, básicamente “desplegamos” (o “desenrollamos”) la red:

(Imagen del blog de Olah)

De esta manera, un RNN puede verse como una red de alimentación amplia / profunda, y podemos aplicar BP en él.

Sin embargo, todavía es muy difícil propagar adecuadamente el gradiente a través de muchas capas con el llamado problema de gradiente de fuga / explosión [2]. Además, los requisitos computacionales para desenrollar un RNN y propagar rápidamente el gradiente para una secuencia realmente larga se vuelven enormes.

Por lo tanto, aquí está el BPTT truncado. La idea básica detrás de esto es resumir en el Ph.D. de Ilya Sustskever. tesis [3]:

[Propagación hacia atrás truncada] procesa la secuencia paso a paso, y cada k1 paso a paso, ejecuta BPTT para k2 paso a paso

Espero eso ayude !

Y perdón por mi pobre inglés 😉

Notas al pie

[1] Cálculo en gráficos computacionales: retropropagación

[2] http://www-dsi.ing.unifi.it/~pao…

[3] http://www.cs.utoronto.ca/~ilya/…