11institutetext: Microsoft Research

深度残差网络中的身份映射

Kaiming He    Xiangyu Zhang    Shaoqing Ren    Jian Sun
摘要

深度残差网络[1]已经成为一系列极深的架构,显示出引人注目的准确性和良好的收敛行为。 在本文中,我们分析了残差构建块背后的传播公式,这表明当使用恒等映射作为跳过连接和添加后激活时,前向和后向信号可以直接从一个块传播到任何其他块。 一系列消融实验支持了这些身份映射的重要性。 这促使我们提出一种新的残差单元,它使训练更容易并提高泛化能力。 我们报告了在 CIFAR-10(4.62% 错误)和 CIFAR-100 上使用 1001 层 ResNet 以及在 ImageNet 上使用 200 层 ResNet 的改进结果。 代码位于:https://github.com/KaimingHe/resnet-1k-layers

1简介

深度残差网络 (ResNets) [1] 由许多堆叠的“残差单元”组成。 每个单元(图1(a))可以用通用形式表示:

𝐲l=h(𝐱l)+(𝐱l,𝒲l),
𝐱l+1=f(𝐲l),

其中𝐱l𝐱l+1是第l单元的输入和输出,是残差函数。 [1] 中,h(𝐱l)=𝐱l 是恒等映射,f 是 ReLU [2] 函数。

深度超过 100 层的 ResNet 在 ImageNet [3] 和 MS COCO [4] 竞赛中的多项具有挑战性的识别任务中表现出了最先进的准确性。 ResNets 的中心思想是学习相对于 h(𝐱l) 的加性残差函数 ,关键选择是使用恒等映射 h(𝐱l)=𝐱l 这是通过附加身份跳过连接(“快捷方式”)来实现的。

在本文中,我们通过重点创建传播信息的“直接”路径来分析深度残差网络——不仅在残差单元内,而且通过整个网络。 我们的推导表明,如果 h(𝐱l)f(𝐲l) 都是恒等映射,则信号可以直接从一个单元传播到任何单元其他单位,在前向和后向传递中。 我们的实验经验表明,当架构更接近上述两个条件时,训练通常会变得更容易。

为了理解跳跃连接的作用,我们对各种类型的h(𝐱l)进行分析和比较。 我们发现,[1]中选择的恒等映射h(𝐱l)=𝐱l在我们研究的所有变体中实现了最快的错误减少和最低的训练损失,而跳过缩放、门控的连接 [5,6,7]和1×1个卷积都会导致更高的训练损失和错误。 这些实验表明,保持“干净”的信息路径(如图 124 中的灰色箭头所示)是有帮助的用于简化优化。

为了构建恒等映射f(𝐲l)=𝐲l,我们将激活函数(ReLU和BN[8])视为权重层的“预激活” ,与“后激活”的传统观点相反。 这种观点导致了一种新的残差单元设计,如图1(b)所示。 基于该单元,我们使用 1001 层 ResNet 在 CIFAR-10/100 上展示了具有竞争力的结果,它比 [1] 中的原始 ResNet 更容易训练并且泛化能力更好。 我们进一步报告了使用 200 层 ResNet 在 ImageNet 上的改进结果,其中 [1] 的对应部分开始过拟合。 这些结果表明,网络深度维度还有很大的开发空间,这是现代深度学习成功的关键。

Refer to caption
图1: :(a)[1]中的原始剩余单元; (b) 拟议的剩余单位。 灰色箭头表示信息传播的最简单路径,对应于等式中的加性项“𝐱l”。(4)(前向传播)和方程中的加法项“1”。(5)(向后传播)。 :1001层 ResNets CIFAR-10上的训练曲线。 实线表示测试误差(右侧 y 轴),虚线表示训练损失(左侧 y 轴)。 所提出的单元使 ResNet-1001 更易于训练。

2深度残差网络分析

[1]中开发的ResNet是模块化架构,堆叠相同连接形状的构建块。 在本文中,我们将这些块称为“Residual Units”。 [1]中的原始残差单元执行以下计算:

𝐲l=h(𝐱l)+(𝐱l,𝒲l), (1)
𝐱l+1=f(𝐲l). (2)

