stringtranslate.com

Retropropagación a través del tiempo

La retropropagación a través del tiempo (BPTT) es una técnica basada en gradientes para entrenar ciertos tipos de redes neuronales recurrentes . Puede utilizarse para entrenar redes Elman . El algoritmo fue derivado de forma independiente por numerosos investigadores. [1] [2] [3]

Algoritmo

BPTT despliega una red neuronal recurrente a través del tiempo.

Los datos de entrenamiento de una red neuronal recurrente son una secuencia ordenada de pares de entrada y salida. Se debe especificar un valor inicial para el estado oculto . Normalmente, se utiliza un vector de todos los ceros para este propósito.

El método BPTT comienza desplegando una red neuronal recurrente en el tiempo. La red desplegada contiene entradas y salidas, pero cada copia de la red comparte los mismos parámetros. Luego, se utiliza el algoritmo de retropropagación para encontrar el gradiente del costo con respecto a todos los parámetros de la red.

Consideremos un ejemplo de una red neuronal que contiene una capa recurrente y una capa de avance . Hay diferentes maneras de definir el costo de entrenamiento, pero el costo agregado es siempre el promedio de los costos de cada uno de los pasos de tiempo. El costo de cada paso de tiempo se puede calcular por separado. La figura anterior muestra cómo se puede calcular el costo en el tiempo, desplegando la capa recurrente para tres pasos de tiempo y agregando la capa de avance . Cada instancia de en la red desplegada comparte los mismos parámetros. Por lo tanto, las actualizaciones de peso en cada instancia ( ) se suman juntas.

Pseudocódigo

Pseudocódigo para una versión truncada de BPTT, donde los datos de entrenamiento contienen pares de entrada-salida, pero la red se despliega para pasos de tiempo:

Back_Propagation_Through_Time(a, y) // a[t] es la entrada en el momento t. y[t] es la salida Despliegue la red para contener k instancias de f hasta que se cumpla el criterio de detención: x := el vector de magnitud cero // x es el contexto actual para t de 0 a n − k hacer // t es el tiempo. n es la longitud de la secuencia de entrenamiento Establezca las entradas de la red en x, a[t], a[t+1], ..., a[t+k−1] p := propagar hacia adelante las entradas a lo largo de toda la red desplegada e := y[t+k] − p; // error = objetivo − predicción Retropropagar el error, e, a lo largo de toda la red desplegada Sume los cambios de peso en las k instancias de f juntas. Actualice todos los pesos en f y g. x := f(x, a[t]); // calcula el contexto para el siguiente paso de tiempo

Ventajas

BPTT tiende a ser significativamente más rápido para entrenar redes neuronales recurrentes que las técnicas de optimización de propósito general, como la optimización evolutiva . [4]

Desventajas

La BPTT tiene dificultades con los óptimos locales. Con las redes neuronales recurrentes, los óptimos locales son un problema mucho más significativo que con las redes neuronales de retroalimentación. [5] La retroalimentación recurrente en dichas redes tiende a crear respuestas caóticas en la superficie de error que hacen que los óptimos locales se produzcan con frecuencia y en ubicaciones deficientes en la superficie de error.

Véase también

Referencias

  1. ^ Mozer, MC (1995). "Un algoritmo de retropropagación enfocado para el reconocimiento de patrones temporales". En Chauvin, Y.; Rumelhart, D. (eds.). Retropropagación: teoría, arquitecturas y aplicaciones . Hillsdale, NJ: Lawrence Erlbaum Associates. págs. 137–169 . Consultado el 21 de agosto de 2017 . {{cite book}}: |website=ignorado ( ayuda )
  2. ^ Robinson, AJ y Fallside, F. (1987). Red de propagación de errores dinámicos impulsada por servicios públicos (informe técnico). Universidad de Cambridge, Departamento de Ingeniería. CUED/F-INFENG/TR.1.
  3. ^ Werbos, Paul J. (1988). "Generalización de la retropropagación con aplicación a un modelo de mercado de gas recurrente". Redes neuronales . 1 (4): 339–356. doi :10.1016/0893-6080(88)90007-x.
  4. ^ Sjoberg, Jonas; Zhang, Qinghua; Ljung, Lennart; Benveniste, Albert; Delyon, Bernard; Glorennec, Pierre-Yves; Hjalmarsson, Håkan ; Juditsky, Anatoli (1995). "Modelado de caja negra no lineal en la identificación de sistemas: una descripción general unificada". Automática . 31 (12): 1691-1724. CiteSeerX 10.1.1.27.81 . doi :10.1016/0005-1098(95)00120-8. 
  5. ^ MP Cuéllar y M. Delgado y MC Pegalajar (2006). "Una aplicación de programación no lineal para entrenar redes neuronales recurrentes en problemas de predicción de series temporales". Enterprise Information Systems VII . Springer Netherlands. pp. 95–102. doi :10.1007/978-1-4020-5347-4_11. ISBN 978-1-4020-5323-8.