В чем разница между временными шагами и функциями в LSTM?

У меня есть фрейм данных, представляющий числовые значения во многих периодах времени, и я отформатировал этот фрейм данных так, как они представлены в виде объединения предыдущих значений. Например:

+------+------+------+
| t1   | t2   | t3   |
+------+------+------+
| 4    | 7    | 10   |
+------+------+------+
| 7    | 10   | 8    |
+------+------+------+
| 10   | 8    | 11   |
+------+------+------+
...

Когда я форматирую набор данных для работы с LSTM, я преобразую его в трехмерный вектор [образцы, временные шаги, функции].

Но какое значение я должен поставить для временных шагов и функций? Должны ли функции быть 3, потому что я учусь с последними 3 элементами?

На данный момент у меня есть этот:

trainX = numpy.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1])) 

1 ответ

Я пытаюсь объяснить на примере. Итак, предположим, у нас есть некоторые измерения с температурой и давлением, и мы хотим предсказать температуру в какой-то момент в будущем. У нас есть две функции справа (температура и давление). Таким образом, мы можем использовать их для кормления LSTM и попытаться предсказать. Теперь я не уверен, как вы относитесь к теории LSTM, но в игре есть две переменные: состояние ячейки C и предыдущий вывод h(t-1). Концентрируемся на ч (т-1). Таким образом, вы дали вход ячейки LSTM (предположим, теперь только один нейрон) (температура и давление). LSTM производит вывод и состояние ячейки, и теперь, если у вас есть временные шаги в 1, когда вы даете LSTM новый ввод, вывод будет зависеть только от состояния ячейки и ввода. Но если ваши временные шаги установлены на пять. Второй вход будет зависеть от состояния ячейки, входа и предыдущего выхода. Третий выход будет зависеть от второго выхода, состояния ячейки, токового входа. Эта последовательность продолжается в момент шестого ввода, когда вы снова зависите от ввода и состояния ячейки. Эти h (t-1) вещи упоминаются как кратковременная память. Так что если вы установите временные шаги в 1, вы потеряете свою короткую память.

Редактировать Мой плохой Я не смотрю на ваши данные в правильном направлении. У вас есть одна функция, т и три шага. Но вы неправильно формируете его, вы рассматриваете три значения t как отдельные объекты и передаете им LSTM. Но вместо этого вы можете преобразовать свои данные в выборки x 3 x 1. Таким образом, вы подаете LSTM с t 1 первого сэмпла, следующим t2 первого сэмпла, но на выход LSTM будет влиять выход с предыдущего временного шага.

Другие вопросы по тегам