Что означает «Количество единиц в ячейке LSTM»?


19

Из кода Tensorflow : Tensorflow. RnnCell.

num_units: int, The number of units in the LSTM cell.

Не могу понять, что это значит. Каковы единицы измерения ячейки LSTM. Вход, выход и забыть ворота? Означает ли это «количество единиц в текущем проекционном слое для Deep LSTM». Тогда почему это называется «количество единиц в ячейке LSTM»? Что такое ячейка LSTM и чем отличается блок от блока LSTM, какова минимальная единица LSTM, если не ячейка?



Если слой содержит несколько параллельных модулей LSTM, как он обрабатывает ввод x? случай 1: h (1) = f (x) h (t) = f (h (t-1), x) h (t + 1) = f (h (t), x) случай 2: h (1) ) = f (x) h (t) = h (t-1) Возможно, есть другой случай, например, ResNet.
user1908842

Ответы:


10

Как говорят полезные комментарии в этой функции,

Определение ячейки в этом пакете отличается от определения, используемого в литературе. В литературе под ячейкой понимается объект с единственным скалярным выходом. Определение в этом пакете относится к горизонтальному массиву таких единиц.

По сути, слой будет содержать несколько параллельных модулей LSTM, структурно идентичных, но каждый в конечном итоге «учится запоминать» что-то свое.


1
Спасибо :) Этот комментарий был добавлен 7 дней назад, после этого вопроса. После некоторых поисков я спросил команду Tensorflow в группе Google, почему они определяют ячейку LSTM отличается от литературной ячейки LSTM ... и они добавили этот комментарий :)
Brans Ds

7

Большинство диаграмм LSTM / RNN показывают только скрытые ячейки, но не единицы этих ячеек. Отсюда и путаница. Каждый скрытый слой имеет скрытые ячейки, столько же, сколько и количество временных шагов. Кроме того, каждая скрытая ячейка состоит из нескольких скрытых элементов, как показано на схеме ниже. Следовательно, размерность матрицы скрытого слоя в RNN равна (количество временных шагов, количество скрытых единиц).

введите описание изображения здесь


1

В Keras, который находится поверх TensorFlow или Theano, при вызове model.add(LSTM(num_units))num_units - это размерность выходного пространства ( отсюда , строка 863). Для меня это означает num_unitsколичество скрытых юнитов, чьи активации отправляются на следующий шаг времени.


0

Количество блоков в RNN - это количество блоков памяти RNN к каждому входу последовательности в вертикальном порядке, прикрепленных друг к другу, и каждый из них передает отфильтрованную информацию в следующие блоки памяти.

Помните, что эта концепция была вдохновлена ​​концепцией компьютерной науки о распределении памяти между различными единицами измерения размера бит.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.