Batch Normalization为什么有效?

一、概述

BN于2015年被提出,最大的特点是加速模型收敛,目前已经在CNN被广泛应用。

二、BN使用流程


如图所示,BN的过程也比较简单:

  1. 计算当前mini-batch的均值
  2. 计算当前mini-batch的方差
  3. 对每一层的输入特征(一般是上一层的激活函数之前)进行规范化
  4. 线性变化得到输出,其中线性变换的参数可训练

三、BN有什么用?

  1. 加速训练,可以使用更大的学习率
  2. 解决梯度消失和梯度爆炸
  3. 不需要再使用dropout和L2正则

四、BN为什么有用?原作解释

首先是原作者和大家普遍认同的解释。
在数据(图片)输入神经网络之前,我们一般会做一个标准化或归一化,目的是让每次输入的数据都在同一个分布或尺度。而在神经网络向前传播的过程中,这种分布势必会被打破,也就是Internal Covariate Shift(ICS)。作者认为这会使得训练变得更加困难,所以提出了在每一层进行标准化的方案,也就是Batch Normalization。

五、新的解释

2019年一篇新的论文How Does Batch Normalization Help Optimization?则对BN有效的原理提出了质疑。作者通过一些实验证明了两件事:

  1. BN取得好的效果和ICS无关
  2. 事实上BN也没有解决ICS的问题

而作者认为BN有效的原因是让loss函数更加平滑了。

参考:
BN(Batch Normalization) 原理与使用过程详解
BN算法(Batch Normalization)的原理和作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值