Batch Normalization

赫赫有名的BN论文,相较各个网络的论文要硬核得多,尚未理解的部分也较多。深度学习开始入门到现在已有50天,工作时划水外加业余啃完了13篇论文,涵盖了经典的分类和检测大部分论文,目前应该只剩余GoogLeNet的3个变种,MobileNet,还有RNN那一大堆没看了。公司业务一大部分在于行人检测与重识别,后续会开始看person re-identification相关的论文,剩余的几个网络啦,ReLU啦,后面合适的时候再说吧~

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Sergey Ioffe, Christian Szegedy 2015.02

Google Inc.

1. Introduction

深度学习显著地推进了视觉、语音及其他领域的前沿水平。SGD被证明是训练深度网络的有效方法,而SGD的变种如动量(Sutskever等人,2013)和Adagrad(Duchi等人,2011)也已用于获得前沿性能水平。SGD优化网络的参数$\Theta$,使loss最小

其中$x_{1…N}$是训练数据集。在SGD中,训练是分步的,每一步我们使用一个大小为m的mini-batch$x_{1…m}$。mini-batch用于估计loss对参数的梯度:

使用mini-batch样本,而不是一次一个样本,有多个好处。首先,mini-batch的loss的梯度是对训练集的一个估计,其质量随着batch大小增长而提高。其次,对一个batch进行计算比m次独立计算单个样本高效得多,得益于现代计算平台的并行能力。

尽管随机梯度简单而有效,但它需要小心地调优模型的超参数,特别是学习率以及模型参数的初始值。应为每一层的输入都受之前所有层的参数影响,训练非常复杂——因此随着网络变得更深,参数的小改动都会被放大。

层的输入分布变化造成了一个问题,因为这些层不得不断的适应新的分布。当学习系统的输入分布变化时,据说它正在经历covariate shift(Shimodaira, 2000)。这通常通过领域适应(Jiang, 2008)来控制。但covariate shift的概念不仅仅局限于整个学习系统,也能应用于部分,如子网络或一层。假设一个网络计算

其中F1和F2都是任意变换,参数$\Theta_1 , \Theta_2$被训练使loss函数l最小。训练$\Theta_2$可以看做训练输入为$x = F_1(u,\Theta_1)$的子网络。

例如,一个梯度下降步骤

(batch尺寸为m,学习率为$\alpha$)是完全与独立网络F2,输入x相同的。因此,能让训练更高效的输入分布属性——如训练和测试数据的分布一样——应用到子网络也同样有效。就其本身而言,x的分布不变化也是一种优势。那么$\Theta_2$不需要重新适应以补偿x分布的变化。

为子网络提供固定分布的输入也能为子网络之外的层造成积极的影响。设想一个有着sigmoid激活的层 $z = g(Wu+b)$,其中u是层的输入,权重矩阵W和bias向量b都是层所需训练的参数,而$g(x) = \frac 1 {1+ \exp (-x)}$。随着$|x|$增长,$g’(x)$趋近于0。这意味着对所有维度的$x=Wu+b$,除了绝对值较小的,对u的梯度都会消失,模型训练缓慢。不过,因为x受W,b以及所有下面层的参数影响,训练中改变这些参数很可能会将x的大部分维度移到非线性中的饱和区间,拖慢收敛速度。随着网络深度增加,这一影响还会放大。在实践中饱和问题和它导致的梯度消失通常使用ReLU(Nair和Hinton,2010)$ReLU(x) = max(x,0)$,小心的初始化(Bengio和Glorot,2010;Saxe等人,2013)和小的学习率来解决。如果我们能保证训练中非线性输入的分布更稳定,那么优化者更不易卡在饱和区,训练能得以加速。

我们把深度网络内部节点的分布变化叫做Internal Covariate Shift。消除它应该能让训练更快。我们提出了一个新的技巧,叫做Batch Normalization,向着消除Internal Covariate Shift迈出了一步,在训练深度神经网络时有极大的加速。它通过一个固定层的均值和方差的归一化步骤来做到这一点。BN同样对于流过网络的梯度有好处,它降低了梯度对参数尺度或它们初始值的依赖。这允许了更高的学习率的使用,而无需担心分歧的出现。而且BN正则化了模型,降低了对于Dropout(Srivastava等人)的需要。最后,BN让饱和非线性的使用变得可能。