这里 𝐱l 是第 l 个残差单元的输入特征。 𝒲l={Wl,k|1kK} 是与第 l 个残差单元关联的一组权重(和偏差),K 是残差单元中的层数(K[1] 中的 2 或 3)。 表示残差函数,例如,[1]中两个3×3卷积层的堆叠。 函数f是按元素相加后的运算,[1]中的f是ReLU。 函数h被设置为恒等映射:h(𝐱l)=𝐱l111值得注意的是,有用于增加维度和减少特征图大小的Residual Units[1],其中h 不是身份。 在这种情况下,以下推导并不严格成立。 但由于这样的单元很少(CIFAR 上有两个,ImageNet 上有三个,具体取决于图像大小 [1]),我们预计它们不会像我们在第 2 节中呈现的那样产生指数级影响。 3 人们还可能认为我们的推导应用于相同特征图大小内的所有残差单元。

如果f也是一个恒等映射:𝐱l+1𝐲l,我们可以把Eqn.(2) 代入等式。(1) 并获得:

𝐱l+1=𝐱l+(𝐱l,𝒲l). (3)

递归地(𝐱l+2=𝐱l+1+(𝐱l+1,𝒲l+1)=𝐱l+(𝐱l,𝒲l)+(𝐱l+1,𝒲l+1)等)我们将得到:

𝐱L=𝐱l+i=lL1(𝐱i,𝒲i), (4)

对于任何较深的单元L任何较浅的单元l 方程。(4) 表现出一些很好的特性。 (i)任何较深单元L的特征𝐱L可以表示为任何较浅单元l的特征𝐱l加上一个残差函数,其形式为i=lL1,表示模型在任何单元Ll之间的残差方式。(ii)任何深度单元L的特征𝐱L=𝐱0+i=0L1(𝐱i,𝒲i)是前面所有残差函数(加上𝐱0)输出的总和 这与“普通网络”相反,其中特征 𝐱L 是一系列矩阵向量乘积,例如 i=0L1Wi𝐱0(忽略 BN 和 ReLU) )。

方程。(4) 也带来了很好的反向传播特性。 将损失函数记为,由反向传播链式法则[9]得:

𝐱l=𝐱L𝐱L𝐱l=𝐱L(1+𝐱li=lL1(𝐱i,𝒲i)). (5)

方程。(5) 表示梯度𝐱l可以分解为两个加性项:𝐱L项直接传播信息而不考虑任何权重层,以及𝐱L(𝐱li=lL1) 的另一项通过权重层传播。 𝐱L 的加法项确保信息直接传播回任何较浅的单元 l 方程。(5) 还表明梯度 𝐱l 不太可能在小批量中被取消,因为一般来说,术语 𝐱li=lL1 不能被小批量中的所有样本始终为 -1。 这意味着即使权重任意小,层的梯度也不会消失。

讨论

方程。(4) 和方程。(5)表明信号可以直接从任何单元传播到另一个单元,无论是向前还是向后。 方程的基础。(4) 是两个恒等映射:(i) 恒等跳过连接 h(𝐱l)=𝐱l,以及 (ii) f 是恒等映射的条件。

这些直接传播的信息流由图124中的灰色箭头表示。 当这些灰色箭头不包含任何操作(期望添加)时,上述两个条件为真,因此是“干净的”。 在下面的两节中,我们分别研究这两种情况的影响。

3论身份跳过连接的重要性

让我们考虑一个简单的修改 h(𝐱l)=λl𝐱l 来破坏身份快捷方式:

𝐱l+1=λl𝐱l+(𝐱l,𝒲l), (6)

其中 λl 是调制标量(为简单起见,我们仍然假设 f 是恒等式)。 递归地应用这个公式,我们得到一个类似于方程的方程。 (4): 𝐱L=(i=lL1λi)𝐱l+i=lL1(j=i+1L1λj)(𝐱i,𝒲i),或者简单地:

𝐱L=(i=lL1λi)𝐱l+i=lL1^(𝐱i,𝒲i), (7)

其中符号 ^ 将标量吸收到残差函数中。 类似于方程式。(5),我们有以下形式的反向传播:

𝐱l=𝐱L((i=lL1λi)+𝐱li=lL1^(𝐱i,𝒲i)). (8)

与方程式不同。(5),在等式中。(8) 第一个加法项由因子 i=lL1λi 调节。 对于极深的网络(L很大),如果λi>1对于所有i来说,这个因子可以呈指数级大;如果λi<1对于所有i,这个因子可能呈指数级小并消失,这会阻止来自捷径的反向传播信号并迫使其流经权重层。 正如我们通过实验所表明的,这导致了优化困难。

