深度神经网络--4.5 批标准化

举报
HWCloudAI 发表于 2020/12/28 15:18:11 2020/12/28
【摘要】 在深度学习系统中,深层神经网络的训练调参极为困难。在训练过程中,往往需要去尝试不同的正则化方法、学习率等方式来帮助模型加速收敛。深度神经网络之所以如此难训练,其中一个重要原因就是神经网络中层与层之间存在高度的关联性。这些关联性会导致内协变量移位(Internal Covariate Shift)。内协变量移位指的是在底层网络参数发生微弱变化时,由于每一层中的线性变换与非线性映射,这些细小的变...

在深度学习系统中,深层神经网络的训练调参极为困难。在训练过程中,往往需要去尝试不同的正则化方法、学习率等方式来帮助模型加速收敛。深度神经网络之所以如此难训练,其中一个重要原因就是神经网络中层与层之间存在高度的关联性。这些关联性会导致内协变量移位(Internal Covariate Shift)。内协变量移位指的是在底层网络参数发生微弱变化时,由于每一层中的线性变换与非线性映射,这些细小的变化会随着网络层数的加深而被放大。另一方面,参数的变化导致每一层的输入分布会发生改变,进而网络需要不停地去适应这些分布变化,使得模型训练变得极为困难。简而言之,在深层网络训练的过程中,网络中参数变化会引起内部节点数据分布发生变化。内协变量移位会给深度网络训练带来两个问题:第一,上层网络需要不停地调整以适应输入分布的变化,导致学习速度降低;第二,训练过程容易陷入梯度饱和区,减缓网络的收敛速度。针对内协变量移位问题,批标准化(Batch Normalization)提出一种简化计算并又能保证数据原始的表达能力的方法。此外,由于输入全批次训练数据对内存要求较大,且每一轮训练时长过长,一般在深度学习系统中都会采用小批次对网络进行训练。批标准化就是建立在小批次之上的方法。先回顾一一下神经网络第l+1层的前馈公式:

式中,yl——l层的输出。对于第l+1层的所有神经节点,批标准化计算其平均值和方差如下:

计算平均值和方差后,对于第l+1层的输出进行规范化:

在实际运用中,批标准化被证明了能缓解神经网络难以训练的问题。这是由于批标准化有几个优点。第一,批标准化通过规范化,使得每一层的网络输入数据的均值和方差都在一定的范围内,这样可以让后一层网络不必不断适应前一层网络输出的变化。网络每一层输入数据的分布相对稳定,可以加速模型的学习速度。其次,深度网络中往往会谨慎地采取权重初始化方法和合适的学习率来保证稳定地训练网络。批标准化可以使得模型对网络中的参数不那么敏感,简化了调参过程。另外,除了本节介绍的批标准化方法,批标准化也允许网络使用饱和性激活函数,例如sigmoid、tand等。在深度网络中,底层的网络变化很容易累积到上层网络中,导致模型进入激活函数的梯度饱和区,最终致使梯度消失。这些饱和性激活函数,能缓解梯度消失的问题。最后,批标准化在实际运用中能起到一定程度的正则化效果。使用小批次的均值和方差作为对全部训练样本的估计,不同的小批次的均值与方差会给学习过程加上随机噪声,与Dropout随机地关闭神经元类似。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。