神经网络中的BN层

BN层

BN,全称Batch Normalization(批规范化),是2015年提出的一种方法,在进行深度网络训练时,大都会采取这种算法。算法过程如下:
在这里插入图片描述
简单来说就是对上一层输出的数据进行规范化。

优势:

  1. 加快网络的训练和收敛的速度,即我们可以使用较大的学习率
  2. 控制梯度爆炸防止梯度消失
  3. 防止过拟合

1.加快训练速度

在深度神经网络中中,如果把每层的数据都在转换在均值为零,方差为1的状态下,这样每层数据的分布都是一样的训练会比较容易收敛。
原因在于神经网络学习过程本质就是为了学习数据分布,如果训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,深度网络的训练是一个复杂的过程,只要网络的前面几层发生微小的改变,那么后面几层就会被累积放大下去。如果每批训练数据的分布各不相同,那么网络就要在每次迭代都去学习适应不同的分布,这样将会降低网络的训练速度。

2.控制梯度爆炸防止梯度消失

2.1什么是梯度爆炸/消失

梯度消失与梯度爆炸其实是一种情况。以下图以三个隐层的单神经元网络为例:
在这里插入图片描述
以上图为例,假设每一层网络激活后的输出为 f i ( x ) f_{i}(x) fi(x),其中 i i i 为第 i i i 层, x x x 代表第 i i i 层的输入, 也就是第 i − 1 i-1 i1 层的输出, f f f 是激活函数, 那么, 可得出 f i + 1 = f ( f i ∗ w i + 1 + b i + 1 ) , f_{i+1}=f\left(f_{i} * w_{i+1}+b_{i+1}\right), fi+1=f(fiwi+1+bi+1),

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值