Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

1 Introduction

深度学习极大地提高了视觉、语言和许多其他领域的艺术水平。随机梯度下降(SGD)被证明是训练深层网络的一种有效方法,SGD变量如动量(Sutskever et al.,2013)和Adagrad(Duchi et al.,2011)已被用于实现最先进的性能。SGD对网络参数 Θ \Theta Θ 进行优化,使loss最小化:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UuxI7U23-1593958458804)(001.jpg)]

x 1... N \mathbf x_{1...N} x1...N是训练集。在SGD中,训练是分步骤进行的,在每一步中我们考虑一个minibatch x 1... N \mathbf x_{1...N} x1...N的大小是m。通过计算,用minibatch方法来近似损失函数相对于参数的梯度
在这里插入图片描述

与一次使用一个样本相反,使用小批量样本在很多方面都很有帮助。首先,小批量损失的梯度是训练集上梯度的估计,其质量随着批量的增加而提高。其次,由于现代计算平台所提供的并行性,对单个样本而言,批处理计算效率高得多。

虽然随机梯度法简单有效,但它需要仔细调整模型的超参数,特别是用于优化的学习率,以及模型参数的初始值。由于每一层的输入都受到前几层参数的影响,因此训练变得复杂,因此随着网络的加深,网络参数的微小变化会放大。

层输入分布的变化带来了一个问题,因为层需要不断地适应新的分布。当学习系统的输入分布发生变化时,就会经历协方差转移(Shimodaira,2000)。这通常是通过领域适应性来处理的(Jiang,2008)。然而,协方差的概念可以扩展到整个学习系统之外,应用到它的各个部分,如一个子网络或一个层考虑网络计算

l = F 2 ( F 1 ( u , Θ 1 ) , Θ 2 ) l=F_2(F_1(u,\Theta_1),\Theta_2) l=F2(F1(u,Θ1),Θ2)

其中 F 1 , F 2 F_1,F_2 F1,F2 是任意变换,为了使损失 l l l 最小化,需要学习参数 Θ 1 , Θ 2 \Theta_1,\Theta_2 Θ1,Θ2 。学习 Θ 2 \Theta_2 Θ2 可以被看做 x = F 1 ( u , Θ 1 ) \mathbf{x}=F_1(u,\Theta_1) x=F1(u,Θ1) 被输入进子网络

l = F 2 ( x , Θ 2 ) l=F_2(\mathbf x,\Theta_2) l=F2(x,Θ2)

例如,一个梯度下降的步骤

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gcdve4mo-1593958458806)(002.jpg)]

(对于批处理大小m和学习率α)与具有输入为x的独立网络F2完全等价。因此,使训练更有效的输入分布属性(例如训练和测试数据之间具有相同的分布)也适用于训练子网络。因此,随着时间的推移,x的分布保持固定是有利的。那么, Θ 2 \Theta_2 Θ2 不必重新调整以补偿x分布的变化。

固定子网输入的分布也会对子网外部的层产生积极的影响。考虑一个sigmoid激活函数 z = g ( W u + b ) z = g(Wu + b) z=g(Wu+b) 的层,其中u是层的输入,权矩阵W和偏置向量b是需要学习的层参数, g ( x ) = 1 1 + e x p ( − x ) g(x)=\frac{1}{1+exp(-x)} g(x)=1+exp(x)1随着 ∣ x ∣ |x| x增大, g ′ ( x ) g'(x) g(x)趋近于0。这意味着对于x = Wu+b的所有维度,除了那些绝对值较小的维度,u的梯度将消失,模型训练将变得缓慢。然而,由于x受W,b和下面各层参数的影响,训练过程中这些参数的变化很可能使x的许多维数进入非线性饱和状态,减缓收敛速度。这种效应随着网络深度的增加而放大。

########################################

饱和非线性和非饱和非线性

########################################

实际上,饱和问题和由此产生的消失梯度通常通过使用(Nair&Hinton,2010)ReLU(x)=max(x,0)、初始化(careful
initialization)(Bengio&Glorot,2010;Saxe等人,2013)和小学习率来解决。然而,如果我们能保证网络训练时非线性输入的分布更加稳定,那么优化器就不太可能陷入饱和状态,训练就会加速。

