6.5 Batch Normalization

在训练神经网络时,往往需要标准化(normalization)输入数据,使得网络的训练更加快速和有效。

然而SGD(随机梯度下降)等学习算法会在训练中不断改变网络的参数,隐藏层的激活值的分布会因此发生变化,而这一种变化就称为内协变量偏移(Internal Covariate Shift,ICS)。

为了解决ICS问题,批标准化(Batch Normalization)固定激活函数的输入变量的均值和方差,使得网络的训练更快。

除了加速训练这一优势,Batch Normalization还具备其他功能:

①应用了Batch Normalization的神经网络在反向传播中有着非常好的梯度流

这样,神经网络对权重的初值和尺度依赖减少,能够使用更高的学习率,还降低了不收敛的风险。

②Batch Normalization还具有正则化的作用,Dropout也就不再需要了。

③Batch Normalization让深度神经网络使用饱和非线性函数成为可能。

一、Batch Normalization的实现方式

Batch Normalization在训练时,用当前训练批次的数据单独的估计每一激活值 x⁽ᴷ⁾  的均值和方差。为了方便,我们接下来只关注某一个激活值 x⁽ᴷ⁾ ,并将 k 省略掉,现定义当前批次为具有 m 个激活值的 β:

β = Xi (i=1,...,m)

首先,计算当前批次激活值的均值和方差:

然后用计算好的均值 \mu _{\beta } 和 方差 δ_β ² 标准化这一批次的激活值 x_{i},得到

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值