Розсувне вікно призводить до надмірного розміщення в LSTM?


15

Чи зможу я перевищити свій LSTM, якщо навчатиму його за допомогою розсувного вікна? Чому люди, схоже, не використовують його для LSTM?

Для спрощеного прикладу припустимо, що ми повинні передбачити послідовність символів:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Це погано (чи краще?), Якщо я продовжую тренувати свій LSTM за допомогою таких мініатюр:

A B C D E F G H I J K L M N, backprop, erase the cell

B C D E F G H I J K L M N O, backprop, erase the cell

 .... and so on, shifting by 1 every time?

Раніше я завжди готував це як:

A B C D E F G H I J K L M N,  backprop, erase the cell

O P Q R S T U V W X Y Z,  backprop, erase the cell

Замість того, щоб змістити їх на один, краще було б просунути вікно на 2 записи замість цього тощо? Що це означатиме (з точки зору точності / надмірності)?


Крім того, якби я підходив до розсувного вікна в мережі Feed-forward, це призвело б до надмірного розміщення? Я би припустив, що так, оскільки мережа дуже тривалий час піддається впливу одних і тих же інформаційних регіонів. Наприклад, їй піддаються E F G H I J Kтривалий час.


Редагувати:

Пам'ятайте, що стан комірок стирається між тренувальними партіями, тому LSTM у цей час матиме "молот для голови". Неможливо згадати, що було до OPQRSTUVWXYZ. Це означає, що LSTM ніколи не може дізнатися, що "O" слідує за "M".

Отже, я подумав (таким чином, все моє запитання), чому б не дати йому проміжної (перекриваючої) партії між ... і в тому випадку, чому б не використати кілька міні-матчів, що перекриваються, - для мене це забезпечило б більш плавне тренування? Зрештою, це означатиме розсувне вікно для LSTM.


Деякі корисні відомості, які я знайшов після прийняття відповіді:

звідси

Перше слово англійського перекладу, ймовірно, дуже корелює з першим словом вихідного речення. Але це означає, що декодер повинен розглядати інформацію з 50 кроків тому, і цю інформацію потрібно якось закодувати у векторі. Як відомо, у періодичних нейронних мереж виникають проблеми, пов'язані з такими залежностями дальнього діапазону. Теоретично такі архітектури, як LSTM, повинні мати змогу впоратися з цим, але на практиці залежність далеких відстаней все ще є проблемою.

Наприклад, дослідники виявили, що реверсування послідовності джерела (подача його назад в кодер) дає значно кращі результати, оскільки скорочує шлях від декодера до відповідних частин кодера. Аналогічно, подача послідовності введення двічі також допомагає мережі краще запам'ятовувати речі. Наприклад, якщо одним із прикладів тренінгу є "Джон пішов додому", ви дасте "Джон пішов додому, Джон пішов додому" в мережу як один вхід.

Відредагуйте після прийняття відповіді:

Через кілька місяців я більше схильний використовувати підхід розсувного вікна, оскільки він краще використовує дані. Але в цьому випадку ви, мабуть, не хочете тренувати BCDEFGHIJKLMNO відразу після ABCDEFGHIJKLMNO. Натомість перетасуйте свої приклади, щоб поступово і рівномірно "вводити" всю інформацію у свій LSTM. Дайте йому HIJKLMNOPQRSTU після ABCDEFGHIJKLMNO тощо. Це безпосередньо пов'язане з катастрофічним забуттям. Як завжди, уважно стежте за набором валідації та тестування та припиняйте, як тільки побачите, що їх помилки постійно збільшуються

Крім того, питання "молот по голові" можна покращити, використовуючи синтетичні градієнти. Про його перевагу дивіться тут: (у зв’язаній відповіді обговорюється користь довгих послідовностей) /datascience//a/32425/43077

Відповіді:


9

Хоча попередня відповідь від @Imran є правильною, я вважаю за потрібне додати застереження: там є програми, де люди подають розсувне вікно в LSTM. Наприклад, тут для визначення прогнозування як наглядової проблеми навчання.

4(мн+н2+н)мн

Оскільки LSTM не потребують введення фіксованого розміру, вони можуть самостійно знайти оптимальний номер перегляду. Однак якщо ви зробили попередній автоматичний аналіз і вирішили, що, наприклад, поточний крок часу найбільше співвідноситься з 10-м попереднім етапом часу, а не співвідноситься з 11-м чи будь-яким часовим кроком далі в минулому, то ви могли б можливо, заощадите собі час тренувань, годуючи в послідовності фіксованої довжини. Однак такий вид перемагає мету LSTM.

