В чем разница между временными шагами и функциями в LSTM? - PullRequest
0 голосов
/ 03 декабря 2018

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

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

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

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

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

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

1 Ответ

0 голосов
/ 03 декабря 2018

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

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

...