2022年11月14日 Batch Normalization

What Is Batch Norm?

Batch Normalization(批标准化)的动机是“内部协变量偏移”,解决梯度消失梯度爆炸问题,其本质上就是做特征缩放,将分散的数据做一个统一,让机器学习更容易找到数据之中的规律。

  1. 数据预处理的方式对最终结果有很大影响(例如:标准化输入特征:均值为0,方差为1)
  2. 随着模型的训练层次加深(输入层→输出层),变量分布的不规则偏移可能会阻碍网络的收敛。
  3. 训练深层网络容易过拟合
批量标准化(BN)使我们能够选择更高的学习率,从而更快地收敛损失函数,同时可减少对dropout的需求。

                                          Source: https://www.jeremyjordan.me/batch-normalization/

How to do batch normalization?

 注意:

  1. 标准化是逐批训练的
  2. γ,β是训练过程出来的,是要学习的参数
  3. B:小批量
  4. ε(ε > 0):确保在做归一化时除数永远不等于零
  5. μB(样本均值)σB(样本标准差)是从数据中计算得到的

Internal Covariate Shift(协变量偏移)

需要较低的学习率和合理的参数初始化来减慢训练速度,并且使得训练具有饱和非线性的模型变得非常困难。换句话说就是数据分布对训练产生了影响。例:

Results

Figure 1

  •  (a) 使用和不使用 Batch Normalization 训练的 MNIST 网络的测试准确度与训练步骤的数量。 Batch Normalization 有助于网络更快地训练并获得更高的准确度。
  • (b, c) 在训练过程中输入分布到典型 sigmoid 的演变,显示为第 {15, 50, 85} 个百分位数。 Batch Normalization 使分布更加稳定,并减少了内部协变量偏移。

Figure 2

 

Inception及其批量标准化变体的验证准确度训练步骤数的关系。

Figure 3

  对于 Inception 和批量归一化变体,达到 Inception 的最大准确度 (72.2%) 所需的训练步骤数,以及网络达到的最大准确度。

References

  1. https://www.bilibili.com/h5/note-app/view?cvid=15375138&pagefrom=comment
  2. https://zhuanlan.zhihu.com/p/24810318
  3. https://ithelp.ithome.com.tw/articles/10241052
  4. https://arxiv.org/pdf/1502.03167.pdf


posted @ 2022-11-15 01:05  Kruskal  阅读(12)  评论(0编辑  收藏  举报