关于Batch Normalization

本文参考:深度学习入门:基于Python的理论与实现 斋藤康毅(作者)

我们的目标是使模型可以顺利高效的学习,所以我们努力的使各层的经过激活函数后的输出分布具有适当的广度。所以既然目标是这个,我们也可以强制性的调整这个值使其具有适当的分布广度。

 

Batch Normalization(简称Batch Norm)是2015年提出的。他有如下优点:

可以使学习快速进行(增大学习率)

不那么依赖初始值

抑制过拟合(降低Dropout等的必要性)

 

既然我们的思路使调整各层激活后的输出使其拥有适当的广度,那么我们要在输出后对数据分布进行正规化,即Batch Normalization 层(下文简称 Batch Norm 层),如图

所谓batch,即以进行学习的mini-batch为单位,按mini-batch进行正规化。具体而言就是使数据分布的均值为0,方差为1的正规化。

所谓batch,即以进行学习的mini-batch为单位,按mini-batch进行正规化。具体而言就是使数据分布的均值为0,方差为1的正规化。

数学表达式如图:

ε是一个微小值,是为了防止出现除以0的情况。

将上述操作插入到激活函数前面或者后面,可以有效减少数据分布的偏向性。

然后Batch Norm 层会对正规化后的数据进行缩放和平移变换,用数学式可以如下表示

 

这里,γ 和 β 是参数。一开始 γ = 1,β = 0,然后再通过学习调整到合适的值。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值