在上面的分析中,原恒等式跳过连接。(3) 被替换为简单的缩放 h(𝐱l)=λl𝐱l 如果跳过连接h(𝐱l)表示更复杂的变换(例如门控和1×1个卷积),则在等式中:(8) 第一项变为 i=lL1hi,其中 hh 的导数。该产品还可能阻碍信息传播并妨碍训练过程,如以下实验所示。

Refer to caption
图2: 1中使用的各种类型的快捷连接。 灰色箭头表示信息传播的最简单路径。 (b-f) 中的快捷连接受到不同组件的阻碍。 为了简化说明,我们没有显示 BN 层,这里所有单元的权重层之后都采用了 BN 层。
表格1: 使用 ResNet-110 [1] 的 CIFAR-10 测试集上的分类错误,并对所有残差单元应用不同类型的快捷连接。 当测试误差高于 20% 时,我们报告“失败”。
case Fig. on shortcut on error (%) remark
original [1] Fig. 2(a) 1 1 6.61
constant scaling Fig. 2(b) 0 1 fail This is a plain net
0.5 1 fail
0.5 0.5 12.35 frozen gating
exclusive gating Fig. 2(c) 1g(𝐱) g(𝐱) fail init bg=0 to 5
1g(𝐱) g(𝐱) 8.70 init bg=-6
1g(𝐱) g(𝐱) 9.81 init bg=-7
shortcut-only gating Fig. 2(d) 1g(𝐱) 1 12.86 init bg=0
1g(𝐱) 1 6.91 init bg=-6
1×1 conv shortcut Fig. 2(e) 1×1 conv 1 12.22
dropout shortcut Fig. 2(f) dropout 0.5 1 fail

3.1 跳过连接实验

我们在 CIFAR-10 [10] 上使用 [1] 中介绍的 110 层 ResNet 进行实验。 这个极深的 ResNet-110 有 54 个两层残差单元(由 3×3 个卷积层组成),对于优化来说具有挑战性。 我们的实现细节(参见附录)与[1]相同。 在本文中,我们报告了 CIFAR 上每种架构 5 次运行 的中位准确率,从而减少了随机变化的影响。

虽然我们上面的分析是由身份f驱动的,但本节中的实验都是基于 f= ReLU如[1];我们将在下一节中讨论身份f 我们的基线 ResNet-110 在测试集上的错误率为 6.61%。 其他变体的比较(图2和表1)总结如下:

Refer to caption
图3: 各种快捷方式在 CIFAR-10 上的训练曲线。 实线表示测试误差(右侧 y 轴),虚线表示训练损失(左侧 y 轴)。

持续缩放 我们为所有快捷方式设置λ=0.5(图2(b))。 我们进一步研究了缩放的两种情况:(i)没有缩放; (ii) 按常数标量 1λ=0.5 缩放,这类似于高速公路门控 [6, 7] 但具有冻结门。 前一种情况收敛得不好;后者能够收敛,但测试误差(表1,12.35%)大幅高于原始ResNet-110。 3(a)显示训练误差高于原始ResNet-110,表明当shortcut信号缩小时优化遇到困难。

独占门控 遵循采用门控机制[5]的高速公路网络[6, 7],我们考虑门控函数g(𝐱)=σ(Wg𝐱+bg),其中变换表示为权重 Wg 和偏差 bg,后跟 sigmoid 函数 σ(x)=11+ex 在卷积网络中,g(𝐱)由1×1个卷积层实现。 门函数通过逐元素乘法来调制信号。

我们研究了 [6, 7] 中使用的 "独占 "门 - 路径按 g(𝐱) 缩放,快捷路径按 1g(𝐱) 缩放。 参见图2(c)。 我们发现偏差 bg 的初始化对于训练门控模型至关重要,并遵循指南222另请参阅:people.idsia.ch/~rupesh/very_deep_learning/ 作者:[6, 7] [6, 7]中,我们对bg的初始值在0到-10的范围内进行超参数搜索,在训练中递减步长为-1通过交叉验证设置。 然后将最佳值(此处为6)用于训练集上的训练,测试结果为8.70%(表1),仍然远远落后于ResNet -110 基线。 3(b)显示了训练曲线。 1 还报告了使用其他初始化值的结果,注意到当 bg 未适当初始化时,独占门网络不会收敛到良好的解决方案。

