Batch Normalization层

Batch Normalization层

  1. 我们可以通过标准化输入来避免网络中局部数据十分大或十分小(不在同一个数值范围),同时我们也需要标准化激活函数的输出来保证网络的稳定。

  2. 所有网络中都应该使用BN层,他能使网络块10倍,因为学习率可以调大了,且由于不会出现某个值十分大或十分小的情况,曾经许多不能的网络也都可以训练了,

  3. BN能够很好的预防过拟合,因此可以减少Dropout的使用量。

  4. BN层事实上是对上一层的激活层的输出结果进行标准化,即减去均值并除以标准差。但SGD会在训练时Undo这个操作,因此BN采取了如下两种方法来解决:
    (1)Add two more trainable parameters to each layer one to multiply all activations to set an arbitrary standard deviation, and one to add to all activations to set an arbitary mean.
    (2)Incorporate both the normalization, and the learnt multiply/add parameters, into the gradient calculations during backprop.
    举个例子,如果在一个全连接层后面加入BN,假设这个全连接层中有70个神经元,那么BN的参数就是280个,70(实际用于标准化的均值)+70(实际用于标准化的标准差)+70(用于Undo的标准差)+70(用于Undo的均值)

  5. 如果想要在已经训练好的网络中加入BN,必须先计算出训练这个网络时所使用的数据集在网络中需要加入BN的前一层的激活值的均值和标准差,并将计算出的值赋到BN的所有参数上(包括实际用于标准化的参数)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值