Якщо ваші дані недостатньо багаті для LSTM, я б рекомендував спробувати щось набагато простіше, як, наприклад, авторегресивна модель, і пропрацювати свій шлях.

EDIT (відповідаючи на коментар):

Послідовності, що перекриваються, використовуються як вхідні дані, особливо коли послідовність дуже довга (хоча, звичайно, "довга" відносна). Хоча LSTM краще, ніж ванільний RNN для довгих послідовностей, вони все ще можуть мати певні проблеми з запам'ятовуванням кроків часу від початку послідовності, якщо послідовність дуже довга. Це призвело до таких речей, як двонаправлений LSTM, який зчитує послідовність вперед і назад, покращуючи опромінення мережі на початку та в кінці кожної послідовності введення. Принцип той самий з послідовностями, що перекриваються, хоча я заперечую, що послідовності, що перекриваються, більш інтуїтивні.


Дякую, я все ще не бачу, чи слід / не слід тренувати LSTM з партіями, що не перекриваються. Повідомлення, яке вам сподобалось, є цінним, але воно лише обговорює мережі Feed-Forward і не стосується переваг / небезпек в міні-боях LSTM, що перекриваються під час тренувань. @Imran також не обговорював "антирецепту" проти мініатюр, що перекриваються - мій перший коментар до його повідомлення.
Карі

Я відредагував своє запитання, щоб включити коментар
Карі

Багато чудової інформації!
Імран

@Kari Я змінив свою відповідь. Чи допомагає це?
StatsSorceress

5

LSTM не потребують розсувного вікна входів. Вони можуть запам'ятати те, що вони бачили в минулому, і якщо ви подаватимете навчальні приклади один за одним, вони виберуть вікно потрібного розміру вхідних даних, щоб запам'ятати самостійно.

LSTM вже схильні до надмірного розміщення, і якщо ви подаєте безліч зайвих даних із розсувним вікном, то так, вони, ймовірно, перевищують.

З іншого боку, розсувне вікно необхідне для прогнозування часових рядів за допомогою нейронних мереж Feedforward, оскільки FNN вимагають введення фіксованого розміру і не мають пам’яті, тому це найбільш природний спосіб подати їм дані часових рядів.

Від того, чи буде FNN перевиконати, залежить від його архітектури та ваших даних, але всі стандартні методи регуляризації застосовуватимуться, якщо вони є. Наприклад, ви можете спробувати меншу мережу, регуляризацію L2, випадання тощо.


Спасибі! Я заперечую, що стан клітин стирається між тренувальними партіями, тому LSTM у цей час матиме "молот для голови". Неможливо згадати, що було до OPQRSTUVWXYZ. Це означає, що LSTM ніколи не може дізнатися, що "O" слідує за "M". Тож я подумав: чому б не дати йому проміжну (перекриваючу) партію між ... і в тому випадку, чому б не використовувати декілька мініатюр, що перекриваються, - мені це забезпечило б більш плавне навчання?
Карі

Зрештою, це означатиме розсувне вікно для LSTM
Карі

Знищувати стан клітин між тренувальними партіями не потрібно, хоча зворотне розмноження далі назад, звичайно, неможливо.
Ян ван дер Вегт

Я спробував це, і - навіть при 0 швидкості навчання, помилка стрибала вгору і вниз на невелику кількість, тому що неправильні стани клітин використовувались як "спадщина" під час тренувань. Я не міг скласти більше 6 шарів при такому підході - він став занадто хаотичним і не збігся. Однак, скидання стану клітини до нуля після кожного Backprop дозволило мені складати 150 шарів із 64 нейронами в кожному шарі та тренувати його з 0,001 швидкістю навчання та імпульсом 0,9 (я використовую LayerNormalization, тому в моєму випадку швидкість навчання така велика)
Карі

1
Це означає, що з "застарілими стільниками" LSTM стає нестабільним та ненадійним - він починає працювати над новою міні-партією, грунтуючись на своїх рішеннях на останньому стані комірки (попередньої міні-партії), який не був виправлений повною мірою. Отже, стирання клітинного стану усуває цей фундаментальний недолік, але змушує LSTM зазнати амнезії
Карі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.