BN操作详解

文章目录

BN是由Google于2015年提出,论文是《Batch Normalization_ Accelerating Deep Network Training by Reducing Internal Covariate Shift》。

1 作用

1将输入值或卷积网络的张量进行类似标准化的操作,将其放缩到合适的范围,加快训练速度。
2另一方面使得每一层可以尽量面对同一特征分布的输入值,减少变化带来的不确定性。

BN可以防止学习过程中梯度消失,这一点论文中有阐述,作者说可以如果使用sigmod激活函数的时候,如果不用BN的话,会让反向传播的过程中梯度消失(当输出值较大或较小时,sigmod函数就会进入饱和区域,导致其导数几乎为零),但是可以通过使用Relu激活函数来解决,那就意味着BN主要还是让数据分布变为一致。

2 流程

假设某一批次的数据为2个2行2列2深度的张量,BN的过程如下:

第一步:

计算每一层深度的均值和方差:

第二步:

对每一层设置2个参数,γ和β。假设第1深度γ=2、β=3;第2深度γ=5、β=8。(γ,β是神经网络需要学习的参数)
缩放和移位是算法比较关键,因为它提供了更多的灵活性。
计算公式:

主要参考:深度学习面试题21:批量归一化(Batch Normalization,BN)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值