论文:Layer Normalization、Recurrent Batch Normalization (2016) 和 Batch Normalized RNN (2015) 有什么区别?

数据挖掘 深度学习 rnn 正常化 批量标准化
2021-10-13 21:19:45

所以,最近有一篇Layer Normalization论文。在 Keras上也有一个实现。

但我记得有论文题为Recurrent Batch Normalization (Cooijmans, 2016) 和Batch Normalized Recurrent Neural Networks (Laurent, 2015)。这三个有什么区别?

有这个相关工作部分我不明白:

批量归一化先前已扩展到循环神经网络 [Laurent 等人,2015,Amodei 等人,2015,Cooijmans 等人,2016]。之前的工作 [Cooijmans et al., 2016] 表明,通过为每个时间步保持独立的归一化统计信息,可以获得循环批量归一化的最佳性能。作者表明,将循环批归一化层中的增益参数初始化为 0.1 会对模型的最终性能产生显着影响。我们的工作也与体重标准化有关 [Salimans and Kingma, 2016]。在权重归一化中,代替方差,输入权重的 L2 范数用于归一化神经元的总和输入. 使用预期统计量应用权重归一化或批量归一化等效于对原始前馈神经网络进行不同的参数化。在 Pathnormalized SGD [Neyshabur et al., 2015] 中研究了 ReLU 网络中的重新参数化。然而,我们提出的层归一化方法不是对原始神经网络的重新参数化。因此,层归一化模型与其他方法具有不同的不变性,我们将在下一节中研究

1个回答
  • 层标准化Ba 2016):不使用批量统计。使用从当前样本层内的所有单元收集的统计数据进行标准化。不适用于 ConvNets。

  • Recurrent Batch Normalization (BN)Cooijmans,2016 年;也由Qianli Liao 和 Tomaso Poggio同时提出,但在 Recurrent ConvNets 上进行测试,而不是 RNN/LSTM):与批标准化相同。对每个时间步使用不同的归一化统计。您需要为每个时间步存储一组平均值和标准差。

  • Batch Normalized Recurrent Neural Networks ( Laurent, 2015 ):batch normalization 仅应用于输入和隐藏状态之间,而不是隐藏状态之间。即,标准化不会随着时间的推移而应用。

  • Streaming Normalization ( Liao et al. 2016 ):它总结了现有的规范化并克服了上面提到的大多数问题。它适用于 ConvNets、循环学习和在线学习(即,小批量或一次一个样本):

  • 权重归一化Salimans and Kingma 2016):每当使用权重时,将其除以L2 范数优先,这样得到的权重有 L2 规范 1. 也就是输出y=x(w/|w|), 在哪里 xw分别表示输入和权重。标量比例因子g 然后乘以输出 y=yg. 但以我的经验g 似乎对性能不是必需的(下游可学习层也可以学习这一点)。

  • 余弦归一化Luo et al. 2017):权重归一化与余弦归一化非常相似,其中相同L2 归一化应用于权重和输入: y=(x/|x|)(w/|w|). 同样,手动或自动微分可以计算适当的梯度xw.

请注意,权余弦归一化在 2000 年代已被广泛使用(称为归一化点积)在称为 HMAX (Riesenhuber 1999) 的一类 ConvNet 中来模拟生物视觉。你可能会觉得它们很有趣。

参考:HMAX 模型参考

参考:皮层网络模拟器参考

参考:余弦归一化:在神经网络中使用余弦相似度而不是点积,罗春杰,詹建峰,王磊,杨强