Batch Normalization(批量归一化精解)---key point系列(六)

内部协变量移位(Internal Covariate Shift, ICS)是深层网络训练中遇到的问题,表现为底层参数变化导致高层输入分布变化,影响学习速度和网络收敛。为解决这个问题,可以采用非饱和激活函数如ReLU,以及数据归一化技术。批量归一化(Batch Normalization, BN)是一种有效方法,它稳定了网络中每层输入的数据分布,加速模型学习并缓解梯度消失,同时也具有正则化效果。
摘要由CSDN通过智能技术生成

为解决的问题是:在网络训练的过程中,参数会随着梯度的下降不断更新,这时会存在类似蝴蝶效应的事情发生,当底层参数发生些许的变化时,由于层层的线性变换与非线性激活映射,底层些许的变化会被放大;同时由于底层的参数变化,上层必不可免要去适应变化,从而使模型训练变得困难,其为Internal Covariate Shift(内部协变量移位‎)。

规范定义为:在深层网络训练的过程中,由于网络中参数变化而引起内部结点数据分布发生变化的过程。

ICS弊端(引起的问题):

(1)学习速度的降低:上层网络不断调整参数来适应输入数据的变化

(2)网络收敛速度变慢:使用sigmoid,tanh激活函数,训练过程易陷入梯度饱和区,也就是说梯度会变得很小甚至接近于0,参数的更新速度就会减慢,进而就会放慢网络的收敛速度。

解决激活函数梯度饱和问题:

(1)更换非饱和性激活函数,如ReLu

(2)激活函数输入分布,保持在一个稳定状态来尽可能避免它们陷入梯度饱和区,即归一化。

缓解ICS(Internal Covariate Shift)方法:

出现的核心原因就是高层输入的变化,所以对每层输入进行优化

(1)白化:规范化数据分布方法,对输入数据分布变换,使得

①、输入特征分布具有相同的均值与方差

②、去除特征之间的相关性

缺点:计算成本高、改变每个网络层分布使学习参数丢失

(2)批量归一化:

(1)对每一个特征进行归一化,使之都具备均值为0,方差为1的分布。

(2)在(1)的基础上加线性变换,使数据尽可能恢复本身的表达能力。

通过一系列公式变化:达到用更加简化的方式来对数据进行规范化,使得每层的输入每个特征的分布均值为0,方差为1;但是通过让每一层的输入分布均值为0,方差为1,会使得输入在经过sigmoid或tanh激活函数时,容易陷入非线性激活函数的线性区域,也就是易饱和。所以引入两个可学习参数,恢复数据本身表达能力,

优点:

(1)BN使得网络中每层输入数据的分布相对稳定,加速模型学习速度

(2)BN使得模型对网络中的参数不那么敏感,简化调参过程,使得网络学习更加稳定

(3)BN允许网络使用饱和性激活函数(例如sigmoid,tanh等),缓解梯度消失问题

(4)BN具有一定的正则化效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值