独特的门控机制的影响是双重的。 1g(𝐱)接近1时,门控快捷连接更接近同一性,有利于信息传播;但在这种情况下,g(𝐱) 接近 0 并抑制函数 为了隔离门函数对捷径的影响,我们接下来研究非排他性门控机制。

仅快捷方式门控 在这种情况下,函数 没有缩放;只有快捷路径由 1g(𝐱) 控制。 见图2(d)。 在这种情况下,bg的初始化值仍然是必需的。 当初始化的bg为0时(因此最初1g(𝐱)的期望为0.5),网络收敛到较差的结果12.86%(表1) 。 这也是由较高的训练误差引起的(图3(c))。

当初始化的bg负偏非常大时(例如,6),1g(𝐱)的值更接近1,快捷方式连接几乎是一个身份映射。 因此,结果(6.91%,表1)更接近ResNet-110基线。

1×1 卷积捷径 接下来我们用 1×1 个卷积快捷连接来代替恒等进行实验。 此选项已在 34 层 ResNet(16 个残差单元)上的 [1](称为选项 C)中进行了研究,并显示出良好的结果,表明 1×1 捷径连接可能会有用。 但我们发现,当残差单元较多时,情况并非如此。 当使用 1×1 卷积捷径时,110 层 ResNet 的结果较差(12.22%,表 1)。 同样,训练误差变得更高(图3(d))。 当堆叠如此多的残差单元(ResNet-110 为 54 个)时,即使是最短路径也可能会阻碍信号传播。 当使用 1×1 卷积捷径时,我们在带有 ResNet-101 的 ImageNet 上看到了类似的现象。

退出快捷方式 最后,我们对恒等快捷方式的输出采用 dropout [11] (比率为 0.5)进行实验(图 2(f))。 网络无法收敛到一个好的解决方案。 Dropout 在统计上对捷径施加了 λ 的缩放比例,期望为 0.5,与恒定缩放 0.5 类似,它会阻碍信号传播。

3.2讨论

如图2中灰色箭头所示,快捷连接是信息传播最直接的路径。 对快捷方式的乘法操作(缩放、门控、1×1 卷积和 dropout)可能会阻碍信息传播并导致优化问题。

值得注意的是,门控和 1×1 卷积捷径引入了更多的参数,并且应该比恒等捷径具有更强的表示能力。 事实上,仅快捷方式门控和 1×1 卷积覆盖了恒等快捷方式的解空间(,它们可以作为恒等快捷方式进行优化)。 然而,它们的训练误差高于恒等捷径,这表明这些模型的退化是由优化问题引起的,而不是表征能力。

4关于激活函数的使用

表2: 使用不同激活函数的 CIFAR-10 测试集上的分类错误 (%)。
case Fig. ResNet-110 ResNet-164
original Residual Unit [1] Fig. 4(a) 6.61 5.93
BN after addition Fig. 4(b) 8.17 6.50
ReLU before addition Fig. 4(c) 7.84 6.14
ReLU-only pre-activation Fig. 4(d) 6.71 5.91
full pre-activation Fig. 4(e) 6.37 5.46
Refer to caption
图4: 2中激活的各种用法。 所有这些单元都由相同的组件组成 - 只是顺序不同。

上一节中的实验支持了方程中的分析。(5) 和方程。(8),两者都是在添加后激活 f 是恒等映射的假设下导出的。 但在上述实验中,f[1]中设计的ReLU,因此等式:(5) 和 (8) 在上述实验中是近似值。 接下来我们研究f的影响。

我们想要使 f 成为恒等映射,这是通过重新排列激活函数(ReLU 和/或 BN)来完成的。 [1]中原始Residual Unit的形状如图4(a)——每个权重层之后都使用BN,BN之后采用ReLU,只不过残差单元中的最后一个 ReLU 是在逐元素加法之后(f= ReLU)。 4(b-e)显示了我们研究的替代方案,解释如下。

4.1 激活实验

在本节中,我们使用 ResNet-110 和 164 层 Bottleneck [1] 架构(表示为 ResNet-164)进行实验。 瓶颈残差单元由用于降维的 1×1 层、用于降维的 3×3 层和用于恢复维度的 1×1 层组成。 按照[1]中的设计,其计算复杂度与2-3×3残差单元类似。 更多详细信息请参见附录。 基线 ResNet-164 在 CIFAR-10 上的竞争结果为 5.93%(表2)。

