【问题标题】:batch normalization in neural network神经网络中的批量归一化
【发布时间】:2015-07-10 20:03:08
【问题描述】:

我对 ANN 还是很陌生,我只是在阅读批量标准化论文 (http://arxiv.org/pdf/1502.03167.pdf),但我不确定我是否了解他们在做什么(更重要的是,为什么它有效)

假设我有两层 L1 和 L2,其中 L1 产生输出并将它们发送到 L2 中的神经元。批量归一化只取 L1 的所有输出(即每个神经元的每个输出,得到一个全连接网络的|L1| X |L2| 数字的整体向量),将它们归一化为平均值为 0 和 SD 为 1,然后将它们喂给 L2 中各自的神经元(加上他们在论文中讨论的 gamma 和 beta 的线性变换)?

如果确实如此,这对 NN 有何帮助?常数分布有什么特别之处?

【问题讨论】:

    标签: machine-learning neural-network normalization


    【解决方案1】:

    在网络的标准 SGD 训练期间,输入到隐藏层的分布会发生变化,因为它之前的隐藏层也在不断变化。这被称为协变量偏移,可能是一个问题;例如,参见here

    众所周知,如果训练数据被“白化”,即以每个分量具有高斯分布并且独立于其他分量的方式进行变换,神经网络的收敛速度会更快。参见论文中引用的论文 (LeCun et al., 1998b) 和 (Wiesler & Ney, 2011)。

    作者的想法是现在不仅将这种白化应用于输入层,还应用于每个中间层的输入。在整个输入数据集上执行此操作太昂贵了,因此他们改为批量执行。他们声称这可以大大加快训练过程,也可以作为一种正则化。

    【讨论】:

      猜你喜欢
      • 2013-11-19
      • 1970-01-01
      • 2018-09-10
      • 2017-12-20
      • 2014-01-01
      • 1970-01-01
      • 2014-08-17
      • 2014-02-03
      • 2018-10-17
      相关资源
      最近更新 更多