深度学习【2】Batch Normalization 论文翻译

本文翻译并解析了Batch Normalization的理论,探讨了内部协变量漂移问题及其对深度神经网络训练的影响。Batch Normalization通过归一化输入缓解这一问题,允许使用更高学习率并减少对初始化的依赖。实验表明,Batch Normalization可加速训练,提高模型性能,甚至在某些情况下可替代Dropout。在ImageNet分类任务中,应用BN的模型取得了优于人类的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本文翻译的原文为Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift中的BN理论知识(到3.1小节),同时会在翻译过程中加入一些自己的理解。目的是加深对提出BN的目的及其原理的理解。英语水平以及知识水平有待提高,有不足之处请大家提出来。
http://blog.youkuaiyun.com/linmingan/article/details/50780761

Abstract:当前神经网络层之前的神经网络层的参数变化,引起神经网络每一层输入数据的分布产生了变化,这使得训练一个深度神经网络(Deep Neural Networks)变得复杂。这样就要求使用更小的学习率,参数初始化也需要更为谨慎的设置。并且由于非线性饱和(注:如sigmoid激活函数的非线性饱和问题),训练一个深度神经网络会非常困难。我们称这个现象为:internal covariate shif;同时利用归一化层输入解决这个问题。我们将归一化层输入作为神经网络的结构,并且对每一个小批量训练数据执行这一操作。Batch Normalization(BN) 能使用更高的学习率,并且不需要过多的注重参数初始化问题。BN 的过程与正则化相似,在某些情况下可以去除Dropout。将BN应用到一个state-of-the-art的图片分类模型中时,使用BN只要1/14的训练次数就能够达到同样的精度。使用含有BN神经网络模型能提升现有最好的ImageNet分类结果:在top-5 验证集中达到4.9%的错误率(测试集为4.8%),超出了人类的分类精度。
1 Introduction
  深度学习极大的促进了许多领域的发展,如视觉、语音以及其他领域。随机梯度下降法(SGD)已经证明能够有效的训练深度神经网络,并且在SGD中加入momentum和Adgrad变量也达到了最好的性能。SGD优化参数 θ θ 来最小化损失函数

θ=argminθ1Ni=1Nl(Xi,θ) θ = a r g m i n θ ⁡ 1 N ∑ i = 1 N l ( X i , θ )
,其中 X1N X 1 … N 为训练数据集。在使用SGD时,每次迭代我们使用一个大小为 m m 的小批量数据 X 1 m 。通过计算
1ml(Xi,θ)θ 1 m ∂ l ( X i , θ ) ∂ θ
来逼近损失函数关于权值的梯度。在迭代过程中使用小批量数据相比使用一个样本有几个好处。首先,由小批量数据计算而来的损失函数梯度是由整个训练数据集的损失函数梯度的估计。并且随着小批量数据大小的增加,其性能会越好。其次,由于现代计算平台的并行性,小批量训练会比单个样例训练更高效。
  尽管随机梯度下降法简单有效,但却需要谨慎的调整模型的参数,特别是在优化过程中加入学习率和参数初始化方式的选择。每一层的输入都会受之前所有层的参数影响,并且随着网络越深,即使参数的变化很小也为对每一层的输入产生很大的影响。这使得训练一个网络变得十分复杂。
神经网络层输入分布的改变,使得神经网络层必须不停的适应新的数据分布。当一个学习系统的输入数据分布产生变化,我们称这种现象为:Experience Covariate Shift. 解决这种现象的典型方法是领域适应。然而,Covariate Shift的概念的适用性能够从整个学习系统扩展到该系统的一部分,比如一个子网络或者其中的一层。考虑一个网络计算
l=F2(F1(u,θ1),θ2) l = F 2 ( F 1 ( u , θ 1 ) , θ 2 )
其中 F1 F 1 F2 F 2 是任意的变换函数。通过学习参数 θ1 θ 1 θ2 θ 2 来最小化 l l θ 2 的学习:如果 X=F1(u,θ1) X = F 1 ( u , θ 1 ) 为子网络的输入,那么
l=F2(X,θ2). l = F 2 ( X , θ 2 ) .
θ2 θ 2 的更新为 ( m m :批量数据的样本数; α :学习率)
θ2θ2αmi=1mF2(Xi,θ2)θ2 θ 2 ← θ 2 − α m ∑ i = 1 m ∂ F 2 ( X i , θ 2 ) ∂ θ 2
因此,输入数据分布相同这一特性,使得子网络更容易训练。这与训练数据和测试数据有相同的分布是相似的。因此保持 X X 的分布不变是有利的。这样, θ 2 就不需要为了弥补 X X 的分布的改变而重新进行调整。
  保持一个子网络的输入数据分布不变,对该子网络以外的隐藏层也有积极的作用。考虑一层激活函数为sigmoid函数的神经网络层 z = g ( W u + b ) ,其中 u u 为该层的输入,权值矩阵 W 和偏置 b b 为该层需要学习的参数, g ( x ) = 1 1 + e x p ( x ) . 随着 |x| | x | 的增大, g(x) g ′ ( x ) 趋向0 (因为 g(x)1 g ( x ) → 1 )。这意味着在 x=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值