添加后的BN 在将f转变为恒等映射之前,我们反其道而行之,采用加法后的BN(图4(b))。 在这种情况下f涉及BN和ReLU。 结果变得比基线差得多(表2)。 与原来的设计不同,现在的BN层改变了通过捷径的信号,阻碍了信息传播,这从训练开始时难以减少训练损失就可以看出(图1)。 6 左)。

加法之前的 ReLU f 制作为恒等映射的一个简单选择是在加法之前移动 ReLU(图 4(c))。 然而,这会导致变换产生非负输出,而直观上“残差”函数应该采用(,+)中的值。 结果,前向传播的信号单调增加。 这可能会影响表征能力,结果比基线更差(7.84%,表2)。 我们期望有一个残差函数取 (,+) 中的值。 其他剩余单元也满足此条件,包括以下剩余单元。

Refer to caption
图5: 使用非对称添加后激活相当于构造一个预激活残差单元。

激活后还是激活前? 在最初的设计中(方程。(1) 和方程。(2)),激活𝐱l+1=f(𝐲l)会影响下一个剩余单元中的两条路径:𝐲l+1=f(𝐲l)+(f(𝐲l),𝒲l+1) 接下来,我们开发一个非对称形式,其中激活f^仅影响路径:𝐲l+1=𝐲l+(f^(𝐲l),𝒲l+1),对于任何l(图5(a)至(b))。 通过重命名符号,我们得到以下形式:

𝐱l+1=𝐱l+(f^(𝐱l),𝒲l),. (9)

很容易看出方程。(9) 类似于等式。(4),并且可以启用类似于方程(5)的向后公式。 对于这个新的残差单位,如方程式所示。(9),新的添加后激活成为恒等映射。 这种设计意味着,如果非对称地采用新的后加激活f^,则相当于将f^重铸为下一个Residual的预激活单元。 这如图5所示。

后激活/预激活之间的区别是由元素级添加的存在引起的。 对于具有 N 层的普通网络,存在 N1 激活(BN/ReLU),我们将它们视为后激活还是预激活并不重要。 但对于通过加法合并的分支层,激活的位置很重要。

我们尝试了两种这样的设计:(i) 仅 ReLU 预激活(图 4(d)),以及 (ii) 完全预激活(图 4) >(e)) 其中 BN 和 ReLU 均在权重层之前采用。 2 显示仅 ReLU 预激活的性能与 ResNet-110/164 上的基线非常相似。 该ReLU层不与BN层结合使用,并且可能无法享受BN[8]的好处。

表3: 使用原始残差单位和我们的预激活残差单位在 CIFAR-10/100 测试集上的分类错误 (%)。
dataset network baseline unit pre-activation unit
CIFAR-10 ResNet-110 (1layer skip) 9.90 8.91
ResNet-110 6.61 6.37
ResNet-164 5.93 5.46
ResNet-1001 7.61 4.92
CIFAR-100 ResNet-164 25.16 24.33
ResNet-1001 27.82 22.71

令人惊讶的是,当 BN 和 ReLU 都用作预激活时,结果得到了良好的改善(表 2 和表 3)。 在表 3 中,我们报告了使用各种架构的结果:(i) ResNet-110,(ii) ResNet-164,(iii) 110 层 ResNet 架构,其中每个快捷方式仅跳过 1 层(,一个残差单元只有 1 层),表示为“ResNet-110(1layer)”,以及 (iv) 一个 1001 层瓶颈架构,有 333 个残差单元(每个特征图尺寸上有 111 个残差单元) ),表示为“ResNet-1001”。 我们还在 CIFAR-100 上进行了实验。 3 显示我们的“预激活”模型始终优于基线模型。 我们在下面分析这些结果。

Refer to caption
图6: CIFAR-10 上的训练曲线。 :使用ResNet-110添加后的BN(图4(b))。 :ResNet-164上的预激活单元(图4(e))。 实线表示测试误差,虚线表示训练损失。

4.2分析

我们发现预激活的影响是双重的。 首先,由于 f 是恒等映射,因此进一步简化了优化(与基线 ResNet 相比)。 其次,使用 BN 作为预激活可以提高模型的正则化。

易于优化 当训练 1001-layer ResNet 时,这种效果尤其明显。 1显示了曲线。 使用[1]的原始设计,在训练开始时误差会非常缓慢地减少。 为了 f= ReLU,信号为负时会受到影响,当Residual Unit较多时,这种影响变得突出,式(1)(3)(所以等式。(5)) 不是一个好的近似值。 另一方面,当f是恒等映射时,信号可以直接在任意两个单元之间传播。 我们的 1001 层网络非常快地减少了训练损失(图1)。 在我们研究的所有模型中,它的损失也是最低的,这表明优化是成功的。