在训练过程中,我们将深度网络内部节点分布的变化称为协方差转移。消除这种现象可以保证更快的训练。我们提出了一种新的机制,我们称之为Batch Normalization,它朝着减少内部协方差转移迈出了一步,这样做大大加速了深层神经网络的训练。**它通过固定每层输入的均值和方差。Batch Normalization还通过减少梯度对参数或其初始值的依赖性,对网络中的梯度流产生了有益的影响,这使得我们可以使用更高的学习率,而不存在梯度发散的风险。**此外,Batch Normalization规范化了模型,减少了dropout的需要(Srivastava等人,2014)。最后,通过防止网络陷入饱和模式,Batch Normalization使得使用饱和非线性成为可能。

4.2节对性能最好的ImageNet分类网络进行了Batch Normalization处理,结果表明,仅需7%的训练时间,就可以使分类网络的性能与未使用Batch Normalization的模型匹配,并且可以大大提高分类精度。

2 Towards Reducing Internal Covariate Shift

我们将协方差转移定义为在训练过程中由于网络参数的变化而引起的网络激活分布的变化。为了改进训练,我们寻求减轻协方差转移。通过确定训练过程中各层输入x的分布,可以提高训练速度。(LeCun等人,1998b;Wiesler&Ney, 2011)如果网络训练的输入被whitened,**即线性变换为零均值和单位方差,并去相关(decorrelated),则网络训练收敛更快。**由于每一层观察由下面各层产生的输入,因此有利于实现每一层输入的相同whitened。通过对每个层的输入进行whitened,我们将朝着实现输入的固定分布迈出一步,这将消除协方差转移的不良影响。

考虑一个输入为u的层,它添加了学习偏置b,并通过减去在训练数据上计算的激活的平均值来将结果normalizes: x ^ = x − E [ x ] \hat x = x-E[x] x^=xE[x],其中 x = u + b x=u+b x=u+b χ = { x 1... N } \chi=\{x_{1...N}\} χ={x1...N} 是训练集上x的值的集合, E [ x ] = 1 N Σ i = 1 N x i E[x]=\frac{1}{N}\Sigma_{i=1}^Nx_i E[x]=N1Σi=1Nxi如果一个梯度下降步骤忽略了E[x]对b的依赖关系,那么它将会更新 b ← b + Δ b b\leftarrow b+\Delta b bb+Δb,其中 KaTeX parse error: Undefined control sequence: \part at position 22: … b \varpropto -\̲p̲a̲r̲t̲ ̲l/\part\hat{x}。然后 u + ( b + Δ b ) − E [ u + ( b + Δ b ) ] = u + b − E [ u + b ] u+(b+\Delta b)-E[u+(b+\Delta b)]=u+b-E[u+b] u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]。因此,对b的更新和随后的规范化改变的组合不会导致层的输出改变,也不会因此而导致丢失。随着训练的继续,b将无限增长而损失保持不变。如果归一化不仅中心化而且缩放了激活值,问题会变得更糟糕。在最初的实验中,我们已经观察到了这一点,通过经验的总结,当归一化参数在梯度下降步骤之外计算时,模型会爆炸。

上述方法的问题是梯度下降优化没有考虑到标准化发生的事实(does not take into account the fact that the normalization takes place)。为了解决这个问题,我们希望确保对于任何参数值,网络总是以所需的分布生成激活。这样做将允许相对于模型参数的损失梯度来解释归一化,以及其对模型参数 Θ \Theta Θ 的依赖性。

再次让x作为一个层输入,作为一个向量, χ \chi χ 是训练数据集上这些输入的集合。然后可以将规范化编写为转换

x ^ = N o r m ( x , χ ) \hat{\mathbf x}=Norm(\mathbf x,\chi) x^=Norm(x,χ)

这不仅取决于给定的训练样本x,还取决于所有样本 χ \chi χ ———它们中的每一个都依赖于Θ,如果x是由另一层生成的。对于反向传播,我们需要计算Jacobians

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GBvBtO5g-1593958458808)(003.jpg)]

