[论文解读] Deep Networks with Stochastic Depth
本论文提出随机深度以训练非常深的 ResNet 风格网络,在训练过程中随机丢弃层,使深度模型(超过1000层)训练更快且测试准确性提升,并将训练视为对不同深度的隐式集成。
Very deep convolutional networks with hundreds of layers have led to significant reductions in error on competitive benchmarks. Although the unmatched expressiveness of the many layers can be highly desirable at test time, training very deep networks comes with its own set of challenges. The gradients can vanish, the forward flow often diminishes, and the training time can be painfully slow. To address these problems, we propose stochastic depth, a training procedure that enables the seemingly contradictory setup to train short networks and use deep networks at test time. We start with very deep networks but during training, for each mini-batch, randomly drop a subset of layers and bypass them with the identity function. This simple approach complements the recent success of residual networks. It reduces training time substantially and improves the test error significantly on almost all data sets that we used for evaluation. With stochastic depth we can increase the depth of residual networks even beyond 1200 layers and still yield meaningful improvements in test error (4.91% on CIFAR-10).
研究动机与目标
- 激发并解决极深卷积神经网络(CNN)的训练挑战(梯度消失、前向信息流减弱、训练时间长)
- 提出一种简单、兼容的训练过程(随机深度),建立在残差网络之上,在训练时缩短深度,同时在测试时保持完整深度。
- 证明随机深度在多个数据集(CIFAR-10/100、SVHN、ImageNet)上减少训练时间并改善测试误差。
- 表明该方法作为隐式集成并提供类似 dropout 的正则化效果,有利于具有批量归一化的网络。
提出的方法
- 为每个 ResBlock 引入一个伯努利变量 b_l,用以指示在一个训练前向传播中它是否处于活动状态(b_l ∈ {0,1})。
- 为每个块定义生存概率 p_l,并通过在块的路径中将 f_l(H_{l-1}) 替换为 0 来旁路非活动块,生效时实质上使用恒等跳跃连接。
- 使用线性衰减规则 p_l = 1 - (l/L)(1 - p_L) 从 p_0 = 1 到 p_L(通常 p_L = 0.5)。
- 通过在每个小批量中降低有效深度并对不同子网络进行采样来训练非常深的 ResNets;在测试时保持完整深度,但通过将输出按 p_l 进行缩放以 reflecting 训练参与度(方程 5)。
- 论证随机深度可实现更快的训练(深度平均的前向/反向传播)并通过隐式集成与正则化效果提升泛化能力。
- 在 CIFAR-10/100、SVHN 和 ImageNet 上进行经验评估,包括在 1202 层网络上的实验,其中随机深度相较于标准 ResNets 取得提升。
实验结果
研究问题
- RQ1随机深度是否能在保持或提升测试准确性的同时,使网络深度超过 1000 层?
- RQ2在训练时缩短网络深度是否可以在不牺牲性能的情况下减少训练时间?
- RQ3与恒定深度的 ResNets 相比,随机深度如何影响梯度流动和训练动态?
- RQ4该方法是否作为有效的正则化器并隐式地对多个深度进行集成?
主要发现
- 使用随机深度训练显著减少训练时间(在 CIFAR-10/100 和 SVHN 上约为 25%)。
- 具有随机深度的 ResNet 在 CIFAR-10(5.25% 对 6.41%)、CIFAR-100(24.98% 对 27.76%)和 SVHN(1.75% 对 1.80%)相比恒定深度的对照组获得更低的测试误差。
- 在 CIFAR-10 上,1202 层的带随机深度的 ResNet 实现了 4.91% 的测试误差,当时是新的记录,并显示相较于 110 层版本的改进。
- 在 CIFAR-100 上,随机深度将错误率从 27.76% 降至 24.98%(当时的单模型最先进性能)。
- ImageNet 结果表明该方法可应用于非常深的网络(152 层 ResNet);在随机深度下,最终验证误差分别为 21.78% 和 21.98%,表明在更长训练、较大模型上可能获得提升。
- 该方法强化了梯度流动(学习率下降后梯度幅值更大),并表现出类似 dropout 的强正则化作用,即使使用 Batch Normalization。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。