【深度学习基础】Batch Normalization

Internal Covariate Shift

1. 概念

The distribution of each layer’s inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful parameter initialization, and makes it notoriously hard to train models with saturating nonlinearities.
每层输入的分布在训练过程中会发生变化,因为前面的层的参数会发生变化。通过要求较低的学习率和仔细的参数初始化减慢了训练,并且使具有饱和非线性的模型训练起来非常困难。我们将这种现象称为内部协变量转移。

We refer to the change in the distributions of internal nodes of a deep network, in the course of training, as Internal Covariate Shift.
我们把训练过程中深度网络内部结点的分布变化称为内部协变量转移。

需要提醒的是,Internal Covariate Shift != Covariate Shift.
下图是原论文中的解释。
在这里插入图片描述

2. 白化(whitening)

如果对网络的输入进行白化(whitening),网络训练状态会收敛的更快——即输入线性变换为具有零均值和单位方差,并去相关。
当每一层观察下面的层产生的输入时,实现每一层输入进行相同的白化将是有利的。通过白化每一层的输入,采取措施实现输入的固定分布,可以消除内部协变量转移的不良影响。
白化的劣势在于:

However, if these modifications are interspersed with the optimization steps, then the gradient descent step may attempt to update the parameters in a way that requires the normalization to be updated, which reduces the effect of the gradient step.
白化的计算量太大,并且白化不是处处可微的。所以在DL中,其实很少用到白化。

近似白化预处理公式:
x ^ ( k ) = x ( k ) − E [ x ( k ) ] V a r [ x ( k ) ] \hat x^{(k)} = \frac{x^{(k)} - E[x^{(k)}]}{\sqrt{Var[x^{(k)}]}} x^(k)=Var[x(k)] x(k)E[x(k)]
其中 E ( x ( k ) ) E(x^{(k)}) E(x(k))指的是每一批数据神经元 x ( k ) x^{(k)} x(k)的平均值,然后分母就是每一批数据神经元 x ( k ) x^{(k)} x(k)激活度的一个标准差。

Batch Normalization

1. 解释

如果仅仅使用白化的归一化公式,对网络某一层A的输出做归一化,然后输入到下一层网络B,会影响到网络A所学习到的特征。BN采用了两个步骤进行简化。
第一步是,变换重构,引入了可学习参数 γ \gamma γ β \beta β
y ( k ) = γ ( k ) ∗ x ^ ( k ) + β ( k ) y^{(k)} = \gamma^{(k)} * \hat x^{(k)} + \beta^{(k)} y(k)=γ(k)x^(k)+β(k)
第二步是,在计算均值和方差的时候,使用每一个mini-batch的数据进行计算。
所以BN的前项传导算法就是:
在这里插入图片描述

2. 可视化

传统的神经网络,只是在将样本x输入输入层之前对x进行标准化处理(减均值,除标准差),以降低样本间的差异性。BN是在此基础上,不仅仅只对输入层的输入数据x进行标准化,还对每个隐藏层的输入进行标准化。
在这里插入图片描述

3. 原论文

原论文中的解释是:
step 1.
在这里插入图片描述
step 2.
在这里插入图片描述
总表示:
在这里插入图片描述

超参调试

相较于机器学习中的定步长搜索。在深度学习中,随机选择点进行计算比较超参数设定值的好坏。
在这里插入图片描述
如果找到部分点效果很好,那么放大该区域,接着进行随机选点计算比较。例如下图所示。
在这里插入图片描述

softmax分类

最后输出的所有类的概率总和为1。
具体计算过程:
在这里插入图片描述

参考

  1. 原论文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
  2. Batch Normalization论文翻译——中英文对照
  3. 深度学习(二十九)Batch Normalization 学习笔记
  4. 【深度学习】深入理解Batch Normalization批标准化
  5. 深度学习中的Batch Normalization
  6. 优化深度神经网络(三)Batch Normalization
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值