Значение скрытого состояния в Keras LSTM - PullRequest
0 голосов
/ 10 октября 2018

Поскольку я новичок в глубоком изучении, этот вопрос может быть забавным для вас.но я не мог представить это в уме.Вот почему я спрашиваю об этом.

Я даю предложение в качестве вектора к LSTM. Думаю, у меня есть предложение, содержащее 10 слов.Затем я заменяю эти предложения на векторы и передаю их в LSTM.

Длина ячеек LSTM должна быть 10. Но в большинстве уроков я видел, что они добавили 128 скрытых состояний.Я не мог понять и визуализировать это.Что это слово означает под слоем LSTM с "128-dimensional hidden state"

, например:

X = LSTM(128, return_sequences=True)(embeddings)

Суть этого выглядит

lstm_1 (LSTM)                (None, 10, 128)           91648    

Здесь это выглядит как 10 LSTMячейки добавляются, но почему там 128 скрытых состояний?Надеюсь, вы понимаете, что я ожидаю.

1 Ответ

0 голосов
/ 10 октября 2018

Краткий ответ: Если вы более знакомы с сверточными сетями, вы можете увеличить размер слоя LSTM (128), эквивалентный размеру сверточного слоя.Только 10 означает, что размер вашего ввода (длина вашей последовательности равен 10)

Более длинный ответ: Изображение взято из этой прекрасной статьи о RNNs ,Я рекомендую для более подробного объяснения.

На левом изображении слой LSTM представлен как (xt) как вход с выходом (ht).Стрелка обратной связи показывает, что внутри ячейки есть какая-то память.

На практике в Керасе (правое изображение) эта модель «развернута», чтобы дать весь входной сигнал xt параллельно нашему слою.

Таким образом, если ваше резюме: lstm_1 (LSTM) (None, 10, 128) 91648
Это означает, что ваша входная последовательность равна 10 (x0,x1,x2,...,x9), а размер вашего LSTM равен 128(128 будет размерность вашего вывода ht)

enter image description here

...