在章节4.2,我们将BN应用于ImageNet最佳网络,我们仅需7%的训练次数就能达到其性能,进一步训练则会超越其精度一截。使用多个用BN训练的模型组合,我们获得了有史以来最佳的top-5错误率。

2. Towards Reducing Internal Covariate Shift

我们将Internal Covariate Shift定义为因训练中网络参数的变化而导致的网络激活分布的变化。为了提升训练,我们寻找消减Internal Covariate Shift的方法。通过在训练中固定层的输入x的分布,我们期望能提升训练速度。很早就知道(LeCun等人,1988;Wiesler和Ney,2011)如果输入是白化的whitened,网络收敛会快很多——如,线性转换为有0的均值和单元方差,并去相关化。因为每一层的输入都由其下的所有层产生,那么每一层的输入都得到同样的白化是会有帮助的。通过为每一层输入进行白化,我们朝着输入固定分布更进一步,移除Internal Covariate Shift的负面影响。

我们可能会考虑在每一个训练迭代或某些间隔来白化激活,通过直接修改网络或修改依赖网络激活值的优化算法参数(Wiesler等人,2014;Raiko等人,2012;Povey等人,2014;Desjardins和Kavukcuoglu)。但是,如果这些修改散步在优化迭代中,那么梯度下降时也许会尝试将参数更新到需要归一化的状态,降低了梯度下降步骤的效果。例如,有一层的输入为u,学到的bias为b,通过减去训练数据的激活值的平均来归一化:$\hat x = x - E[x]$,其中$x = u + b, X = \{x_{1…N}\}$是训练集中x的值,而$E[x] = \frac 1 N \sum_{i=1}^N x_i$。如果一个梯度步骤忽略了$E[x]$对b的依赖,则它会$b\leftarrow b+\Delta b$,其中$\Delta b \propto - \partial l / \partial \hat x$。那么$u+(b+\Delta b) - E[u+(b+\Delta b) ]= u+b -E[u+b]$。因此对b的更新与随后归一化的改变组合导致层的输出和loss都没有改变。随着训练继续,b会无限增长而loss固定。如果归一化不仅聚集,而且还缩放了激活的话,问题还会更严重。我们已在早期实验中观察到此现象,当归一化参数在梯度步骤外计算时,模型会爆炸。

以上方法的这个问题是梯度下降优化未考虑归一化。为了解决它,我们需要保证对于任何参数值,网络总是用所需的分布产生激活值。这会使loss对模型参数的梯度考虑到归一化。设x为层的输入,X为整个训练集。则归一化可写作变换

它不仅依赖于给定的训练样本x,而是所有样本X——如果x是由另一层产生的话,每个都依赖于$\Theta$。为了反向传播,我们需要计算Jacobian:

忽略第二项会导致前面提到的爆炸问题。在这一框架下,白化层输入很昂贵,因为它需要计算协方差矩阵$Cov[x]=E_{x\in X}[xx^\mathrm{T}] - E[x] E[x]^\mathrm{T}$及其平方根的导数,来产生白化激活$Cov[x]^{-1/2} (x-E[x])$,以及用于反向传播的这些转换的偏导。这趋势我们寻找一种以可微的方式进行输入归一化的方法,且无需在每次参数更新后分析整个训练集。

一些之前的方法(如Lyu和Simoncelli,2008)使用在单个训练样本的统计,或在图片网络的情况,在指定位置的不同特征图的统计。但这因为丢弃了激活的绝对温标absolute scale,改变了网络的表达能力。我们希望保留网络中的信息,用整个训练集数据统计信息归一化一个训练样本的激活。

3. Normalization via Mini-Batch Statistics

因为对每层的输入都进行完全白化耗费极高,且不是哪里都可微的,我们进行了两项必要的简化。首先是与其同时白化层的输入输出特征,我们会为每个标量scalar特征独立归一化,使它们有0的均值和1的方差。对于一个有d维输入$x=(x^{(1)}…x^{(d)})$的层,我们会归一化每个维度

其中期望和方程在整个训练集上计算。如已证明过的那样(LeCun等人,1998),这样的归一化能加速收敛,就算特征没有去相关。

注意到仅仅归一化一层的每个输入可能会改变该层能表达的东西。比如归一化一个sigmoid的输入会将它们约束到非线性化中的线性区域中。为了解决这个问题,我们保证插入进网络中的变换能表达一致性转换。为了达到这一目标,我们提出了,为每个激活$x^{(k)}$,引入一对参数$\gamma ^{(k)}, \beta ^{(k)}$,对归一化后的值进行缩放和平移:

