Batch正则化

正则化网络的激活函数

在深度学习兴起后,最重要的一个思想是它的一种算法叫做batch归一化。Batch归一化会使你的参数搜索问题变得很容易,使神经网络对超参数的选择更加稳定。

对logistic回归进行归一化输入特征,帮助我们更有效的训练w和b。对一个深层网络而言,如果我们可以归一化z[2],同样会更有效的帮助我们训练w[3]和b[3]。

图 1 batch归一化

 

通过上述处理,我们使得z的每一个分量都含有平均值0和方差1.但我们不想让隐藏单元总是含有平均值0和方差1,也许隐藏单元有了不同的分布会有意义。所以我们要做如下操作:

其中γ和β是模型的学习参数,它们可以使结果为任意分布。

归一化输入特征X能够有助于神经网络的优化,batch归一化的作用是使归一化过程不只用于输入层,甚至可以适用于神经网络中的深度隐藏层。其二者的唯一区别是我们不想隐藏单元值的平均值必须为0以及方差必须为1。

将Batch归一化拟合进神经网络

我们可以认为每个单元负责计算两件事:第一,它先计算z;第二,将其应用到激活函数中再计算a。如果不使用batch归一化,我们会直接把z[1]拟合到激活函数以计算a[1]。使用batch归一化后,我们将归一化的新z[1]拟合到激活函数中以得到a[1]。此时,我们的输出值参数列表从w、b扩展成w、b、β、γ。

Batch归一化通常和训练集mini-batch一起使用。

Batch归一化为什么奏效

Batch归一化奏效的原因使它可以使权重比网络更滞后或更深层。

图 2 黑猫与有色猫的训练集

 

假设已经在所有黑猫的图像上训练了数据集,如果现在要把此网络应用于有色猫,那么除了重新训练网络还能怎么办呢?我们需要有使数据改变分布的想法。

图 3 神经网络与隐藏值

 

我们从第三隐层来看学习过程,它得到一些输入特征值,第三层的工作是找到一种方式,使这些值映射到y帽。Batch归一化做的是它减少了这些隐藏值分布变化的数量。无论它们的值怎样变化,它们的平均值都是0以及方差都是1或者由β和γ决定。总而言之,它限制了前层数据的更新会影响数据分布的程度。

Batch归一化减少了输入值改变的问题,其使这些值变得更稳定从而让神经网络之后的层有了更坚实的基础。通俗的讲,它减弱了前层参数的作用与后层参数的作用之间的联系,从而使得网络每层都可以自己学习,稍稍独立于其它层。

测试时的Batch 归一化

Batch归一化将数据以mini-batch的形式逐一处理,但在测试时,可能需要对每一个样本逐一处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值