学习了~
来自阿联酋起源人工智能研究院(IIAI)的研究人员公布了一篇论文Improved Residual Networks for Image and Video Recognition,深入研究了残差网络不能更深的原因,提出了改进版的残差网络(Improved Residual Networks,iResNet),使得训练超深网络时更容易收敛,在多个计算机视觉任务(图像分类,COCO目标检测,视频动作识别)中精度也更高。
作者成功在ImageNet数据集上训练了404层网络的模型,在CIFAR-10和CIFAR-100数据集上训练了3002层网络的模型,而原始的残差网络在达到上述层数的时候已经无法收敛。
该文作者信息:
因残差网络几乎已经成为所有深度卷积网络的标配,“涨点又不涨计算量”的iResNet的出现,或可影响深远。
算法思想
作者主要从三个方向来思考残差网络的改进:
1)促进信息在网络中的流动(Improved flow of information)
2)减少信息损失(Improved projection shortcut)
3)不增加计算量前提下增强残差模块的学习能力(Grouped building block)
1. Improved information flow through the network
作者认为原始的ResNet网络模块中的ReLU在将负信号置0时影响了信息的传播,这种情形在刚开始训练时尤其严重,提出了一种分网络阶段(stage)的三种不同残差构建模块。
以50层的残差网络为例,作者按照网络中特征的空间分辨率大小划分四个阶段(stage),相同分辨率的残差模块被分为同一个stage,
每个stage都包含有下图中start ResBlock、Middle ResBlock、End ResBlock三种残差模块,每个stage有一个start ResBlock 、一个End ResBlock 和数个Middle ResBlock。
减少整体上ReLU对信息流通的影响。
2. Improved projection shortcut
projection shortcut 被用于残差网络特征维度改变的时候,用于将不同特征维度的特征相加之前的处理。原始的残差网络使用stride为2的1x1卷积进行通道的改变。如下图中的(a)。
作者认为1x1卷积丢弃了大量信息,提出先使用3x3 max Pooling再使用1x1卷积的方案,即实现了保留重要信息的降维。
3. Grouped building block
作者认为原始的残差网络中瓶颈模块(bottleneck block)不够好,这种上下粗中间细的结构中,前面的1x1卷积是为了降通道数进而减少计算量,后面的1x1卷积是为了特征对齐,3x3卷积部分被限制了,只有它在“认真的”学习特征模式,将其通道数减少虽然提高了计算速度,却降低了网络表达能力。(算是一种不得已而为之的设计吧)
而新的组卷积(Group conv)技术方案恰好可以解决这个问题。所以作者提出使用组卷积构建模块替换瓶颈模块。
如下图:
ResGroup在不增加计算量的前提下可更好的让3x3卷积发挥作用。
实验结果
使用上述改进方案,可以训练更深层的网络模型,而且相对原始方案,在相同深度时,iResNet的精度也更高。
下图为在ImageNet上训练50、101、152、200层网络时的结果比较:
可见原始残差网络在超过152层时精度开始下降,iResNet精度一直在上升,且比其他方案的精度更好。
下图为训练时的验证集精度曲线,从趋势上看,iResNet具有持续精度提升的表现。
下图为训练404层iResNet网络和152、200层ResNet网络的比较:
随着层数增多,iResNet网络的精度持续提高。
在视频动作识别人中中使用iResNet也明显改进了结果:
在CIFAR-10和CIFAR-100数据集上,不同深度网络的表现:
iResNet的精度随着层数增加到2000层时精度还在提升,达到3002层时精度下降,而ResNet无法在2000层收敛。
在COCO目标检测数据集训练使用了iResNet的SSD算法,同样取得了精度提升。
iResNet与其他知名图像分类算法在ImageNet数据集上的比较:
iResNet 比大部分方法好,但使用了其他技巧的顶尖选手NASNet-A和SENet-154的精度更高,而 iResNet 可以用来构建这些网络。
这么深,有必要吗?
作者提出的算法的确比原始的残差网络收敛性要好,甚至训练了3002层的网络,但这么深真的有必要吗?而且我们也可以看到超深网络带来的精度增益不太明显,但计算量的增加是显然的。
作者在文末特意说明了,我们应当以“发展的眼光”看问题,超深网络在实际应用中目前是不可取的,但随着新技术的出现,这终有一天不会是问题。本文提出的方法可成为训练超深网络的工具,或可启发其他算法的出现。
iResNet 可完美替换ResNet,精度提高计算量不增加,所以在实际应用中也不失为一个好的选择。
论文地址:
https://arxiv.org/abs/2004.04989
代码地址:
https://github.com/iduta/iresnet
关注公众号~