忽略后一个术语将导致上述爆炸。在这个框架中,whitening the layer
inputs是昂贵的,因为它需要计算协方差矩阵 C o v [ x ] = E x ∈ χ [ x x T ] − E [ x ] E [ x ] T Cov[\mathbf x]=E_{x\in\chi}[\mathbf{xx^T}]-E[\mathbf x]E[\mathbf x]^T Cov[x]=Exχ[xxT]E[x]E[x]T和它的平方根的倒数从而生成白化的激活值 C o v [ x ] − 1 / 2 ( x − E [ x ] ) Cov[\mathbf x]^{-1/2}(\mathbf x -E[\mathbf x]) Cov[x]1/2(xE[x]),和这些变换进行反向传播的偏导数。这促使我们寻求一种替代方案,以可微分的方式执行输入归一化,并且在每次参数更新后不需要对整个训练集进行分析。

以前的一些方法(例如Lyu & Simoncelli(2008))使用通过单个训练样本计算的统计信息,或者在图像网络的情况下,使用一个给定位置处使用不同特征图上的统计。然而,通过丢弃激活值的绝对尺度,这改变了网络的表示能力。我们希望通过对相对于整个训练数据统计信息的单个训练样本的激活值进行归一化,来保留网络中的信息。

3 Normalization via Mini-Batch Statistics

由于每一层输入的整个白化是代价昂贵的并且不是到处可微分的,因此我们做了两个必要的简化。首先是我们将单独归一化每个标量特征,从而代替在层输入输出对特征进行共同白化,使其具有零均值和单位方差。对于具有d维输入x=(x(1)…x(d))的层,我们将归一化每一维, x ^ ( k ) = x ( k ) − E [ x ( k ) ] V a r [ x ( k ) ] \hat{x}^{(k)}=\frac{x^{(k)}-E[x^{(k)}]}{\sqrt{Var[x^{(k)}]}} x^(k)=Var[x(k)] x(k)E[x(k)]其中期望和方差在整个训练数据集上计算。如LeCun(1998b)中所示,这种归一化加速了收敛,即使特征没有去相关。

**注意简单地归一化一个层的每一个输入可能会改变这个层可以表示什么。例如,归一化sigmoid的输入会将它们约束到非线性的线性状态。**为了解决这个问题,我们要确保插入到网络中的变换可以表示恒等变换。为了实现这个,对于每一个激活值 x ( k ) x^{(k)} x(k),我们引入成对的参数γ(k),β(k),它们会缩放归一化和移动归一化值(scale and shift the normalized value):

**[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0zgRHT9Q-1593958458808)(004.jpg)]**

这些参数与原始的模型参数一起被学习,并恢复网络的表示能力。实际上,通过设置 γ ( k ) = V a r [ x ( k ) ] \gamma^{(k)}=\sqrt{Var[x^{(k)}]} γ(k)=Var[x(k)] β ( k ) = E [ x ( k ) ] \beta^{(k)}=E[x^{(k)}] β(k)=E[x(k)],我们可以重新获得原始的激活值,如果这是最理想的方法的话。

**每个训练步骤的批处理设置是基于整个训练集的,我们将使用整个训练集来归一化激活值。然而,当使用随机优化时,这是不切实际的。因此,我们做了第二个简化:由于我们在随机梯度训练中使用小批量,每个小批量产生每次激活平均值和方差的估计。**这样,用于归一化的统计信息可以完全参与梯度反向传播。注意,通过计算每一维的方差而不是联合协方差,可以实现小批量的使用;在联合情况下,将需要正则化,因为小批量大小可能小于白化的激活值的数量,从而导致单个协方差矩阵。

考虑一个大小为m的小批量数据B。由于归一化被单独地应用于每一个激活值上,所以让我们集中在一个特定的激活值x(k),为了清晰我们忽略了k。在小批量数据里我们有这个激活的m个值,

B = { x 1 … m } \mathcal{B}=\left\{x_{1 \ldots m}\right\} B={x1m}

设归一化值为 x ^ 1... m \hat{x}_{1...m} x^1...m,它们的线性变换是 y 1... m y_{1...m} y1...m。我们指的是变换

B N γ , β : x 1... m → y 1... m BN_{\gamma,\beta}:x_{1...m}\rightarrow y_{1...m} BNγ,β:x1...my1...m

看作批归一化变换。我们在算法1中提出了BN变换。在算法中,为了数值稳定,ϵ是一个加到小批量数据方差上的常量。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8znSL1wB-1593958458810)(005.jpg)]

Algorithm 1:
批归一化变换,被应用到小批量数据上的激活值x。

