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