本文已参与「新人创作礼」活动,一起开启掘金创作之路。
简要概括:对每层的激活函数都进行标准化。可以对z [ l ] z^{[l]} z [ l ] 或者a [ l ] a^{[l]} a [ l ] 进行标准化,其中前者更常见。
1. Batch normalization原理
对于神经网络中的某些中间值z [ l ] ( i ) , i = 1 , 2 , ⋯ , m z^{[l](i)},i=1,2,\cdots,m z [ l ] ( i ) , i = 1 , 2 , ⋯ , m (下面省略l l l ),进行下列的一系列运算:
μ = 1 m ∑ z ( i ) σ 2 = 1 m ∑ ( z ( i ) − μ ) 2 z n o r m ( i ) = z ( i ) − μ σ 2 + ϵ z ~ ( i ) = γ z n o r m ( i ) + β (1-1) \begin{aligned}
\mu&=\frac{1}{m}\sum z^{(i)}\\
\sigma ^{2}&=\frac{1}{m}\sum (z^{(i)}-\mu)^2\\
z_{norm}^{(i)}&=\frac{z^{(i)}-\mu}{\sqrt{\sigma^2+\epsilon}}\\
\tilde z^{(i)}&=\gamma z_{norm}^{(i)}+\beta\\
\tag{1-1}
\end{aligned} μ σ 2 z n or m ( i ) z ~ ( i ) = m 1 ∑ z ( i ) = m 1 ∑ ( z ( i ) − μ ) 2 = σ 2 + ϵ z ( i ) − μ = γ z n or m ( i ) + β ( 1-1 )
其中γ \gamma γ 和β \beta β 可以通过学习得到。
2. 在多层神经网络中的具体操作
实际操作时,对每个mini-batch进行batch-normalization。b [ l ] b^{[l]} b [ l ] 可以设置为零,因为不论它为多少,在batch-normalization时都会被减去。
z [ l ] = w [ l ] a [ l − 1 ] z n o r m [ l ] = z [ l ] − μ σ 2 + ϵ z ~ [ l ] = γ z n o r m [ l ] + β [ l ] (2-1) \begin{aligned}
z^{[l]}&=w^{[l]}a^{[l-1]}\\
z_{norm}^{[l]}&=\frac{z^{[l]}-\mu}{\sqrt{\sigma^2+\epsilon}}\\
\tilde z^{[l]}&=\gamma z_{norm}^{[l]}+\beta^{[l]}\\
\tag{2-1}
\end{aligned} z [ l ] z n or m [ l ] z ~ [ l ] = w [ l ] a [ l − 1 ] = σ 2 + ϵ z [ l ] − μ = γ z n or m [ l ] + β [ l ] ( 2-1 )
for t=1...numMiniBatches
compute forward prop on X { t } X^{\{t\}} X { t }
in each hidden layer, use BN to replace z [ l ] z^{[l]} z [ l ] with z ~ [ l ] \tilde z^{[l]} z ~ [ l ]
use backprop to compute d w [ l ] , d b [ l ] , d β [ l ] , d γ [ l ] dw^{[l]},db^{[l]},d\beta^{[l]},d\gamma^{[l]} d w [ l ] , d b [ l ] , d β [ l ] , d γ [ l ]
update parameters(梯度下降方法及其各种改进)
3. Batch normalization有效的原因
类似于对输入层进行标准化的作用,可以加速学习过程。
使得后面的网络层更具有鲁棒性,当前面的网络层变化时,后面的网络层的均值和方差不变。换句话讲,减少了前面层参数和后面层参数之间的耦合
有轻微的正则化效果,因为采用了mini-batch的方法,均值和方差是在mini-batch上计算的而不是整个训练集,所以均值和方差中具有噪声,导致z ~ \tilde z z ~ 具有噪声。这个dropout有异曲同工之妙。
4. 测试时的处理手段
训练时,均值和方差是针对一个mini-batch来求的,但是测试的时候往往是一个一个样本进行的。
解决方法,利用指数加权平均的方法,对训练集上的各个mini-batch进行指数加权平均,用来估计测试样本的隐藏层的均值和方差