笔记:batch normalization:accelerating deep network training by reducing internal covariate shift

批量归一化(Batch Normalization)是一种用于加速深度神经网络训练的技术,旨在减少内部协变量漂移(Internal Covariate Shift, ICS)。通过规范化每层的输入,保持其分布的稳定(均值为0,方差为1),并结合线性变换,BN不仅提高了训练速度,还增强了模型的性能,减少了对dropout和初始化的依赖。在卷积神经网络(CNN)中,BN可以在仿射变换后应用,以保持特征图的分布稳定,且在训练和推断阶段有所不同。" 111022169,10324783,Python os.system 使用与输出解析,"['Python', 'os库', '命令行接口', '子进程', '系统调用']
摘要由CSDN通过智能技术生成

概述:训练机器学习系统时,一个一般的假设是它每次的输入的分布是稳定的。如果不满足这个假设,就是covariate shift,这个通常通过domian adaption解决。在训练一个复杂的机器学习系统时,同样要求这个sub-network对应的输入(activation)分布(distribution)是稳定的,如果不满足这个假设,就是本文提出的internal covariate shift(ICS)。本文CNN训练中,存在的ICS问题提出batch normalizaiton,一方面通过normalization使得每个网络层的输入尽量保持稳定的分布(均值为0以及单位方差),另一方面通过一个线性变化(transform)使得该层的输入在表达能力上也同时保持较好的效果。
对于CNN训练中存在的ICS问题,在原文中通过一个带sigmoid activation function的层进行了说明,具体而言:首先这个中间层的输入是原始数据在先网络(preceding network)上变化后的结果,所以这层的输入首先是跟它前面的网络参数有很大关联,这样的话前面网络参数的变化必然带来这层在输入上的变化,而且这个网络深度越深,这种现象就会被扩大(amplify),从而导致输入的不稳定;另一方面,对于一个sigmoid激活函数,它的导数随着自变量绝对值增大而减小,输入x的很多维上的梯度往往太小而导致梯度不能有效的传播(saturation problem and gradient descent)。之前,解决这个问题的方法包括 using Rectified linear units,care initia

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值