近年来, 由于计算机技术的飞速迅猛发展, 特别是硬件条件的改善, 计算能力不断提高, 深层神经网络训练的时间大大缩短, 深度残差网络也迅速成为一个新的研究热点. 深度残差网络作为一种极深的网络架构, 在精度和收敛等方面都展现出了很好的特性. 研究者们深入研究其本质并在此基础上提出了很多关于深度残差网络的改进, 如宽残差网络, 金字塔型残差网络, 密集型残差网络, 注意力残差网络等等. 本文从残差网络的设计出发, 分析了不同残差单元的构造方式, 介绍了深度残差网络不同的变体. 从不同的角度比较了不同网络之间的差异以及这些网络架构在常用图像分类数据集上的性能表现. 最后我们对于这些网络进行了总结, 并讨论了未来深度残差网络在图像分类领域的一些研究方向.
Recently, the training time of deep neural network has been greatly shortened because of the rapid development of computer technology especially the improvement of hardware conditions. The deep residual network has rapidly become a new research hotspot. The architecture exhibits good features in terms of precision and convergence. Researchers have delved into its nature and proposed many improvements on deep residual networks, such as wide residual networks, deep pyramidal residual networks, densely residual networks, attention residual network, etc. This study analyzes the construction of different residual units from the design of residual network, and introduces different variants of deep residual network. From different aspects, We compare the differences between different networks and the performance of these network architectures on common image classification datasets. Finally, we summarize these networks and discuss some research directions of future deep residual networks in the field of image classification.
深度神经网络的出现, 使得图像分类领域取得了一系列的突破. 深度神经网络可以通过多级表示, 学习到更加复杂的高级语义特征. 在一个端到端的多层模型中, 低、中、高不同级别的特征以及分类器被整合起来, 特征的等级随着通过所堆叠层的数量(深度)逐渐丰富[
然而, 网络的深度并非越深越好. 在一定的深度范围内, 随着网络层数的增加, 模型可以拟合更加复杂的函数, 模型性能也可以得到提升. 但是在网络层数增加到一定的数目之后, 继续增加网络的层数, 训练精度和测试精度迅速下降. 研究人员发现, 随着网络深度的增加, 准确率达到饱和后再增加网络的深度分类的效果反而越来越差. 实验表明, 20层以上的深度网络, 继续叠加增加网络的层数, 分类的精度反而会降低, 50层网络的测试误差率大概是20层网络的一倍[
为了解决由于深度增加带来的网络退化问题, 2015年微软亚洲研究院的He等人[
由于深度残差网络的优良特性, 它被应用到多个领域, 例如人脸识别[
直接增加网络的深度, 会使得深度学习系统很难被优化. 假设我们现在有一个浅层的网络, 那么应该存在一个深层的网络: 它是在由浅层网络的基础上堆叠了多个
在浅层网络已经达到了饱和之后, 通过在它后面再加上恒等映射层(identity mapping), 不仅可以使得网络的深度增加使得模型有更强的表现能力, 而且保证了系统的误差不会随着深度增加而增加[
假设原始神经网络的一个残差单元要学习的目标映射为
深度残差网络的基本组成单元是残差单元, 残差单元一般由卷积Conv层, 批处理归一化Batchnorm层和非线性激活函数Relu共同构成.
其中,
原始残差学习单元结构图
深度残差网络由多个残差学习单元堆叠而成. 给定输入的图像数据, 深度残差网络首先将输入数据依次送入卷积层Conv、非线性激活函数层Relu和批处理归一化层Batchnorm; 然后将处理的结果进一步送入到多个残差单元, 再经过批处理归一化层BN 和多个全连接层; 最后得到输出结果.
在构建”超深”的网络比如100层以上的网络时, 将多个原始残差学习模块直接堆叠起来会造成参数的爆炸. 为了在不损失精度的情况下降低深层网络的的参数量, He等人[
Bottleneck结构
在原始残差单元的基础上, 研究者对于Batchnorm[
不同残差单元结构图
不同残差单元错误率对比(单位: %)
不同残差单元 | CIFAR-10 | CIFAR-100 |
(a)预激活 | 5.82 | 25.06 |
(b)去除第一个Relu | 5.31 | 24.55 |
(c)在最后添加BN层 | 5.74 | 24.54 |
CIFAR-10和CIFAR-100是图像分类领域常用的比较性能的数据集. CIFAR-10数据集由来自10个类的60 000个32×32彩色图像组成, 其中每个类包含6000个图像, 有50 000个训练图像和10 000个测试图像[
CIFAR-100数据集是CIFAR-10的扩展数据集, 它包含的类别数更多(100个类别), 每个类别中有600张图像(500张训练图像和100张测试图像). 除此之外, CIFAR-100中的100个小类还可以被分成20个大类. 数据集中的每个图像都带有一个“精细”的类别标签(它所属的小类)和一个“粗糙”标签(它所属的大类).
在原始深度残差网络的启发下, 研究者们从不同的角度出发(例如继续增加网络的深度、增加的网络的宽度、更细化的网络架构设计、引入注意力机制等等), 为了增加模型的表示能力和泛化能力, 提高模型提取特征的能力, 对于深度残差网络进行了不同方向的改进, 同时在CIFAR-10, CIFAR-100这两个图像分类数据集上进行了性能验证.
CIFAR10数据集示例图[
Zhang等人[
宽残差网络的实验结果表明, 宽度可以提高特征的复用, 能够带来网络表现能力和泛化能力的提升, 同样的参数数量, 宽的网络训练训练速度也更快. WRN的具体构造如
Veit等人[
组名 | 输出大小 | 残差单元 |
Conv1 |
|
|
Conv2 |
|
|
Conv3 |
|
|
Conv4 |
|
|
Avg-Pool |
|
|
不同配置的宽残差网络实验结果
深度 | 参数量 (M) | CIFAR-10 (%) | CIFAR-100 (%) | |
40 | 1 | 0.6 | 6.85 | 30.89 |
40 | 2 | 2.2 | 5.33 | 26.04 |
40 | 4 | 8.9 | 4.97 | 22.89 |
40 | 8 | 35.7 | 4.66 | − |
28 | 12 | 52.5 | 4.33 | 20.43 |
22 | 8 | 17.2 | 4.38 | 21.22 |
22 | 10 | 26.8 | 4.44 | 20.75 |
16 | 8 | 11.0 | 4.81 | 22.07 |
16 | 10 | 17.1 | 4.56 | 21.59 |
深度残差网络下一般在下采样残差单元中将通道数加倍. 实验发现, 在深度残差网络中分别删除下采样功能的残差单元和非下采样的残差单元, 删除下采样的残差单元会造成网络更多的性能下降. 为了更好的解决这个问题, Han等人[
金字塔型网络残差单元
金字塔型残差网络具体架构
组名 | 输出大小 | 残差单元 |
Conv1 |
|
|
Conv2 |
|
|
Conv3 |
|
|
Conv4 |
|
|
Avg-Pool |
|
|
金字塔型残差网络分类错误率对比
PyramidNet | 参数量(M) | CIFAR-10 (%) | CIFAR-100 (%) |
PyramidNet(
|
1.7 | 4.58 | 23.12 |
PyramidNet(
|
3.8 | 4.26 | 20.66 |
PyramidNet (
|
27.0 | 3.48 | 17.01 |
PyramidNet (
|
26.6 | 3.44 | 16.51 |
PyramidNet (
|
26.8 | 3.40 | 16.37 |
金字塔残差网络的通道数的具体计算公式如式(2), 其中
这种网络设计可以有效的改善过拟合的问题, 与其他网络架构设计相比, 它显示出很好的泛化能力; 而且在金字塔型的残差网络中, 删除具有下采样功能的残差单元不会降低性能.
受到 ResNet 将输入和输出相加形成残差结构的启发, Huang等人[
在原始的深度残差网络中, 恒等映射的输出是通过加法结合起来的. 在这种情况下, 如果两个层的特征映射的分布差异性很大的话, 这有可能会影响特征的重用同时阻碍信息流的传播. 密集型网络(DenseNet)(如
密集型网络结构图[
不同增长率
DenseNet | 参数量(M) | CIFAR-10 (%) | CIFAR-100 (%) |
Densenet ( |
0.8 | 4.51 | 22.27 |
Densenet ( |
15.3 | 3.62 | 17.60 |
注意力机制在计算机视觉中也起着重要的作用, 注意力机制不止能使得运算聚焦于特定的区域, 同时也可以使得该部分区域的特征重要性得到增强. 为了在深度残差网络中引入注意力的机制, Wang等[
一个注意力残差单元如
注意单元的计算公式如式(3), 其中
注意力残差单元结构图[
残差注意力模型不仅可以提升网络的性能, 还具有很强的扩展性, 可以结合到目前的大部分深层网络中, 做到端到端的训练. 因为残差结构的存在, 也可以很容易将网络扩展到百数层. 实验证明, 使用该种策略可以在达到其他大网络的分类准确率的同时显著降低计算量(计算量基本上为原始ResNet深层网络的69%左右), 具体的实验结果如
注意力残差网络错误率对比
网络架构 | 参数量(M) | CIFAR-10 (%) | CIFAR-100 (%) |
Attention-92 | 1.9 | 4.99 | 21.71 |
Attention-236 | 5.1 | 4.14 | 21.16 |
深度残差网络的由于网络更深或者更宽, 网络的参数量很大, 往往非常容易造成过拟合, 模型在训练集上表现很好, 在测试集上却表现很差. 为了解决过拟合的问题, 同时受到Dropout思想的启发, 随机深度残差网络(ResDrop)[
在训练期间, 随机深度残差网络的深度会减小, 进而会导致前向传播和反向传播的深度变短, 所以其训练时间不会随着深度残差网络的深度而线性地增加.
此外, 训练期间网络深度的减少会增强前边层参数的梯度更加有利于梯度的传播, 这将使得1000层以上的随机深度残差网络能够正常训练. 随机深度的残差网络可以被看做不同深度网络的集成[
深度残差网络一直是图像分类领域研究的热点. 自从深度残差网络被提出以来, 研究者们为了提升深度残差网络的表征能力和泛化能力, 提高在分类任务上的表现, 研究出了多个改进的版本[
基于残差单元的改进主要是通过修改残差单元的不同层的摆放位置和修改残差单元的残差函数. Zhang在残差单元中加入Dropout[
基于整体网络结构设计的改进的研究是指改变网络结构的整体框架. 通过改进深度残差网络的架构使得梯度更加容易传播, 模型的表示能力更强, 残差网络更容易优化. Zhang等人[
将Attention机制引入深度残差网络是目前研究的热点方向之一. Squeeze and excitation networks[
此外, 还有一些研究者将3种方法混合也取得了很好的效果, 例如Tan等人[
深度残差网络性能对比
网络架构 | 参数量 (M) | CIFAR-10 (%) | CIFAR-100 (%) |
WRN-28-10 | 36.5 | 4.17 | 20.5 |
PyramidNet(bottleneck, |
26.0 | 3.31 | 16.35 |
Densenet ( |
25.6 | 3.46 | 17.18 |
Attention-452 | 8.6 | 3.90 | 24.54 |
Stoc-depth-110 | 1.7 | 5.25 | 24.98 |
深度残差网络的出现, 极大的提高了深度学习的表征能力和学习能力, 成为图像分类领域研究的热点方向.
本文分析了深度残差网络和其变体, 比较不同模型在常用图像分类数据集上的性能表现, 通过分析可见在图像分类领域深度残差网络已有一定的研究成果. 鉴于目前深度残差网络和其变体还存在收敛速度慢、训练时间长、网络参数冗余、网络设计复杂、对于数据需求量大依赖人为标注等缺点, 未来的研究方向在于:
(1) 减少深度残差网络的参数, 在不损失精度的情况下对于深度残差网络进行有效的压缩. 深度残差网络由于在宽度和深度上增加了很多, 会产生很多的冗余参数, 如何在不损失性能的情况下减少深度残差网络的参数量从而提高深度残差网络的计算性能是个具有现实意义的问题.
(2)在数据量较小的情况下, 获得更好的性能. 目前在图像分类领域深度残差网络的精度仍然依赖于数据集样本的多少, 数据增强的策略等. 在数据标注不足的情况下, 如何获得相同的性能也是一个值得关注的问题. 更少的依赖有监督学习和人类的先验标注信息, 将无监督学习或者强化学习和深度残差网络结合值得我们不断的探索.
(3)增强深度残差网络的学习能力和泛化能力. 深度残差网络的参数量往往很大, 模型往往在训练集上效果效果很好, 在测试集上效果很差, 如何防止过拟合使得模型可以很好地泛化是一个值得研究的问题. 另外, 在现有基础上, 改进残差单元和残差网络的结构、引入注意力机制以及混合改进等, 使得深度残差网络在分类任务上取得更高的准确率是值得深入探索的核心问题.
https://doi.org/10.19734/j.issn.1001-3695.2018.12.0922. [2019-10-27].]]>
张帆, 张良, 刘星, 等. 基于深度残差网络的脱机手写汉字识别研究. 计算机测量与控制, 2017, 25(12): 259–262.
http://kns.cnki.net/kcms/detail/11.2127.TP.20190527.1720.009.html. [2019-10-27].]]>
Wu ZF, Shen CH, Van Den Hengel A. Wider or deeper: Revisiting the ResNet model for visual recognition. Pattern Recognition, 2019, 90: 119–133.
宋伟, 纳鹏宇, 刘宁宁. 基于双目视觉系统的运动目标跟踪算法研究. 北京交通大学学报, 2013, 37(6): 13–17, 26.
苏松志, 李绍滋, 陈淑媛, 等. 行人检测技术综述. 电子学报, 2012, 40(4): 814–820.
王灿辉, 张敏, 马少平. 自然语言处理在信息检索中的应用综述. 中文信息学报, 2007, 21(2): 35–45.
Ioffe S. Batch renormalization: Towards reducing minibatch dependence in batch-normalized models. Advances in Neural Information Processing Systems. 2017. 1942–1950. (请补充出版地信息)
https://www.cs.toronto.edu/~kriz/conv-cifar10-aug2010.pdf.]]>
Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: A simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 2014, 15: 1929–1958.
Zhang K, Sun M, Han TX, et al. Residual networks of residual networks: Multilevel residual networks. IEEE Transactions on Circuits and Systems for Video Technology, 2018, 28(6): 1303–1314.