Количество параметров в модели LSTM

43

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

Wabbit
источник

Ответы:

29

LSTM имеет набор из 2 матриц: U и W для каждого из (3) вентилей. (.) На диаграмме указывает умножение этих матриц на вход x и выход h .

  • U имеет размеры n×m
  • W имеет размеры n×n
  • есть другой набор этих матриц для каждого из трех ворот (например , Uforget для забыть ворот и т.д.)
  • существует другой набор этих матриц для обновления состояния ячейки S
  • поверх упомянутых матриц нужно посчитать уклоны (не на картинке)

Следовательно, общее количество параметров = 4(nm+n2+n)

LSTM абстрактный блок

wabbit
источник
2
Я сам столкнулся с этим вопросом, когда принимал практические решения по оценке требований к оборудованию и планированию проекта для проекта глубокого обучения. PS: я не ответил на свой вопрос, чтобы просто заработать очки репутации. Я хочу знать, правильный ли мой ответ от сообщества.
wabbit
1
Вы проигнорировали единицы смещения. Смотрите ответ Адама Удада ниже.
Арун
1
Уклонов там нет. Я отредактировал ответ.
Escachator
21

mn

4(nm+n2)

Однако, если ваш LSTM включает векторы смещения ( это значение по умолчанию в кератах, например ), число становится:

4(nm+n2+n)
Адам Удад
источник
2
Это единственный полный ответ. Любой другой ответ представляется содержательным, чтобы игнорировать случай смещения нейронов.
Восстановите Монику
1
Чтобы привести конкретный пример, если ваш вход имеет размеры m = 25 и вы используете слой LSTM с n = 100 единицами, то число параметров = 4 * (100 * 25 + 100 ** 2 + 100) = 50400.
arun
1
Предположим, я использую данные временного шага, верно ли мое понимание ниже? n = 100: значит, у меня будет 100 шагов в каждом образце (пример), поэтому мне нужно 100 единиц. m = 25 означает на каждом временном шаге, у меня есть 25 функций, таких как [вес, рост, возраст ...].
Джейсон Чжан
2
@jasonzhang Количество временных шагов не имеет значения, поскольку одна и та же ячейка LSTM будет рекурсивно применяться к вашим входным векторам (по одному вектору для каждого временного шага). Арун, называемый «единицами измерения», также является размером каждого выходного вектора, а не числом временных шагов.
Адам Удад
12

Согласно этому :

Структура клеток LSTM

Структура клеток LSTM

Уравнения LSTM

Уравнения LSTM

Укоренившиеся нелинейности

Укоренившиеся нелинейности

Если вход x_t имеет размер n × 1 и имеется d ячеек памяти, то размер каждого из W ∗ и U ∗ равен d × n и d × d соответственно. Размер W будет равен 4d × (n + d) . Обратите внимание, что каждая из ячеек памяти dd имеет свои собственные веса W ∗ и U ∗ , и что единственные значения времени ячейки памяти делятся с другими модулями LSTM во время произведения с U ∗ .

Спасибо Арун Малля за отличную презентацию.

ichernob
источник