Розуміння топології LSTM


9

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

У своєму прикладі я маю на кожному етапі вхідний вектор довжини iта вихідний вектор довжини o, де o < i.

Те, що не висвітлено на жодній сторінці, - це те, як вони влаштовані та навчені.

У мене є 2 питання:

  1. У своїх навчальних даних я маю багато пар вхідних / вихідних векторів, що відповідають багатьом, багатьом одиницям часу. Припустимо, я треную LSTM з усіма даними. Чи можу я потім запустити через нього введення довільної довжини? Що я маю на увазі, якщо у мене є дані про навчання, скажімо, за весь 2015 та 2016 роки, чи можу я потім запускати дані через мережу за 2017 рік? Чи, можливо, 2017 по 2020 рік?
  2. Згідно з тим, що я прочитав, складається враження, що у мене є одна клітинка LSTM на одиницю часу, тому якщо у мене є багато одиниць часу, то у мене є багато прикутих LSTM комірок. Оскільки довжина ланцюга залежить від довжини даних, які я хочу запустити через мережу, і це, мабуть, довільно, я не можу зрозуміти, як я би це тренував, якщо тільки не треную лише одну клітинку LSTM, яка потім дублюється число разів. Отже, схоже, я би тренував одну клітинку LSTM, а потім ланцюг nїх разом для заданого списку вхідних векторних довжин n? Навіть незважаючи на те, що одна комірка LSTM містить ряд елементів та функцій, здається, що її недостатньо для того, щоб захопити стільки інформації в щось таке маленьке?

Дякую. Чи є інші ресурси, які я можу спожити (відносно швидко), які допоможуть мені зрозуміти деталі впровадження? Наведені вище 2 посилання дали фантастичну картину на високому рівні, що відбувається, але не вдалося зафіксувати ці тонкі деталі.

Відповіді:


1

Припустимо, я треную LSTM з усіма даними. Чи можу я потім запустити через нього введення довільної довжини?

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

Отже, схоже, я би тренував одну клітинку LSTM, а потім ланцюжок n з них разом для заданого списку вхідних векторів довжиною n?

Ні. Кожна клітина обробляє всі одиниці часу. Ось що робить їх повторними : комірка обробляє вхід шляхом оновлення стану пам'яті комірки . Наступна одиниця часу є функцією попереднього стану пам'яті і новим вхіднийхтхт+1.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.