Зворо́тне поши́рення в ча́сі (ЗПЧ, ) — це методика на основі градієнту для тренування певних типів рекурентних нейронних мереж. Її можна застосовувати для тренування мереж Елмана. Цей алгоритм було незалежно виведено численними дослідниками.
Алгоритм
Тренувальні данні для ЗПЧ повинні бути впорядкованою послідовністю пар входів-виходів, . Для мусить бути вказано початкове значення. Для цієї мети зазвичай застосовують вектор з усіх нулів.
ЗПЧ починається з розгортання рекурентної нейронної мережі в часі, як показано на цьому зображенні. Ця рекурентна нейронна мережа містить дві нейронні мережі прямого поширення, 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]); // обчислити контекст для наступного моменту часу
Переваги ЗВЧ має схильність бути значно швидшим для тренування рекурентних нейронних мереж, ніж методики оптимізації загального призначення, такі як еволюційна оптимізація.
Недоліки ЗВЧ зазнає труднощів з локальними оптимумами. В рекурентних нейронних мережах локальний оптимум є набагато значнішою проблемою, ніж у нейронних мережах прямого поширення. Рекурентний зворотний зв'язок у таких мережах має схильність створювати хаотичні реакції в поверхні похибки, в результаті чого локальні оптимуми виникають часто, і в дуже поганих місцях поверхні похибки.
Див. також Зворотне поширення структурою
Примітки