这些参数与原始模型参数一起训练,修复了网络的表达能力。实际上,通过设置$\gamma^{(k)} = \sqrt {Var [x^{(k)}]}$和$\beta ^{(k)} = E[x^{(k)}]$,我们能还原为原始激活。

在那些每一个训练步骤都基于整个训练集的batch设定中,我们能使用整个数据集来归一化激活。不过在使用SGD时不实际。因此我们进行了第二项简化:因为我们在SGD训练中使用mini-batch,使用mini-batch来近似每个激活的均值和方差。这一用于归一化的统计就能应用到SGD训练中。需要注意mini-batch的使用是被逐维度方差计算允许的,而不是联合协方差;在协方差的情况下会需要正则化,因为mini-batch尺寸很可能比被白化的激活数小,得到一个奇异协方差矩阵。

设想一个大小为m的mini-batch$\mathfrak{B}$,因为归一化是独立应用于各个激活的,让我们关注特定激活$x^{(k)}$并出于简洁省略k。在mini-batch中有m个值,

设被归一化后的值为$\hat {x} _{1…m}$,它们的线性变换为$y_{1…m}$。我们把变换

称作Batch Normalizing Transform。我们在算法1中提供了BN转换。算法中的$\epsilon $是一个加入到mini-batch 方差的常量,以提供数值稳定性。

算法1

BN转换能加入到网络中以操作任何机会。在表达式$y = BN_{\gamma,\beta} (x)$中,指$\gamma 和 \beta$均需训练,但需要注意的是BN转行没有为每个训练样本独立处理激活。$BN_{\gamma,\beta} (x)$依赖训练样本和所有其它mini-batch中的样本。被缩放、平移后的值y传入其它层中。被归一化后的激活$\hat x$是转变过程中的内部值,但它们非常关键。只要mini-batch中每个元素都自同一分布采样,并忽略$\epsilon$的情况下,任意$\hat x$的值的分布都可以期待有0的值和1的方差。这可以观察到$\sum_{i=1} ^m \hat x_i = 0$和$\frac 1 m \sum _{i=1}^m \hat x_i^2=1$。每个归一化后的激活$\hat x ^{(k)}$可被看做一个由线性变换$y^{(k)} = \gamma ^{(k)} \hat x ^{(k)} + \beta ^{(k)}$组成的子网络的输入,接着由原始网络继续处理。子网络的输入都有固定的均值和方程,尽管归一化后的$\hat x^{(k)}$的联合分布会随训练进程而改变,我们认为归一化输入的引入加速了整个网络的训练。

在训练中我们需要将loss l的梯度反向传播过这一变换,并计算BN变换参数的梯度。我们用了如下的链式法则:
Alt text

这样BN就是一个可微的变换,能为网络引入归一化的激活。这保证了模型随着训练,层能在更少internal covariate shift的输入分布上训练,从而加速训练。不仅如此,应用到这些归一化的激活上的训练好的仿射变换允许BN转换表达一致性转换并保留网络能力。

3.1 Training and Inference with Batch Normalized Networks

要BN化一个网络,我们制定了一个激活的子集,并为它们按照算法1应用了BN。所有之前接收输入为x的层,现在输入为BN(x)。使用BN的模型能用batch梯度下降,mini-batch大小大于1的SGD,或任意变种训练,如Adagrad。基于mini-batch的BN让训练高效,但在使用时就不需要了;我们希望输出仅依赖于输入。一旦网络训练结束,我们使用的归一化

使用全体人口而不是mini-batch的统计。忽略$\epsilon$,归一化的激活与训练中一样,有0的均值和1的方差。我们使用无偏差的方差估计$Var[x] = \frac {m} {m-1} \cdot E _{\mathfrak {B}} [\sigma ^2 _{\mathfrak {B}}] $,其中期望是基于训练mini-batch的m个样本,而$\sigma ^2 _{\mathfrak {B}}$是样本方差。使用moving average,我们能在模型训练时追踪其准确度。因为在使用过程中均值和方差固定,归一化仅仅是用于各层的一个线性变换。也许未来会基于缩放$\gamma$和偏移$\beta$构建一个单线性变换来替代BN(x)。算法2总结了训练BN网络的过程

算法2

3.2 Batch-Normalized Convolutional Networks

