MLP与RNN的参数共享对比(含数值例子)
什么是权重共享?
权重共享是指在神经网络的重复结构中使用同一组参数(权重)进行计算,而非为每个位置单独学习一组新参数。这种机制在RNN中尤为重大,可显著减少参数量,提高模型效率。

RNN vs MLP
神经网络参数计算与对比
输入设置
- 句子:我喜爱读书(4个词)
- 词向量维度:5
- 隐藏层神经元:6
MLP(权重不共享)
网络结构
- 输入层:将句子“[我, 喜爱, 读, 书]”展平成 4×5=20维向量。
- 隐藏层:6个神经元。
- 输出层:假设输出1个值(如情感分类)。
参数计算
- 输入到隐藏层: 权重:20×6=120 偏置:6 总计:120+6=126个参数
- 隐藏层到输出层: 权重:6×1=6 偏置:1 总计:6+1=7个参数
MLP总参数:126+7=133个参数
RNN(权重共享)
网络结构
- 时间步1:输入“我”(5维)→隐藏状态h1(6维)
- 时间步2:输入“喜爱”(5维)+h1→隐藏状态h2(6维)
- 时间步3:输入“读”(5维)+h2→隐藏状态h3(6维)
- 时间步4:输入“书”(5维)+h3→隐藏状态h4(6维)
参数计算
- 输入到隐藏层权重:5×6=30个参数
- 隐藏层循环权重:6×6=36个参数
- 隐藏层偏置:6个参数
- 输出层权重:6×1=6个参数
- 输出层偏置:1个参数
RNN总参数:30+36+6+6+1=79个参数
对比结果
模型参数数量差异
- MLP:133个参数,需将序列展平,参数随输入长度增长。
- RNN:79个参数,通过权重共享,参数量固定。
序列长度影响
- MLP:若句子增至8个词,参数变为8×5×6+6+7=253个参数。
- RNN:无论8个词或100个词,参数始终为79个参数。
参数效率
- RNN:通过权重共享实现更高效率。
- MLP:需为每个位置分配独立参数,效率较低。
实际应用
- MLP:需固定序列长度(填充或截断)。
- RNN:可自然处理任意长度序列。
权重共享示意图

实例RNN与MLP对比图
在RNN中,同一权重矩阵(如)在每个时间步重复使用:
- 时间步1:输入(“我”),使用计算隐藏状态。
- 时间步2:输入(“喜爱”),仍使用一样的。
- 时间步3、4:依此类推,均复用。
|
时间步 |
输入向量 |
使用的权重矩阵 |
|
t=1 |
||
|
t=2 |
||
|
t=3 |
||
|
t=4 |
结论
RNN通过权重共享以更少的参数(79 vs 133)处理任意长度序列,适合序列数据建模,而MLP因参数随长度增长,效率较低。
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END























暂无评论内容