深度学习——正则化(Normalization)简介
作者:互联网
深度学习——Batch Norm
文章目录
前言:为什么要正则化
关于这个问题,举一个生活上的例子。我们知道在工业生产的时候,只有标准化的,流水线的生产方式,效率才是高的。一个流水线上生产的产品,几乎都是一模一样的。为什么要这样?因为这样生产效率高。如果一个流水线上一会儿生产特斯拉,一会儿又生产法拉利,那么这个流水线光折腾不同的零件就够让人折腾了,谈何加快效率?
在神经网络当中也是这样子,如果所有层的输入数据都是同分布的,那么就像一条流水线生产同一种东西那样,效率就会很高。但实际上,经过每一层的运算之后,输出的数据都会有所不同,这些不同的数据也会处在不同的范围之内,范围不同,进一步导致分布的不同,那就没有什么“标准化”可言了。在这种情况下,我们就需要正则化。将各个层的输入数据都统一在同一个范围和分布上,以达到“标准化”。进而增加训练效率。
在神经网络当中,由于有很多Hidden Layer,因此正则化的过程会比较复杂。这当中最为常用的是Batch Norm(简称:BN),除了Batch Norm,还有Layer Norm, Instance Norm,Group Norm等等
一.单一神经元的正则化
我们假设有这么一个但神经元:
我们把输入值x1, x2, x3 统称为X,那么对于输入值的正则化,按照下面步骤进行(不难):
- step1:计算输入值的平均值
μ = 1 m ∑ i = 1 m x i \mu = \frac{1}{m}\sum_{i=1}^{m} x_{i} μ=m1i=1∑mxi - step2:计算方差
σ 2 = 1 m ∑ i = 1 m ( x i − μ ) 2 \sigma^2 = \frac{1}{m}\sum_{i=1}^{m}(x_{i}-\mu)^2 σ2=m1i=1∑m(xi−μ)2 - step3:正则化
x = x σ 2 x = \frac{x}{\sigma^2} x=σ2x
但是,神经网络的结构远远不是单神经元,这个时候,我们就需要对上面这个步骤进行拓展,也就是Batch Norm。
二. Batch Norm
我们假设,有如下这样子的神经网络:
对于每一层,都会首先计算出一个线性方程Zi,然后,这个线性方程代入到激活函数当中(甭管是Simoid,还是ReLu等),计算出一个全新的输出值。Batch Norm其实就是对各个线性方程的输出结果Zi进行运算:
首先,给定Z1, Z2, Z3, ……, Zm
- step1:计算z的平均值
μ = 1 m ∑ i = 1 m z i \mu = \frac{1}{m}\sum_{i=1}^{m} z_{i} μ=m1i=1∑mzi - step2:计算z的方差
σ 2 = 1 m ∑ i = 1 m ( z i − μ ) 2 \sigma^2 = \frac{1}{m}\sum_{i=1}^{m}(z_{i}-\mu)^2 σ2=m1i=1∑m(zi−μ)2 - step3:正则化
z n o r m ( i ) = z i − μ σ 2 + ϵ z_{norm}^{(i)} = \frac{z_{i}-\mu}{\sqrt{\sigma^2+\epsilon}} znorm(i)=σ2+ϵ zi−μ
其中epsilon是为了防止方差为0的情况 - step4
z i ~ = γ z n o r m ( i ) + β \tilde{z^{i}} = \gamma z_{norm}^{(i)} + \beta zi~=γznorm(i)+β
这当中,gamma和beta都是学习参数,可以手动指定。当然你也可以参考梯度下降改进的方式,用Adam之类的方式来处理。
值得一提的是,当:
γ = σ 2 + ϵ , β = μ \gamma = \sqrt{\sigma^2 + \epsilon}, \beta = \mu γ=σ2+ϵ ,β=μ
的时候,当我们把这个代入step3的式子时候会发现:
z i ~ = z n o r m ( i ) \tilde{z^{i}} = z_{norm}^{(i)} zi~=znorm(i)
那么,换到整个神经网络当中,我们每一层Hidden Layer都进行上述计算,那么最后就会完成Batch Norm.
如果,我们用Mini-Batch的方法来进行相关运算,那么伪代码如下:
for t=1,2,3,……,number_of_mini-batch:
前向运算:
每一个Hidden Layer,都运用Batch Norm进行计算,来替代原本的z值(运算过程如step1~step4所示)
使用反向传播,计算对w,beta,gama的偏导,然后更新参数
标签:frac,zi,简介,Batch,mu,正则,Normalization,Norm 来源: https://blog.csdn.net/johnny_love_1968/article/details/117921280