BN能应用到网络中任意激活上。在这里,我们关注一个后跟逐元素非线性函数的的仿射affine变换

其中W和b是模型训练的参数,$g(\cdot )$是sigmoid或ReLU这样的非线性函数。这一方程覆盖了全连接和卷积层。我们把BN加入到非线性前,归一化$x = Wu+b$。我们也能归一化层的输入u,但因为u是其他非线性的输出,其分布形状在训练中很可能变换,约束它的第一第二矩moments不能消除covariate shift。与其相反,$Wu+b$更易有一个对称的、非稀疏的分布,即“more Gaussian”(Hyvarinen和Oja,2000);归一化它更容易产生有稳定分布的激活。

需要注意的是,因为我们归一化了$Wu+b$,bias b可以被忽略,因为其影响会被减去均值操作消除。因此,$z = g(Wu+b)$被以下方程替代

BN独立应用于$x=Wu$的每个维度,每个维度使用隔离的训练好的参数$\gamma ^{(k)},\beta ^{(k)}$。

对于卷积层,我们还希望归一化服从卷积属性——同一个特征图的不同元素,它们在不同位置,但以同样的方法进行归一化。为了实现这一点,我们在所有位置共同地归一化了一个mini-batch中的所有激活。在算法1中,我们让$\mathfrak {B}$作为mini-batch中所有元素和空间位置的特征图所有值的集合,对于大小为m的mini-batch,尺寸为$p\times q$的特征图,我们实际的mini-batch大小为$m’ = |\mathfrak {B}| = m \cdot pq$。我们为每个特征图训练一对$\gamma^{(k)}, \beta ^{(k)}$,而不是每个激活。算法2也进行了类似修改,让使用过程中BN在给定特征图上的每个激活应用同样的线性变换。

3.3 Batch Normalization enables higher learning rates

在传统的深度网络中,过高的学习率会导致梯度消失或爆炸,以及卡在不太好的局部最小值。BN能解决这些问题。通过归一化网络中的激活,它能防止参数的小改变震荡到更大,以及梯度中对于激活非最优的改变。

BN同样让训练对于参数尺度更有弹性resilient。通常来说,更大的学习率也许会增大层的参数的尺度,在模型反向传播时增大,从而导致模型爆炸。但对于BN,反向传播不会受参数尺度影响。比如,对于尺度a,

我们可以得到

这一尺度不会影响层的雅克比矩阵或梯度传播。此外,更大的权重会导致更小的梯度,BN会稳定参数的增长。

我们进一步推测,BN可能会是的层的雅克比矩阵有解决1的奇异值,据称它有利于训练(Saxe等人,2013)。考虑两个有归一化输入的连续层,归一化的向量间变换为$\hat z = F(\hat x)$。如果我们假定$\hat x, \hat z$均为高斯的且不相关,而且$F(\hat x) \approx J \hat x$是对给定模型参数的线性变换,那么$\hat x, \hat z$都有1的协方差 unit covariances,且$I = Cov[\hat z] = JCov[\hat x] J^T = J J^T$。那么$JJ^T=I$,故所有J的奇异值都等于1,从而保持了在反向传播中的梯度量级。在实际应用中,变换不是线性的,归一化后的值也不能保证是高斯的或独立的,但我们可以期待BN使梯度传播得更好。BN对梯度传播的精确影响仍需研究。

3.4 Batch Normalization regularized the model

当使用BN训练时,训练样本可以看做与mini-batch中其余样本连接,受训网络也不再为给定训练样本输出确定的值。在我们实验中,我们发现它有助于网络的泛化。由于Dropout通常用于降低过拟合,使用BN后可以去除或降低强度。

4. Experiments

4.1 Activations over time

为了验证训练中internal covariate shift的影响以及BN对抗它的能力,我们考虑了MNIST数据集。我们使用了一个非常简单的网络,使用$28\times28$的输入,及3个全连接中间层,每个有100个激活。每个中间层计算带sigmoid激活的$y = g(Wu+b)$,权重W使用小的随机高斯值初始化。最后接一个10个激活的全连接层和一个交叉熵loss。我们训练了50k步,每个mini-batch有60个样本。我们为所有中间层增加了BN。我们对于基线和BN化的网络的比较感兴趣,而不是在MNIST上取得前沿结果。

图1