我们还发现,影响 f= 当 ResNet 层数较少时(例如,图6(右)中的 164 个),ReLU 并不严重。 刚开始训练时,训练曲线似乎会受到一些影响,但很快就会进入健康状态。 通过监控响应,我们观察到这是因为经过一些训练后,权重被调整为等式中的 𝐲l 状态。(1)更经常地高于零,而 f 不会截断它(由于前面的 ReLU,𝐱l 总是非负的,因此 𝐲l 只有在 非常负的情况下才会低于零)。 然而,当有 1000 层时,截断会更加频繁。

减少过度拟合 使用所提出的预激活单元的另一个影响是对正则化,如图6(右)所示。 预激活版本在收敛时达到稍高的训练损失,但产生较低的测试误差。 在 CIFAR-10 和 100 上的 ResNet-110、ResNet-110(1-layer)和 ResNet-164 上都观察到了这种现象。 这大概是BN的正则化效应[8]造成的。 在原始Residual Unit(图4(a))中,虽然BN对信号进行了归一化,但它很快就被添加到了shortcut中,因此合并后的信号没有被归一化。 然后将该未归一化的信号用作下一个权重层的输入。 相反,在我们的预激活版本中,所有权重层的输入都已标准化。

5结果

CIFAR-10/100 的比较。 4 比较了 CIFAR-10/100 上最先进的方法,我们取得了有竞争力的结果。 我们注意到,我们没有专门定制网络宽度或过滤器大小,也没有使用对这些小数据集非常有效的正则化技术(例如 dropout)。 我们通过一个简单但重要的概念获得这些结果——深入。 这些结果证明了突破深度极限的潜力

