Понимание долговременной краткосрочной памяти Keras (LSTM)Python

Программы на Python
Ответить
Anonymous
 Понимание долговременной краткосрочной памяти Keras (LSTM)

Сообщение Anonymous »

Пытаясь согласовать свое понимание LSTM, изложенное здесь, в этом посте Кристофера Олаха, реализованного в Keras, и следуя блогу, написанному Джейсоном Браунли для руководства по Keras, меня смущает следующее:
  • Преобразование ряда данных в [выборки, временные шаги, функции] и
  • LSTM с отслеживанием состояния
Учитывая два приведенных выше вопроса, на которые ссылается приведенный ниже код:

Код: Выделить всё

# reshape into X=t and Y=t+1
look_back = 3
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(test, look_back)

# reshape input to be [samples, time steps, features]
trainX = numpy.reshape(trainX, (trainX.shape[0], look_back, 1))
testX = numpy.reshape(testX, (testX.shape[0], look_back, 1))
########################
# The IMPORTANT BIT
##########################
# create and fit the LSTM network
batch_size = 1
model = Sequential()
model.add(LSTM(4, batch_input_shape=(batch_size, look_back, 1), stateful=True))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
for i in range(100):
model.fit(trainX, trainY, nb_epoch=1, batch_size=batch_size, verbose=2, shuffle=False)
model.reset_states()
Примечание: create_dataset принимает последовательность длины N и возвращает массив N-look_back, каждый элемент которого представляет собой последовательность длины Look_back.Каковы временные шаги и характеристики?
Как видно, TrainX представляет собой трехмерный массив, в котором Time_steps и Feature являются последними двумя измерениями соответственно (3 и 1 в этом конкретном коде). Глядя на изображение ниже, означает ли это, что мы рассматриваем случай «многие к одному», где количество розовых прямоугольников равно 3? Или это означает, что длина цепочки равна 3 (?.
Изображение

Стает ли аргумент особенностей актуальным, когда мы рассматриваем многомерные ряды, например, одновременное моделирование двух финансовых акций?
LSTM с отслеживанием состояния
Означают ли LSTM с отслеживанием состояния? мы сохраняем значения памяти ячеек между запусками пакетов? Если это так, пакет_size равен единице, и память сбрасывается между запусками обучения, так какой смысл говорить, что это было с отслеживанием состояния, я думаю? это связано с тем, что данные обучения не перемешиваются, но я не знаю, как это сделать.
Есть мысли?
Ссылка на изображение: http://karpathy.github.io/2015/05/21/rnn-efficientness/
Редактировать 1:
Немного запутался в @ комментарий Вана о равенстве красных и зеленых полей. Соответствуют ли следующие вызовы API развернутым диаграммам? Особенно обращая внимание на вторую диаграмму (?

Код: Выделить всё

batch_size
был выбран произвольно.):
Изображение
Изображение

Изменить 2:
Для людей, которые прошли курс глубокого обучения Udacity и не понимают аргумента time_step, посмотрите следующее обсуждение: https://discussions.udacity.com/t/rnn-l ... ion/163169
Обновление:
Оказывается, model.add(TimeDistributed(Dense(vocab_len))) — это то, что я искал. Вот пример: https://github.com/sachinruk/ShakespeareBot
Update2:
Здесь я суммировал большую часть своего понимания LSTM. :

Подробнее здесь: https://stackoverflow.com/questions/387 ... ries-lstms
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»