Чому ваги мереж RNN / LSTM розподіляються впродовж часу?


20

Нещодавно я зацікавився LSTM, і я з подивом дізнався, що ваги діляться з часом.

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

  • З загальною вагою у вас є набагато менше параметрів для тренування.

З мого розуміння, причина, з якої можна звернутися до LSTM порівняно з іншим методом навчання, полягає в тому, що ви вважаєте, що у ваших даних є якась часова / послідовна структура / залежність, яку ви хочете вивчити. Якщо ви жертвуєте «розкішшю» змінної довжини і приймаєте довгий час обчислення, чи не буде RNN / LSTM без загальних ваг (тобто для кожного кроку у вас різні ваги) краще чи краще, чи щось мені не вистачає?

Відповіді:


17

Прийнята відповідь орієнтована на практичну сторону питання: це вимагатиме багато ресурсів, якщо параметри не поділяться. Однак рішення про розподіл параметрів у RNN було прийнято, коли будь-яке серйозне обчислення було проблемою (1980-ті за вікі ), тому я вважаю, що це був не основний аргумент (хоча все-таки справедливий).

Існують суто теоретичні причини поділу параметрів:

  • Це допомагає застосувати модель до прикладів різної довжини. Під час читання послідовності, якщо модель RNN використовує різні параметри для кожного кроку під час тренування, вона не буде узагальнюватися, щоб не побачити послідовності різної довжини.

  • Часто послідовності діють за тими ж правилами для всієї послідовності. Наприклад, в NLP:

                                                     "У понеділок пішов сніг"

                                                     "У понеділок пішов сніг"

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

LSTM не відрізняється в цьому сенсі, тому використовує і спільні параметри.


4
Це набагато важливіша причина, ніж прийнята відповідь!
jlh

Я вважаю, що моя відповідь тут неправильно характеризується. Я говорив, що без розподілу ваги потрібно буде більше обчислювальних ресурсів, але це не було основним моментом. Зокрема, я також писав, що модель без загальних ваг була б набагато гнучкішою і, таким чином, більш схильною до переобладнання. Поділ ваг у часі - це спосіб подолати це. Як справедливо зазначається тут, ця стратегія відповідає «попередньому», що одні й ті ж правила застосовуються на кожному кроці. Отже, обидві відповіді не розходяться.
користувач20160

12

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

Якби ви це зробили, кількість параметрів лінійно зростатиме з кількістю кроків часу. Це було б великим вибухом параметрів для послідовностей будь-якої помітної довжини. Це дійсно зробить мережу більш потужною, якби у вас були величезні обчислювальні ресурси для її запуску та масивні дані для обмеження її. Для довгих послідовностей це, ймовірно, буде обчислювально нездійсненно, і ви отримаєте надмірний вигляд. Насправді люди зазвичай йдуть у зворотному напрямку, проводячи усічене зворотне розповсюдження через час, яке розкручує мережу лише за короткий проміжок часу, а не за всю послідовність. Це робиться для обчислювальної доцільності. Цікаво, що RNN все ще можуть вивчити тимчасову структуру, яка виходить за межі довжини усікання, оскільки періодичні одиниці можуть зберігати пам'ять раніше.


Якщо ви не поділяєте ваги, у вас все ще залишається стан клітини, який зберігається протягом усього часу. Розгорнутий LSTM з унікальною масою часу буде виглядати як сітка подачі, де кожен "шар" буде представляти собою часовий відрізок, але кожен "шар" матиме вхідну інформацію про стан комірок. Це буде нагадувати подачу, але з додаванням стану клітин.
beeCwright

0

Я думаю, оскільки RNN з прихованими та прихованими повтореннями (і розподіленими за часом вагами) еквівалентні універсальним машинам Тьюрінга, якщо їх різну вагу для різних етапів часу не робить їх більш потужними.


Не могли б ви детальніше зупинитися на тому, що ви маєте на увазі під "потужним"? Посилання на машини Тюрінга говорить про те, що ви маєте на увазі, може бути зовсім іншим, ніж те, що розуміється в статистиці.
whuber

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