BN变换可以添加到网络上来操纵任何激活。在公式 y = B N γ , β ( x ) y=BN_{\gamma,\beta}(x) y=BNγ,β(x)中,**我们指出参数γ和β需要进行学习,但应该注意到在每一个训练样本中BN变换不单独处理激活值。**相反, y = B N γ , β ( x ) y=BN_{\gamma,\beta}(x) y=BNγ,β(x)取决于训练样本和小批量数据中的其它样本。归一化激活 x ^ \hat{x} x^ 是我们转换的内部(are internal to our
transformation),但它们的存在是至关重要的。只要每个小批量的元素从相同的分布中进行采样,如果我们忽略ϵ,那么任何 x ^ \hat{x} x^ 值的分布都具有期望为0,方差为1。这可以通过观察 Σ i = 1 m x ^ i = 0 \Sigma^m_{i=1}\hat{x}_i=0 Σi=1mx^i=0 1 m Σ i = 1 m x ^ i 2 = 1 \frac{1}{m}\Sigma^m_{i=1}\hat{x}^2_i=1 m1Σi=1mx^i2=1看到。每一个归一化激活值 x ^ ( k ) \hat{x}^{(k)} x^(k)由线性变化 y ( k ) = γ ( k ) x ^ ( k ) + β ( k ) y^{(k)}=\gamma^{(k)}\hat{x}^{(k)}+\beta^{(k)} y(k)=γ(k)x^(k)+β(k)组成的子网络的输入,接下来是原始网络的其它处理。所有的这些子网络的输入都有固定的均值和方差,尽管这些归一化的 x ^ \hat{x} x^ 的联合分布可能在训练过程中改变,但我们预计归一化输入的引入会加速子网络的训练,从而加速整个网络的训练。

在训练过程中我们需要通过这个变换反向传播损失 ℓ 的梯度,以及计算关于BN变换参数的梯度。我们使用的链式法则如下(简化之前):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9o1vsJKM-1593958458810)(006.jpg)]

因此,BN变换是将归一化激活引入到网络中的可微变换。这确保了在模型训练时,层可以继续学习输入分布,表现出更少的内部协变量转移,从而加快训练。此外,应用于这些归一化的激活上的学习到的仿射变换允许BN变换表示恒等变换并保留网络容量。

3.1 Training and Inference with Batch-Normalized Networks

为了批归一化一个网络,根据算法1,我们指定一个激活的子集,然后在每一个激活中插入BN变换。任何以前接收x作为输入的层现在接收BN(x)作为输入。采用批归一化的模型可以使用批梯度下降,或者用小批量数据大小为m>1的随机梯度下降,或使用它的任何变种例如Adagrad Duchi(2011)进行训练。依赖小批量数据的激活值的归一化可以有效地训练,但在推断过程中是不必要的也是不需要的;我们希望输出只确定性地取决于输入。为此,一旦网络训练完成,我们使用总体统计来进行归一化 x ^ = x = E [ x ] V a r [ x ] + ϵ \hat{x}=\frac{x=E[x]}{\sqrt{Var[x]+\epsilon}} x^=Var[x]+ϵ x=E[x] ,而不是小批量数据统计。跟训练过程中一样,如果忽略ϵ,这些归一化的激活具有相同的均值0和方差1。我们使用无偏方差估计 V a r [ x ] = m m − 1 ⋅ E B [ σ B 2 ] Var[x]=\frac{m}{m-1}\cdot E_{\mathcal{B}}[\sigma^2_{\mathcal{B}}] Var[x]=m1mEB[σB2] ,其中期望是在大小为m的小批量训练数据上得到的, σ B 2 \sigma^2_{\mathcal{B}} σB2是其样本方差。相反,使用移动平均线,我们可以跟踪模型训练时的准确性。由于均值和方差在推断时是固定的,因此归一化只是应用到每一个激活上的简单线性变换。它可以进一步由缩放γ和转移β组成,以产生代替BN(x)的单线性变换。算法2总结了训练批归一化网络的过程。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O1SF2yhl-1593958458811)(007.png)]

**Algorithm 2:**训练一个批归一化的网络

3.2 Batch-Normalized Convolutional Net-works

归一化可以应用于网络的任何激活集合。这里我们专注于仿射变换和element-wise非线性组成的变换:

z = g ( W u + b ) z=g(Wu+b) z=g(Wu+b)

其中W和b是模型的学习参数,g(⋅)是非线性特征,例如sigmoid或ReLU。这个公式涵盖了全连接层和卷积层。**我们在非线性之前通过归一化 x = W u + b x=Wu+b x=Wu+b,加入BN变换。**我们也可以归一化层输入u,但由于u可能是另一个非线性的输出,它的分布形状可能在训练过程中改变,并且限制其一阶矩或二阶矩不能去除协变量漂移。相比之下,Wu+b更可能具有对称,非稀疏分布,即“更高斯”Hyvärinen & Oja(2000);对其归一化可能产生具有稳定分布的激活。

注意,由于我们对Wu+b进行归一化,偏置b可以忽略,因为它的效应将会被随后的减平均取消(偏置的作用会归入到算法1的β)。因此, z = g ( W u + b ) z=g(Wu+b) z=g(Wu+b) z = g ( B N ( W u ) ) z=g(BN(Wu)) z=g(BN(Wu)) 替代,其中BN变换独立地应用到x=Wu的每一维,每一维具有单独的存在着一对的学习参数γ(k),β(k)。

另外,对于卷积层我们希望归一化遵循卷积特性——为的是同一特征图的不同元素,在不同的位置,以相同的方式进行归一化。为了实现这个,我们在所有位置上,联合归一化了小批量数据中的所有激活。在算法1中,我们让B为跨越小批量数据的所有元素和空间位置的特征映射中所有值的集合——因此对于大小为m的小批量数据和大小为p×q的特征映射,我们使用有效的大小为m′=∣B∣=m⋅pq的小批量数据。我们学习每个特征映射的一对参数γ(k)和β(k),而不是每个激活。算法2进行类似的修改,以便在推断期间BN变换对在给定的特征映射上的每一个激活应用同样的线性变换。

3.3 Batch Normalization enables higher learning rates

在传统的深度网络中,学习率过高可能会导致梯度爆炸或梯度消失,以及陷入局部最小值(poor local minima)。批归一化有助于解决这些问题。通过归一化整个网络的激活值,它可以防止在数据通过深度网络传播时,层参数的微小变化被放大为更大的、次优的激活变化。例如,它可以防止训练陷入非线性的饱和状态。

**批归一化也使训练对参数的缩放更有弹性。通常,大的学习率可能会增加层参数的缩放,这会在反向传播中放大梯度并导致模型爆炸。**然而,通过批归一化,通过层的反向传播不受其参数规模的影响。实际上,对于标量a, B N ( W u ) = B N ( ( α W ) u ) BN(Wu)=BN((\alpha W)u) BN(Wu)=BN((αW)u)。我们可以证明:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WcwiEay4-1593958458812)(008.jpg)]

因此标量不影响层的雅可比行列式,从而不影响梯度传播。此外,更大的权重会导致更小的梯度,并且批归一化会稳定参数的增长。

我们进一步推测,批归一化可能会导致雅可比行列式的奇异值接近于1,这被认为对训练是有利的Saxe(2013)。考虑具有归一化输入的两个连续的层,并且位于这些归一化向量之间的变换: Z ^ = F ( x ^ ) \hat{Z}=F(\hat{\mathbf{x}}) Z^=F(x^)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8hwEE12-1593958458813)(009.jpg)]

3.4 Batch Normalization regularizes the model

当使用批归一化进行训练时,看到一个训练样本与小批量处理中的其他样本可以结合使用,训练网络不再为给定的训练样本生成确定值。在实验中,我们发现这种效应有利于网络的泛化。而Dropout Srivastava(2014)通常用于减少过拟合,在一个批归一化的网络中,我们发现它可以被移除或降低强度。

4.2.1 Accelerating BN Networks

将批归一化简单添加到网络中不能充分利用我们方法的优势。为此,我们进一步改变了网络及其训练参数如下:

提高学习率。在一个批归一化模型中,我们已经能够从高学习率中实现训练加速,没有不良的副作用(3.3节)。

移除Dropout。正如3.4节描述的,批归一化实现了与Dropout相同的一些目标。从改进的BN-Inception中移除Dropout没有提升过拟合,但是加速了训练过程。

