Классификация временных рядов с использованием LSTM - как подойти?
Я работаю над экспериментом с LSTM для классификации временных рядов и прохожу несколько HOWTO, но все же я борюсь с некоторыми очень простыми вопросами:
Является ли основная идея для обучения LSTM брать один и тот же образец из каждого временного ряда?
Например, если у меня есть временной ряд A (with samples a1,a2,a3,a4)
, B(b1,b2,b3,b4)
а также C(c1,c2,c3,c4)
тогда я буду кормить LSTM партиями (a1,b1,c1)
, затем (a2,b2,c2)
так далее.? Это означает, что все временные ряды должны иметь одинаковый размер / количество выборок?
Если да, то может ли кто-нибудь более опытный быть таким добрым и описать меня очень просто, как подойти ко всему процессу изучения LSTM и создания классификатора?
Я намерен использовать TensorFlow, но я все еще новичок в этом.
1 ответ
Если ваша цель - классификация, то ваши данные должны быть временным рядом и меткой. Во время обучения вы вводите каждый в lstm и при необходимости просматриваете только последний вывод и backprop.
Судя по вашему вопросу, вы, вероятно, запутались в пакетировании - вы можете тренировать несколько предметов одновременно. Однако каждый элемент в пакете получит свое собственное скрытое состояние, и обновляются только параметры слоев.
Временные ряды в одной партии должны быть одинаковой длины. Вы должны завершать каждую последовательность токеном END и слишком короткими элементами pad с помощью специального токена PAD - lstm должен узнать, что PAD after и END бесполезны.
Нет необходимости в том, чтобы в разных партиях было одинаковое количество предметов и не было предметов одинаковой длины.