Зворотне поширення в часі

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Зворо́тне поши́рення в ча́сі (ЗПЧ, англ. Backpropagation through time, BPTT) — це методика на основі градієнту для тренування певних типів рекурентних нейронних мереж. Її можна застосовувати для тренування мереж Елмана. Цей алгоритм було незалежно виведено численними дослідниками.[1][2][3]

Алгоритм

[ред. | ред. код]
ЗПЧ розгортає рекурентну нейронну мережу в часі.
ЗПЧ розгортає рекурентну нейронну мережу в часі.

Тренувальні данні для ЗПЧ повинні бути впорядкованою послідовністю пар входів-виходів, . Для мусить бути вказано початкове значення. Для цієї мети зазвичай застосовують вектор з усіх нулів.

ЗПЧ починається з розгортання рекурентної нейронної мережі в часі, як показано на цьому зображенні. Ця рекурентна нейронна мережа містить дві нейронні мережі прямого поширення, f та g. Коли ця мережа розгортається в часі, то розгорнута мережа містить k примірників f, і один примірник g. У наведеному прикладі мережу було розгорнуто до глибини k = 3.

Потім тренування відбувається подібним чином, як і при тренуванні нейронної мережі прямого поширення зворотним поширенням, за тим виключенням, що тренувальні зразки відвідуються послідовно. Кожен тренувальний зразок складається з . (Всі дії для k моментів часу потрібні тому, що розгорнута мережа містить входи на кожному з розгорнутих рівнів.) Після представлення зразка для тренування уточнення ваг у кожному з примірників f () підсумовуються, і потім застосовуються до всіх примірників f. Як початкове значення , як правило, використовують нульовий вектор.

Псевдокод

[ред. | ред. код]

Псевдокод ЗПЧ:

Зворотне_поширення_в_часі(a, y)       // a[t] є входом у момент часу t. y[t] є виходом
    Розгорнути мережу, щоби містила k примірників f
    повторювати до досягнення критерію зупинки:
        x = вектор нульової величини; // x є поточним контекстом
        для t від 0 до n - k          // t є часом. n є довжиною тренувальної послідовності
            Встановити входи мережі в x, a[t], a[t+1], ..., a[t+k-1]
            p = поширити входи в прямому напрямку всією розгорнутою мережею
            e = y[t+k] - p;           // похибка = ціль - передбачення
            Поширити в зворотному напрямку похибку e всією розгорнутою мережею
            Підбити загальну суму змін ваг у k примірниках f.
            Уточнити всі ваги в f та g.
            x = f(x, a[t]);           // обчислити контекст для наступного моменту часу

Переваги

[ред. | ред. код]

ЗВЧ має схильність бути значно швидшим для тренування рекурентних нейронних мереж, ніж методики оптимізації загального призначення, такі як еволюційна оптимізація.[4]

Недоліки

[ред. | ред. код]

ЗВЧ зазнає труднощів з локальними оптимумами. В рекурентних нейронних мережах локальний оптимум є набагато значнішою проблемою, ніж у нейронних мережах прямого поширення.[5] Рекурентний зворотний зв'язок у таких мережах має схильність створювати хаотичні реакції в поверхні похибки, в результаті чого локальні оптимуми виникають часто, і в дуже поганих місцях поверхні похибки.

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Mozer, M. C. (1995). Y. Chauvin; D. Rumelhart (ред.). A Focused Backpropagation Algorithm for Temporal Pattern Recognition. Hillsdale, NJ: Lawrence Erlbaum Associates. с. 137—169. (англ.)
  2. Robinson, A. J. & Fallside, F. (1987). The utility driven dynamic error propagation network (Технічний звіт). № CUED/F-INFENG/TR.1. Cambridge University, Engineering Department. (англ.)
  3. Paul J. Werbos (1988). Generalization of backpropagation with application to a recurrent gas market model. Neural Networks. 1 (4): 339—356. doi:10.1016/0893-6080(88)90007-X. (англ.)
  4. Jonas Sjöberg and Qinghua Zhang and Lennart Ljung and Albert Benveniste and Bernard Deylon and Pierre-yves Glorennec and Hakan Hjalmarsson and Anatoli Juditsky (1995). Nonlinear Black-Box Modeling in System Identification: a Unified Overview. Automatica. 31: 1691—1724. doi:10.1016/0005-1098(95)00120-8. (англ.)
  5. M.P. Cuéllar and M. Delgado and M.C. Pegalajar (2006). An Application of Non-linear Programming to Train Recurrent Neural Networks in Time Series Prediction Problems. Enterprise Information Systems VII. Springer Netherlands: 95–102. doi:10.1007/978-1-4020-5347-4\_11. ISBN 978-1-4020-5323-8. (англ.)