减少L2权重的正则化。在Inception中模型参数的一个L2损失控制过拟合,而在改进的BN-Inception中,该损失的权重减少了5倍。我们发现,这提高了给出的验证集数据的准确性。

加速学习率衰减。在训练Inception时,学习率呈指数衰减。因为我们的网络训练速度比Inception更快,所以我们将学习率衰减加快6倍。

**删除局部响应归一化(Remove Local Response Normalization)。**虽然Inception和其它网络Srivastava(2014)从中受益,但是我们发现对于使用批归一化的网络,它是不必要的。

**更彻底地搅乱训练样本。**我们在训练数据上启用了分布内部搅乱,这样可以防止同一个例子总是出现在小批量数据中。这导致验证准确率提高了约1%,这与批归一化作为正则化项(3.4节)的观点是一致的:它每次被看到时都会影响一个不同的样本,在我们的方法中内在的随机化应该是最有益的。

**减少光照扭曲。**由于批归一化网络训练速度更快,而且每个训练示例的观察次数更少,所以我们让训练者更专注于“真实”图像,减少他们的失真。

5 Conclusion

我们提出了一个新奇的机制,大大加快了深度网络的训练。它是基于协变量转移的前提,已知其会使机器学习系统的训练复杂化,也适用于子网络和层,并且从网络的内部激活中去除它可能有助于训练。我们提出的方法从其归一化激活中获取其功能,并将这种归一化合并到网络架构本身。这确保了归一化可以被用来训练网络的任何优化方法进行恰当的处理。**为了让深度网络训练中常用的随机优化方法可用,我们对每个小批量数据执行归一化,并通过归一化参数来反向传播梯度。批归一化每个激活只增加了两个额外的参数,这样做可以保持网络的表示能力。**我们提出了一个算法,其用于构建,训练和执行推断批归一化网络。所得到的网络可以用饱和非线性进行训练,能更容忍增加的训练率,并且通常不需要Dropout来进行正则化。

**仅仅将批归一化添加到了当前最先进的图像分类模型中,便在训练中取得了实质的加速。通过进一步提高学习率,删除Dropout和应用批归一化所提供的其它修改,我们只用了少部分的训练步骤就达到了以前的技术水平——然后在单网络图像分类中击败了最先进的技术。**此外,通过组合多个使用批归一化训练的模型,我们在ImageNet上的表现显著优于最好的已知系统。

有趣的是,我们的方法与Gülçehre & Bengio(2013)的归一化层相似,尽管这两个方法解决的目标不同,执行的任务也不同。批归一化的目标是在整个训练过程中实现激活值的一个稳定的分布,在实验中,我们把它应用在非线性之前,因为匹配了一阶矩和二阶矩更可能实现一个稳定的分布。相反,G¨ulc¸ehre & Bengio(2013)应用归一化层到非线性的输出,这导致了更稀疏的激活。在大规模图像分类实验中,我们没有观察到非线性输入是稀疏的,无论是有批归一化还是没有批归一化。批归一化的其它显著差异包括学习到的缩放和转移,允许BN变换表示恒等,(归一化层不需要这样做,因为它后面是学习到的线性变换,从概念上来说,它吸收了必要的缩放和转移),卷积层处理以及不依赖于小批量数据的确定性推断,以及对网络中的每一个卷积层进行批归一化处理。

类实验中,我们没有观察到非线性输入是稀疏的,无论是有批归一化还是没有批归一化。批归一化的其它显著差异包括学习到的缩放和转移,允许BN变换表示恒等,(归一化层不需要这样做,因为它后面是学习到的线性变换,从概念上来说,它吸收了必要的缩放和转移)**,卷积层处理以及不依赖于小批量数据的确定性推断,以及对网络中的每一个卷积层进行批归一化处理。

在这项工作中,我们没有探索批归一化能够实现的全部可能性。我们的未来工作包括将我们的方法应用于循环神经网络Pascanu(2013),其中内部协变量转移和梯度消失或爆炸可能特别严重,这将使我们能够更彻底地检验这个假设,归一化提升梯度传播的表现(第3.3节)。我们计划调查批归一化是否有助于传统意义上的域自适应——即网络执行归一化是否能够更容易泛化到新的数据分布,也许仅仅是对总体均值和方差的重新计算(Alg.2)。最后,我们相信该算法的进一步研究理论分析将允许更多的改进和应用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值