图1(a)显示了两个网络随着训练进程在测试数据上的分数。BN化的网络有着更高的准确率。为了了解其原因,我们研究了sigmoid的输入随着训练进程变化的情况,如图1(b,c),来自各个网络最后一个中间层。原始网络的分布情况随着时间有显著变化,包括其均值和方差,使得随后的层的训练复杂化。与其相反,使用了BN的网络的分布就稳定得多,帮助了训练。

4.2 ImageNet classification

我们将BN应用到一个Inception网络的新变种上,在ImageNet分类任务上训练。网络有更多的卷积和池化,使用softmax进行1000类预测。与Szegedy等人2014年的网络相比,主要不同是$5\times5$卷积层被连续的两个有着最多128个核的$3\times3$卷积层替代。网络有$13.6\cdot 10^6$个参数,除了最上方的softmax层,不含全连接层。附录中有更多细节。后文我们将使用Inception指代此模型。模型使用带动量的SGD训练,mini-batch大小为32。训练使用大规模分布式架构(类似Dean等人,2012)完成。所有网络都在训练中对测试集每张图片使用一个切块使用top-1准确度验证。

在我们的实验中,我们测试了多个带BN的Inception。所有模型都如3.2一样以卷积的形式应用到所有非线性的输入上,同时保持其余部分不变。

4.2.1 Accelerating BN Networks

简单地将BN加入网络不能完全发挥我们方法的优势。我们进一步对网络和它的训练参数做了如下改变:

Increase learning rate. BN模型中我们可以从更高的学习率中获得训练加速,而没有任何副作用

Remove Dropout. 如3.4中描述,BN实现了与Dropout一些目标相同的效果。移除Dropout加速了训练,而不会带来过拟合。

Reduce the $L_2$ weight regularization. 在Inception中,有一个$L_2$loss控制过拟合。在BN化的版本中该参数权重除以了5。这一改动提升了在验证集上的准确度。

Accelerate the learning rate decay. 在训练Inception时,学习率以指数级衰减。因为我们的网络训练更快,我们将降低学习率的速度提升了6倍。

Remove Local Response Normalization. 尽管Inception和其它网络从中受益,但我们发现使用BN后它不再必要。

Shuffle training examples more thoroughly.我们为训练集启用了within-shard洗牌,防止了某些样本反复在mini-batch中同时出现。这在验证集上得到了1%的提升,这与BN是一种正则化的看法一致:当一个样本每次使用时都不一样时,我们的方法获利最大。

Reduce the photometric distortions. 因为BN网络训练更快,观察到每个样本次数更少,我们通过降低失真度来让它专注于更”real”的图片。

4.2.2 Single-Network Classification

所有网络都在ILSVRC 02训练集上训练,在验证集上测试,如下:

  • Inception: 在4.2开始描述的网络,初始学习率为0.0015
  • BN-Baseline: 在每个非线性前增加了BN,其余同Inception
  • BN-x5: 带BN的Inception,有4.2.1描述的改动。初始学习率增加了5,来到0.0075。如果原始模型也如此增大的话,会导致模型参数达到机器的无穷值。
  • BN-x30: 同BN-x5,但初始学习率为0.045(Inception的30倍)
  • BN-x5-Sigmoid: 类似BN-x5,但使用sigmoid$g(t) = \frac {1} {1+\exp (-x)}$代替ReLU。我们也在原始Inception进行了这一尝试,但模型精度不变。
    在图2中我们展示了各网络随着训练进行的验证准确度。Inception在$31\cdot 10^6$次step后,精度达到了72.2%。图3显示了各个网络达到72.2%的精度需要的step数,以及各自能达到的最高精度。

图2

图3

仅使用BN(BN-Baseline),我们仅用一半的step树就达到了Inception的最大精度。应用4.2.1中的修改,我们显著地提升了网络训练速度。BN-x5相比Inception,只需14分之1的step就达到72.2%的精度。有趣的是,继续增大学习率(BN-x30)会使训练一开始慢一点,但最终得到了更高的准确度,在$6\cdot 10^6$后达到了74.8%,比Inception达到72.2%还少5倍。

尽管训练这样的网络众所周知的难,我们还是验证了通过BN降低了internal covariate shift后,使用sigmoid作为非线性的网络也可以被训练。事实上BN-x5-Sigmoid得到了69.8%的准确度,而非BN化的Sigmoid Inception精度从未达到过0.1%。

4.2.3 Ensemble Classification

