LSTM模型中的参数数量


43

一个堆叠的LSTM有几个参数?参数的数量对所需的训练示例的数量施加了下限,并且还影响训练时间。因此,了解参数数量对于使用LSTM训练模型很有用。

Answers:


29

LSTM有一组2个矩阵:(3)门中的每一个的U和W。图中的(。)表示这些矩阵与输入x和输出h乘积。

  • U的尺寸为n×m
  • W的尺寸为n×n
  • 对于三个门中的每一个,都有不同的一组这些矩阵(例如,对于遗忘门来说是Uforget等)。
  • 这些矩阵还有另一组用于更新单元状态S
  • 在上述矩阵的上方,您需要计算偏差(不在图中)

因此,总共#个参数= 4(nm+n2+n)

LSTM抽象块


2
在为评估深度学习项目的硬件需求和项目计划做出实际决策时,我自己遇到了这个问题。PS:我没有回答自己的问题只是为了获得声望。我想知道我的答案是否正确
wabbit

1
您已经忽略了偏差单位。请参阅下面的亚当·乌达(Adam Oudad)的答案。
阿伦

1
偏见不存在。我已经编辑了答案。
Escachator

21

mn

4(nm+n2)

但是,如果您的LSTM包含偏差矢量(例如这是keras中的默认值),则数字变为:

4(nm+n2+n)

2
这是唯一完整的答案。每隔一个答案都会满足于忽略偏见神经元的情况。
恢复莫妮卡

1
为了给出一个具体的例子,如果输入具有m = 25点的尺寸和使用的LSTM层,其中n = 100个单位,那么数则params的= 4 *(100 * 25 + 100 ** 2 + 100)= 50400
阿伦

1
假设我使用时间步长数据,下面的理解是否正确?n = 100:意味着每个样本(示例)中我将有100个时间步长,所以我需要100个单位。m = 25表示每个时间步长,我有25个特征,例如[体重,身高,年龄...]。
杰森·张

2
@jasonzhang时间步的数量无关紧要,因为相同的LSTM单元将递归地应用于您的输入向量(每个时间步一个向量)。所谓的“单位”也就是每个输出向量的大小,而不是时间步长的数量。
亚当·乌达

12

根据

LSTM细胞结构

LSTM细胞结构

LSTM方程

LSTM方程

增强非线性

增强非线性

如果输入x_t的大小为n×1,并且有d个存储单元,则W ∗U ∗的大小分别为d×nd×dW的大小将是4d×(n + d)。请注意,每个dd存储器单元都有自己的权重W *U *,并且与其他LSTM单位共享存储器单元值的唯一时间是在与U *乘积期间。

感谢Arun Mallya的精彩演讲。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.