Batch Normalization 和 Batch Renormalization 前向和反向公式详细推导
文章目录
- Batch Normalization 和 Batch Renormalization 前向和反向公式详细推导
- 一、BN前向传播
- 二、BN的反向传播
- 三、Batch Renormalization
- 1、前向
- 2、反向
- 三、卷积网络中的BN
一、BN前向传播
根据论文‘’Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift" 的推导过程,主要有下面四个公式:
以MLP为例,假设输入的mini-batch样本数为,则此处的
是第
个样本对应的某一层激活值中的一个激活值。也就是说,假设输入
个样本作为一次训练,其中第
个样本输入网络后,在
层得到了
个激活单元,则
代表其中任意一个激活单元。事实上应该写为
更为直观。
所以BN实际上就是对第层的第
个激活单元
求其在一个batch中的平均值和方差,并对其进行标准归一化,得到
,可知归一化后的m个激活单元均值为0方差为1,一定程度上消除了Internal Covariate Shift,减少了网络的各层激活值在训练样本上的边缘分布的变化。
二、BN的反向传播
- 设前一层的梯度为
.
- 需要计算
由链式法则以及公式\eqref{4}:
由于对于所有均有贡献,因此一个batch的训练中将
定义为:
同样有:
另外,求过程则较为复杂。根据链式法则,以及公式KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{3},将
视为
有:
而因为公式KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{2}可知上式括号中的第二项求偏导可以进一步拆分。(将视为
)
注意公式KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{9}中的两个代表不同的含义。由公式KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{8},\eqref{9}可知,只要求出
.即可求出
.
原论文中将公式KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{8}拆分成如下几项:
其中:
最终BN的反向过程由公式KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{6},\eqref{7},\…给出。
三、Batch Renormalization
参照论文—— Batch Renormalization: Towards Reducing Minibatch Dependence
in Batch-Normalized Models
Batch Renormalization是对传统BN的优化,该方法保证了train和inference阶段的等效性,解决了非独立同分布和小minibatch的问题。
1、前向
跟原来的公式类似,添加了两个非训练参数:
Update moving averages:
Inference:
相比于之前的BN只在训练时计算滑动均值与方差,推断时才使用他们;BRN在训练和推断时都用到了滑动均值与方差。
2、反向
反向的推导与BN类似,
三、卷积网络中的BN
上面的推导过程都是基于MLP的。对于卷积网络而言,BN过程中的m个激活单元被推广为m幅特征图像。 假设某一层卷积后的feature map是的张量,其中N表示batch数目,H,W分别表示长和宽,C表示特征通道数。则对卷积网络的BN操作时,令
,也就是说将第
个batch内某一通道
上的任意一个特征图像素点视为
,套用上面的BN公式即可。所以对于卷积网络来说,中间激活层每个通道都对应一组BN参数
.