目前在ILSVRC上最高的结果是通过传统模型(Wu等人,2015)和另一模型(He等人,2015)组合得到的。最新结果是4.94%的top-5错误率。我们得到了top-5验证错误率4.9%,测试错误率为4.82%。超过了之前最好的结果,以及人类的水平(Russakovsky等人,2014)。

我们使用了6个网络组合。每个都基于BN-x30,进行了如下修改:增大卷积层初始权重;使用Dropout(概率为5%或10%,原始Inception使用了40%);在模型最后的中间层使用非卷积式的逐激活的BN。每个网络在约$6\cdot 10^6$step后达到最大精度。组合预测基于各网络预测的算术平均。组合和multicrop inference的细节类似(Szegedy等人,2014)。

我们在图4中展示了BN与各前沿结果在ImageNet分类挑战上的比较。

图4

5. Conclusion

我们提出了一个用于加速深度网络训练的新方法。它基于covariance shift这一前提,众所周知它会是机器学习系统训练复杂化,从网络内部激活移除它也许能帮助训练。我们的方法通过归一化激活函数和将归一化合并进网络架构中得到力量。这保证了任意用于训练网络的优化方法都能合适地控制归一化。为了使用常用的SGD,我们为每个mini-batch进行归一化,并在反向传播中计算归一化参数的梯度。BN通过为每个激活增加两个额外参数,为网络保留了表达力。我们提出了一个构建、训练和使用BN化的网络的算法。所得到的网络能用饱和非线性训练,能容忍更大的学习率,通常不再需要Dropout进行正则化。

仅仅为前沿图片分类模型添加BN就能产生相当大的训练加速。通过进一步加大学习率,移除Dropout,应用BN提供的修改,我们仅需一小部分的训练就能达到前沿准确率,继续训练就超过了它。不仅如此,通过组合使用BN训练的模型,我们比已知最佳的ImageNet成绩还高一大截。

有趣的是,我们的方法与Gulcehre和Bengio,2013的standardization层有相似处,尽管两个方法的目标不同,任务不同。BN的目标是在训练中获得稳定的激活值分布,我们实验中应用于非线性之前,因为这样更易得到稳定的分布。与之相反,standardization应用到非线性的输出上,以产生更稀疏的激活值。在我们的ILSVRC实验中,不管是否使用BN,我们都未观测点非线性的输入变得稀疏。另一个值得注意的区别是BN包含了学到的scale和shift,允许BN表达为一致性映射(standardization层不需要,因为它跟在训练好的线性变换之后,从概念上说,吸收了必要的尺度变换和偏移),控制卷积层,使用时不基于mini-batch,能为网络中每个卷积层BN化。

在本论文中,我们没有调查所有BN可能能完成东西。我们未来的研究会包括将方法应用到RNN(Pascanu等人,2013),那里的internal covariate shift和梯度消失、爆炸问题可能特别严重,能让我们更完整的测试章节3.3的猜测:归一化能提升梯度传播。我们计划调查BN是否能帮助领域适应——如,是否BN化的网络能更容易地泛化到新的数据分布上,也许仅仅重新计算分布的均值和方差即可。最后,我们相信对于本算法的进一步理论分析会带来更多提升和应用。

References