表 4: 使用“适度数据增强”(翻转/平移)在 CIFAR-10 和 CIFAR-100 上与最先进的方法进行比较(ELU [12] 除外)没有增强。 据报道,使用更强的数据增强和集成可以取得更好的[13, 14]结果。 对于 ResNet,我们还报告参数的数量。 我们的结果是 5 次运行的中位数,括号中为平均值 ±std。 所有 ResNets 结果均以 128 的小批量大小获得,除了 的小批量大小为 64(代码可在 https://github.com/KaimingHe/resnet-1k 获取) -层)。
CIFAR-10 error (%)
NIN [15] 8.81
DSN [16] 8.22
FitNet [17] 8.39
Highway [7] 7.72
All-CNN [14] 7.25
ELU [12] 6.55
FitResNet, LSUV [18] 5.84
ResNet-110 [1] (1.7M) 6.61
ResNet-1202 [1] (19.4M) 7.93
ResNet-164 [ours] (1.7M) 5.46
ResNet-1001 [ours] (10.2M) 4.92 (4.89±0.14)
ResNet-1001 [ours] (10.2M) 4.62 (4.69±0.20)
CIFAR-100 error (%)
NIN [15] 35.68
DSN [16] 34.57
FitNet [17] 35.04
Highway [7] 32.39
All-CNN [14] 33.71
ELU [12] 24.28
FitNet, LSUV [18] 27.66
ResNet-164 [1] (1.7M) 25.16
ResNet-1001 [1] (10.2M) 27.82
ResNet-164 [ours] (1.7M) 24.33
ResNet-1001 [ours] (10.2M) 22.71 (22.68±0.22)

ImageNet 上的比较。 接下来我们报告在 1000 类 ImageNet 数据集[3]上的实验结果。 我们使用图23中研究的跳跃连接在ResNet-101 [1]的ImageNet上进行了初步知识实验,并观察到类似的优化困难。 这些非恒等快捷网络的训练误差在第一个学习率下明显高于原始ResNet(类似于图3),由于资源有限,我们决定停止训练。 但我们确实在 ImageNet 上完成了 ResNet-101 的“添加后的 BN”版本(图 4(b)),并观察到更高的训练损失和验证错误。 该模型的单裁剪 (224×224) 验证误差为 24.6%/7.5%,原始ResNet-101的23.6%/7.1%。 这与图6(左)中CIFAR 的结果一致。

5显示了ResNet-152[1]和ResNet-200的结果333ResNet-200比ResNet-152多了16个3层瓶颈残差单元,添加在28个特征图上× 28.,全部从零开始训练。 我们注意到原始 ResNet 论文 [1] 使用较短边 s[256,480] 的尺度抖动来训练模型,因此对 224×224 裁剪进行测试s=256 上(如 [1] 中所做的那样)是负偏差。 相反,我们针对所有原始网络和我们的 ResNet 测试来自 s=320 的单个 320×320 裁剪。 尽管 ResNet 是在较小的作物上进行训练的,但它们可以轻松地在较大的作物上进行测试,因为 ResNet 在设计上是完全卷积的。 该大小也接近 Inception v3 [19] 使用的 299×299,从而可以进行更公平的比较。

原始 ResNet-152 [1] 在 320×320 裁剪上的 top-1 误差为 21.3%,而我们的激活前对应物为 21.1%。 ResNet-152 上的增益并不大,因为该模型没有表现出严重的泛化困难。 然而,原始 ResNet-200 的错误率为 21.8%,高于基线 ResNet-152。 但我们发现原始 ResNet-200 的训练误差低于,这表明它存在过拟合问题。

我们的预激活 ResNet-200 的错误率为 20.7%,比基线 ResNet-200 低 1.1%,也低于 ResNet-152 的两个版本。 当使用 [20, 19] 的比例和纵横比增强时,我们的 ResNet-200 的结果优于 Inception v3 [19](表 5)。 与我们的工作同时,Inception-ResNet-v2 模型 [21] 实现了 19.9%/4.9% 的单裁剪结果。 我们期望我们的观察结果和提议的残差单元将有助于这种类型以及一般其他类型的 ResNet。

表 5: ILSVRC 2012 验证集上单作物误差的比较。 所有 ResNet 均使用与 [1] 相同的超参数和实现进行训练。 我们的剩余单元是完整的预激活版本(图4(e))。 :代码/模型可在 https://github.com/facebook/fb.resnet.torch/tree/master/pretrained 获取,使用比例和纵横比增强[20]
method augmentation train crop test crop top-1 top-5
ResNet-152, original Residual Unit [1] scale 224×224 224×224 23.0 6.7
ResNet-152, original Residual Unit [1] scale 224×224 320×320 21.3 5.5
ResNet-152, pre-act Residual Unit scale 224×224 320×320 21.1 5.5
ResNet-200, original Residual Unit [1] scale 224×224 320×320 21.8 6.0
ResNet-200, pre-act Residual Unit scale 224×224 320×320 20.7 5.3
ResNet-200, pre-act Residual Unit scale+asp ratio 224×224 320×320 20.1 4.8
Inception v3 [19] scale+asp ratio 299×299 299×299 21.2 5.6

计算成本。 我们模型的计算复杂度与深度呈线性关系(因此 1001 层网络是 100 层网络的 10× 复合体)。 在 CIFAR 上,ResNet-1001 在 2 个 GPU 上训练大约需要 27 小时;在 ImageNet 上,ResNet-200 在 8 个 GPU 上训练大约需要 3 周(与 VGG 网络 [22] 相当)。

6 结论

本文研究了深度残差网络连接机制背后的传播公式。 我们的推导表明身份快捷连接和身份添加后激活对于使信息传播顺利至关重要。 消融实验证明了与我们的推导一致的现象。 我们还提出了 1000 层深度网络,可以轻松训练并提高准确性。

附录:实施细节

实现细节和超参数与[1]中的相同。 在 CIFAR 上,我们仅使用 [1] 中的平移和翻转训练增强。 学习率从0.1开始,在32k和48k迭代时除以10。 [1]之后,对于所有 CIFAR 实验,我们在开始 400 次迭代时使用较小的学习率 0.01 来预热训练,并在之后返回到 0.1,尽管我们指出这不是必要的对于我们建议的剩余单位。 2 个 GPU 上的小批量大小为 128(每个 GPU 64 个),权重衰减为 0.0001,动量为 0.9,权重的初始化如 [23] 中所示。

在 ImageNet 上,我们使用与 [1] 中相同的数据增强来训练模型。 学习率从 0.1(无预热)开始,在 30 和 60 epoch 时除以 10。 8 个 GPU(每个 32 个)上的小批量大小为 256。 权重衰减、动量和权重初始化与上面相同。

当使用预激活剩余单元时(图4(d)(e)和图5),我们特别注意第一个和最后一个剩余单元整个网络的。 对于第一个残差单元(位于独立卷积层 conv1 之后),我们在 conv1 之后、分成两条路径之前采用第一个激活;对于最后一个残差单元(后面是平均池化和全连接分类器),我们在按元素添加后立即采用额外的激活。 这两种特殊情况是我们通过如图5所示的修改过程获得预激活网络时的自然结果。

瓶颈残差单元(对于 CIFAR 上的 ResNet-164/1001)是按照 [1] 构建的。 例如,一个 [3×3, 163×3, 16] ResNet-110 中的单元被替换为 [1×1, 163×3, 161×1, 64] ResNet-164 中的单元,两者的参数数量大致相同。 对于瓶颈ResNets,当减少特征图大小时,我们使用投影快捷方式[1]来增加维度,并且当使用预激活时,这些投影快捷方式也具有预激活。

参考

  • [1] He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR. (2016)
  • [2] Nair, V., Hinton, G.E.: Rectified linear units improve restricted boltzmann machines. In: ICML. (2010)
  • [3] Russakovsky, O., Deng, J., Su, H., Krause, J., Satheesh, S., Ma, S., Huang, Z., Karpathy, A., Khosla, A., Bernstein, M., Berg, A.C., Fei-Fei, L.: ImageNet Large Scale Visual Recognition Challenge. IJCV (2015)
  • [4] Lin, T.Y., Maire, M., Belongie, S., Hays, J., Perona, P., Ramanan, D., Dollár, P., Zitnick, C.L.: Microsoft COCO: Common objects in context. In: ECCV. (2014)
  • [5] Hochreiter, S., Schmidhuber, J.: Long short-term memory. Neural computation (1997)
  • [6] Srivastava, R.K., Greff, K., Schmidhuber, J.: Highway networks. In: ICML workshop. (2015)
  • [7] Srivastava, R.K., Greff, K., Schmidhuber, J.: Training very deep networks. In: NIPS. (2015)
  • [8] Ioffe, S., Szegedy, C.: Batch normalization: Accelerating deep network training by reducing internal covariate shift. In: ICML. (2015)
  • [9] LeCun, Y., Boser, B., Denker, J.S., Henderson, D., Howard, R.E., Hubbard, W., Jackel, L.D.: Backpropagation applied to handwritten zip code recognition. Neural computation (1989)
  • [10] Krizhevsky, A.: Learning multiple layers of features from tiny images. Tech Report (2009)
  • [11] Hinton, G.E., Srivastava, N., Krizhevsky, A., Sutskever, I., Salakhutdinov, R.R.: Improving neural networks by preventing co-adaptation of feature detectors. arXiv:1207.0580 (2012)
  • [12] Clevert, D.A., Unterthiner, T., Hochreiter, S.: Fast and accurate deep network learning by exponential linear units (ELUs). In: ICLR. (2016)
  • [13] Graham, B.: Fractional max-pooling. arXiv:1412.6071 (2014)
  • [14] Springenberg, J.T., Dosovitskiy, A., Brox, T., Riedmiller, M.: Striving for simplicity: The all convolutional net. arXiv:1412.6806 (2014)
  • [15] Lin, M., Chen, Q., Yan, S.: Network in network. In: ICLR. (2014)
  • [16] Lee, C.Y., Xie, S., Gallagher, P., Zhang, Z., Tu, Z.: Deeply-supervised nets. In: AISTATS. (2015)
  • [17] Romero, A., Ballas, N., Kahou, S.E., Chassang, A., Gatta, C., Bengio, Y.: Fitnets: Hints for thin deep nets. In: ICLR. (2015)
  • [18] Mishkin, D., Matas, J.: All you need is a good init. In: ICLR. (2016)
  • [19] Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., Wojna, Z.: Rethinking the inception architecture for computer vision. In: CVPR. (2016)
  • [20] Szegedy, C., Liu, W., Jia, Y., Sermanet, P., Reed, S., Anguelov, D., Erhan, D., Vanhoucke, V., Rabinovich, A.: Going deeper with convolutions. In: CVPR. (2015)
  • [21] Szegedy, C., Ioffe, S., Vanhoucke, V.: Inception-v4, inception-resnet and the impact of residual connections on learning. arXiv:1602.07261 (2016)
  • [22] Simonyan, K., Zisserman, A.: Very deep convolutional networks for large-scale image recognition. In: ICLR. (2015)
  • [23] He, K., Zhang, X., Ren, S., Sun, J.: Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In: ICCV. (2015)