Понимание топологии LSTM

9

Как и многие другие, я обнаружил, что ресурсы здесь и здесь чрезвычайно полезны для понимания ячеек LSTM. Я уверен, что понимаю, как значения обновляются и обновляются, и я достаточно уверен, чтобы добавить упомянутые «глазковые соединения» и т. Д.

В моем примере у меня на каждом шаге времени есть входной вектор длины iи выходной вектор длины o, где o < i.

На самом деле ни одна страница не раскрывает, как они организованы и обучены.

У меня есть 2 вопроса:

  1. В моих тренировочных данных у меня много пар входных / выходных векторов, соответствующих множеству единиц времени. Предположим, я тренирую LSTM со всеми данными. Могу ли я запустить ввод произвольной длины через него? Я имею в виду, что если у меня есть данные для обучения, скажем, за весь 2015 и 2016 годы, могу ли я затем передавать данные через сеть за 2017 год? Или, возможно, 2017 до 2020 года?
  2. Согласно тому, что я прочитал, такое ощущение, что у меня одна ячейка LSTM на единицу времени, поэтому, если у меня много единиц времени, то у меня много цепочек ячеек LSTM. Поскольку длина цепочки зависит от длины данных, которые я хочу пропустить через сеть, и это, предположительно, произвольно, я не могу понять, как бы я это обучил, если только я не обучу только одну ячейку LSTM, которая затем дублирует число раз. Таким образом, кажется, что я бы обучил одну ячейку LSTM, а затем связал nих вместе для заданного списка входных векторов длины n? Даже если одна ячейка LSTM содержит несколько элементов и функций, кажется, что этого недостаточно, чтобы собрать столько информации во что-то такое маленькое?

Спасибо. Есть ли какие-либо другие ресурсы, которые я могу потреблять (относительно быстро), которые помогут мне понять детали реализации? Две ссылки выше дали фантастическую картину высокого уровня того, что происходит, но не смогли уловить эти более мелкие детали.

AKrip4k
источник

Ответы:

1

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

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

Таким образом, кажется, что я бы обучил одну ячейку LSTM, а затем связал n из них вместе для заданного списка входных векторов длины n?

ИксTИксT+1

Sycorax говорит восстановить Монику
источник