Как и многие другие, я обнаружил, что ресурсы здесь и здесь чрезвычайно полезны для понимания ячеек LSTM. Я уверен, что понимаю, как значения обновляются и обновляются, и я достаточно уверен, чтобы добавить упомянутые «глазковые соединения» и т. Д.
В моем примере у меня на каждом шаге времени есть входной вектор длины i
и выходной вектор длины o
, где o < i
.
На самом деле ни одна страница не раскрывает, как они организованы и обучены.
У меня есть 2 вопроса:
- В моих тренировочных данных у меня много пар входных / выходных векторов, соответствующих множеству единиц времени. Предположим, я тренирую LSTM со всеми данными. Могу ли я запустить ввод произвольной длины через него? Я имею в виду, что если у меня есть данные для обучения, скажем, за весь 2015 и 2016 годы, могу ли я затем передавать данные через сеть за 2017 год? Или, возможно, 2017 до 2020 года?
- Согласно тому, что я прочитал, такое ощущение, что у меня одна ячейка LSTM на единицу времени, поэтому, если у меня много единиц времени, то у меня много цепочек ячеек LSTM. Поскольку длина цепочки зависит от длины данных, которые я хочу пропустить через сеть, и это, предположительно, произвольно, я не могу понять, как бы я это обучил, если только я не обучу только одну ячейку LSTM, которая затем дублирует число раз. Таким образом, кажется, что я бы обучил одну ячейку LSTM, а затем связал
n
их вместе для заданного списка входных векторов длиныn
? Даже если одна ячейка LSTM содержит несколько элементов и функций, кажется, что этого недостаточно, чтобы собрать столько информации во что-то такое маленькое?
Спасибо. Есть ли какие-либо другие ресурсы, которые я могу потреблять (относительно быстро), которые помогут мне понять детали реализации? Две ссылки выше дали фантастическую картину высокого уровня того, что происходит, но не смогли уловить эти более мелкие детали.