BatchNorm的作用--原理详解

  • 其一,直觉上讲,将所有的x将其变化范围通过归一化从1-1000到一个相似的变化范围,这样可以加快学习速度



  • 其二,在输入的分布不同的情况下,如图
    在这里插入图片描述
    第一个输入全是黑猫,其分布如其上图(左),其学到的决策边界可能是一条直线,用图右边的数据进行测试时就会得到一个预测不准确的结果,而实际上,对于图中的分布,我们想要学到的决策边界应该是如下图所示:
    在这里插入图片描述
    由于输入数据分布的偏好很容易导致学不到上图所示绿色的决策边界,这样的话当输入数据的分布发生改变(或者协方差移位Covariate Shift)时可能将要重新训练模型,所以,采用BatchNormalization 将每一层神经网络的输入保持相同的分布



  • 其三,在神经网络训练的过程中,其分布也会逐渐发生偏移或者变动,收敛也将逐渐变慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值或正值),所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因,而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,其实就是把越来越偏的分布强制拉回比较标准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域,这样输入的小变化就会导致损失函数较大的变化,意思是这样让梯度变大,避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快,能大大加快训练速度。

  • 其四,类似于Dropout的效果,可以防止过拟合

BatchNormalization的具体实现如下:
在这里插入图片描述

具体描述可参考:

【深度学习】深入理解Batch Normalization批标准化

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值