Batch Normalization算法

目录

 

Batch Normalization算法

Batch Normalization的评估


Batch Normalization算法

Batch Normalization(下文简称 Batch Norm)是 2015 年提出的方法。Batch Norm虽然是一个问世不久的新方法,但已经被很多研究人员和技术
人员广泛使用。实际上,看一下机器学习竞赛的结果,就会发现很多通过使用这个方法而获得优异结果的例子。
 

为什么Batch Norm这么惹人注目呢?因为Batch Norm有以下优点。


• 可以使学习快速进行(可以增大学习率)。
• 不那么依赖初始值(对于初始值不用那么神经质)。
• 抑制过拟合(降低Dropout等的必要性)。

考虑到深度学习要花费很多时间,第一个优点令人非常开心。另外,后两点也可以帮我们消除深度学习的学习中的很多烦恼。
如前所述, Batch Norm的思路是调整各层的激活值分布使其拥有适当的广度。为此,要向神经网络中插入对数据分布进行正规化的层,即BatchNormalization层(下文简称Batch Norm层),如下图所示

Batch Norm,顾名思义,以进行学习时的mini-batch为单位,按minibatch进行正规化。具体而言,就是进行使数据分布的均值为0、方差为1的正规化。用数学式表示的话,如下所示。

这里对mini-batch的m个输入数据的集合B = {x1, x2, . . . , xm}求均值µB和方差 。然后,对输入数据进行均值为0、方差为1(合适的分布)的正规化。式(6.7)中的ε是一个微小值(比如, 10e-7等),它是为了防止出现除以0的情况。

将mini-batch的输入数据{x1, x2, . . . , xm}变换为均值为0、方差为1的数据通过将这个处理插入到激活函数的前面(或者后面),可以减小数据分布的偏向。
接着, Batch Norm层会对正规化后的数据进行缩放和平移的变换,用数学式可以如下表示。

这里, γ和β是参数。一开始γ = 1, β = 0,然后再通过学习调整到合适的值。
上面就是Batch Norm的算法。这个算法是神经网络上的正向传播。如果使用第5章介绍的计算图, Batch Norm可以表示为下图

Batch Normalization的评估

现在我们使用Batch Norm层进行实验,实验效果如下图

使用Batch Norm后,学习进行得更快了。接着,给予不同的初始值尺度,观察学习的过程如何变化。

我们发现,几乎所有的情况下都是使用Batch Norm时学习进行得更快。同时也可以发现,实际上,在不使用Batch Norm的情况下,如果不赋予一个尺度好的初始值,学习将完全无法进行。
综上,通过使用Batch Norm,可以推动学习的进行。并且,对权重初始值变得健壮(“对初始值健壮”表示不那么依赖初始值)。 Batch Norm具备了如此优良的性质,一定能应用在更多场合中

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值