Bengio, Yoshua and Glorot, Xavier. Understanding the
difficulty of training deep feedforward neural networks.
In Proceedings of AISTATS 2010, volume 9, pp. 249–
256, May 2010.
Dean, Jeffrey, Corrado, Greg S., Monga, Rajat, Chen, Kai,
Devin, Matthieu, Le, Quoc V., Mao, Mark Z., Ranzato,
Marc’Aurelio, Senior, Andrew, Tucker, Paul, Yang, Ke,
and Ng, Andrew Y. Large scale distributed deep networks.
In NIPS, 2012.
Desjardins, Guillaume and Kavukcuoglu, Koray. Natural
neural networks. (unpublished).
Duchi, John, Hazan, Elad, and Singer, Yoram. Adaptive
subgradient methods for online learning and stochasticoptimization. J. Mach. Learn. Res., 12:2121–2159, July2011. ISSN 1532-4435.
G¨ulc¸ehre, C¸ aglar and Bengio, Yoshua. Knowledge matters:
Importance of prior information for optimization.
CoRR, abs/1301.4083, 2013.
He, K., Zhang, X., Ren, S., and Sun, J. Delving Deep
into Rectifiers: Surpassing Human-Level Performance
on ImageNet Classification. ArXiv e-prints, February2015.
Hyv¨arinen, A. and Oja, E. Independent component analysis:
Algorithms and applications. Neural Netw., 13
(4-5):411–430, May 2000.
Jiang, Jing. A literature survey on domain adaptation of
statistical classifiers, 2008.
LeCun, Y., Bottou, L., Bengio, Y., and Haffner, P.
Gradient-based learning applied to document recognition.
Proceedings of the IEEE, 86(11):2278–2324,
November 1998a.
LeCun, Y., Bottou, L., Orr, G., and Muller, K. Efficient
backprop. In Orr, G. and K., Muller (eds.), Neural Networks:
Tricks of the trade. Springer, 1998b.
Lyu, S and Simoncelli, E P. Nonlinear image representation
using divisive normalization. In Proc. Computer
Vision and Pattern Recognition, pp. 1–8. IEEE Computer
Society, Jun 23-28 2008. doi: 10.1109/CVPR.
2008.4587821.
Nair, Vinod and Hinton, Geoffrey E. Rectified linear units
improve restricted boltzmann machines. In ICML, pp.
807–814. Omnipress, 2010.
Pascanu, Razvan, Mikolov, Tomas, and Bengio, Yoshua.
On the difficulty of training recurrent neural networks.
In Proceedings of the 30th International Conference on
Machine Learning, ICML 2013, Atlanta, GA, USA, 16-
21 June 2013, pp. 1310–1318, 2013.
Povey, Daniel, Zhang, Xiaohui, and Khudanpur, Sanjeev.
Parallel training of deep neural networks with
natural gradient and parameter averaging. CoRR,
abs/1410.7455, 2014.
Raiko, Tapani, Valpola, Harri, and LeCun, Yann. Deep
learning made easier by linear transformations in perceptrons.
In International Conference on Artificial Intelligence
and Statistics (AISTATS), pp. 924–932, 2012.
Russakovsky, Olga, Deng, Jia, Su, Hao, Krause, Jonathan,
Satheesh, Sanjeev, Ma, Sean, Huang, Zhiheng, Karpathy,
Andrej, Khosla, Aditya, Bernstein, Michael, Berg,
Alexander C., and Fei-Fei, Li. ImageNet Large Scale
Visual Recognition Challenge, 2014.
Saxe, Andrew M., McClelland, James L., and Ganguli,
Surya. Exact solutions to the nonlinear dynamics
of learning in deep linear neural networks. CoRR,
abs/1312.6120, 2013.
Shimodaira, Hidetoshi. Improving predictive inference
under covariate shift by weighting the log-likelihood
function. Journal of Statistical Planning and Inference,
90(2):227–244, October 2000.
Srivastava, Nitish, Hinton, Geoffrey, Krizhevsky, Alex,
Sutskever, Ilya, and Salakhutdinov, Ruslan. Dropout:
A simple way to prevent neural networks from overfitting.
J. Mach. Learn. Res., 15(1):1929–1958, January2014.
Sutskever, Ilya, Martens, James, Dahl, George E., and
Hinton, Geoffrey E. On the importance of initialization
and momentum in deep learning. In ICML
(3), volume 28 of JMLR Proceedings, pp. 1139–1147.
JMLR.org, 2013.
Szegedy, Christian, Liu, Wei, Jia, Yangqing, Sermanet,
Pierre, Reed, Scott, Anguelov, Dragomir, Erhan, Dumitru,
Vanhoucke, Vincent, and Rabinovich, Andrew.
Going deeper with convolutions. CoRR,
abs/1409.4842, 2014.
Wiesler, Simon and Ney, Hermann. A convergence analysis
of log-linear training. In Shawe-Taylor, J., Zemel,
R.S., Bartlett, P., Pereira, F.C.N., and Weinberger, K.Q.
(eds.), Advances in Neural Information Processing Systems
24, pp. 657–665, Granada, Spain, December 2011.
Wiesler, Simon, Richard, Alexander, Schl¨uter, Ralf, and
Ney, Hermann. Mean-normalized stochastic gradient
for large-scale deep learning. In IEEE International
Conference on Acoustics, Speech, and Signal Processing,
pp. 180–184, Florence, Italy, May 2014.
Wu, Ren, Yan, Shengen, Shan, Yi, Dang, Qingqing, and
Sun, Gang. Deep image: Scaling up image recognition,2015.