「Deep Learning」ILSVRC-图像分类经典卷积网络

时间:2024-03-31 12:05:55
Sina Weibo:小锋子Shawn
Tencent E-mail:[email protected]
http://blog.csdn.net/dgyuanshaofeng/article/details/78007901

    最近,人工智能自动驾驶创业公司Momenta的Jie Hu发布了ILSVRC2017图像分类的冠军模型SENets。团队WMW的另外两个队员分别是Li Shen和Gang Sun。“SENets formed the foundation of our ILSVRC 2017 classification submission which won first place and significantly reducedthe top-5 error to 2.251%, achieving a ∼25% relative improvement over the winning entry of 2016.”他们整理和写成论文发表在ArXiv上,让我们清楚SE block的insight和结构。正因为ILSVER2017是最后一届了,所以我想整理基于卷积网络以及其他改进结构/方法的图像分类模型。SENet的论文在Places数据集上进行了实验,也正好被AI Challenger里面的场景分类子比赛碰上了,各位参赛人可以参考SENet的论文。目前,我正在利用这个网络进行场景分类。

    ILSVRC: ImageNet Large Scale Visual Recognition and Challenge
    从2010开始第一届,到2017年,一共8届图像分类(Image Classification, CLS)比赛,其错误率如图1和图2。截图来自Kaiming[1]和Eunbyung Park[2]。图1“shallow”表示非CNN的方法,如SVM、RF和SIFT、HOG这些分类器和人工特征组合的方法。2012年由AlexNet开启了CNN统治时代。12和13年均是8层(5层卷积+3层全连接)。14年冠亚军分别是更深的网络,分别为22层和19层。15年,残差网络横空出世,152层。2016年和2017年的冠军模型就是Inception blocks和Residul bloks的组合或者模型的组合了,特别2017年还有SE blocks。Top5错误率的减少上,AlexNet减少了10个点,ZFNet再减少5个点,VGGNet和GoogLeNet再减少4-5个点,ResNet再减少3.5个点,这时候,性能已经超过人类了,*三所再减少0.6个点,到2017年SENet再减少0.7个点。ImageNet已经被刷爆,完成了它的使命,驱动新算法的诞生,带来了基于深度学习的人工智能的第4次革命。
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图1
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图2
   Before 2012: LeNet (LeCun's Net)
    LeNet-5是卷积网络的第一个较为成功的模型并且应用在商业上,里面包含的卷积层、子采样层、全连接层均在现代卷积网络中得到了继承。该模型由Yann LeCun等人在1998年提出,如图3[1]。卷积层的作用有两个,一个是局部连接,另一个空间上权值共享,详细介绍参考DL书[3]。子采样层的作用主要有一个,减少特征图谱的大小,可以通过最大或均值池化,或者其他池化方式,也可以通过大stride的卷积,详细参考相关计算公式,如Caffe。最后一层的全连接层的输出,设置为分类个数,相当于SVM。
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图3
    石破天惊的AlexNet
    AlexNet是由Alex和Hinton等人在2012年提出的,如图4。在ILSVRC2012图像分类上以较大的优势赢得了第一名,预示着基于卷积网络的深度学习技术在视觉任务上遍地开花。该模型由5层卷积层和3层全连接层组成,其中还有池化层。该论文中有很多观点和技巧直到2017年依然有用或者启发人们。分组卷积、数据增强、Dropout、ReLU这些,基本成为构建卷积网络的必要模块。图4中的“RevoLUtion of deep learning”估计是Kaiming赋予给ReLU的另一个意思,其实ReLU是rectified linear units,矫正线性单元,也就是添加非线性。ReLU这个**层可以加速网络的训练,可以比sigmoid和tanh更利于梯度传播。Dropout是借鉴bagging和ensembling思想,一个网络中集成多个网络,一般用在全连接层,防止网络过拟合,提升泛化性能。我很少用Dropout,因为如Kaiming说的那样,可以用BatchNorm替代它。数据增强,使我们经常使用的,正所谓“增加数据是最好的正则化方法”。但是,注意在不同任务之下,有些方法是不合适的,比如心电信号图像分类,就不要用mirror了。标签保持变换,那就是对于分割任务,我们的label map做scale的时候,要用最近邻方法。等等内容,具体任务具体注意。
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图4
    可视化技术带来的ZFNet
    ZFNet通过反向卷积技术可视化AlexNet里面学到的特征/模式,进而对AlexNer进行改进,轻松获得5%的错误率下降。第一层卷积采用了7*7卷积核和stride=2,比AlexNet更密集计算,如图5[4]。
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图5
    分道扬镳却殊途同归的VGGNet和GoogLeNet
    分道扬镳说的是牛津大学VGG设计的网络和谷歌设计的网络在表征能力的增强上采用不同的思路。殊途同归说的是两者的分类性能差不多,前者是亚军,后者是冠军。VGGNet-16和-19是基于网络加深会增强表征能力的思路,如图6。可是,在训练上带来了不少麻烦,比如需要先训练浅网络和再逐渐加深,如果要end2end训练需要精心设计的初始化方法,常用的是Xavier(基于线性假设)和MSRA(基于ReLU非线性假设)。如图7所示,Kaiming给了我们4点经验。GoogLeNet是基于多尺度特征融合的思路,先设计Inception模块,后堆叠这些模块构成分类网络,如图8。论文中使用的辅助分类器(图8前面两个黄色的矩形框)思路是为了解决深层网络网络难以训练的问题。该网络的特点如Kaiming总结为又准又开销小,所以Inception后面就有Xception和MobileNet,这些网络考虑推理过程的efficiency,好部署在移动设备上。Kaiming总结了三点,第一点是Inception模块中的多分支,第二点是shortcuts: 单独1*1卷积分支,第三点是bottlenecks: 先进行1*1卷积降维,再升维。shortcuts和resnet的identity mapping一样,可以帮助相关的block训练。这是第一版,有了BatchNorm是第二版,Rethinking是第三版,结合residual block是第四版。
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图6
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图7
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图8
    深度残差学习带来的ResNet
    ResNet由Kaiming He、Xiangyu Zhang、Shaoqing Ren和Jian Sun这些人提出,由Residual block构成。深度残差学习思想成为了学术界和工业界的标准,广泛应用于各种视觉任务中,比如去噪、分割、超分。简略介绍可见ILSRVC2015的结果。如图9为residual block。ResNet结合多分支就演变成ResNeXt。
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图9

    集成/融合狂魔: *三所(Trimps-Soushen)
    2016年的ILSVRC的结果中,*三所是这么描述的,"Based on image classification models like Inception(v3-v4)Inception-Resnet(v2)ResNet and Wide Residual Network (WRN), we predict the class labels of the image. Then we refer to the framework of "Faster R-CNN" to predict bounding boxes based on the labels. Results from multiple models arefused in different ways, using the model accuracy as weights. " 研讨会的PPTVideo有介绍,但是方法没有说。

   最后一届: 加上Attention Mechanism的SENet
    SENet论文介绍作者在空间编码研究之外,研究了通道编码,通过特征重标定,对通道关系进行建模,进一步增强了卷积网络的表达能力。结合研讨会PPT一起看吧。SE block预计和Residual block一样成为构造卷积网络的模块之一。具体模块以及作用如图10所示。第一步,利用GAP进行挤压,一个二维特征图谱得到一个通道描述子;第二步,做一个映射,对通道描述子组成的向量进行加权;第三步,利用上一步得到的权重对挤压前的二维特征图谱进行加权,用Scale层做重标定。就这样简单,而且有效。如图11所示,为两个例子,一个是Inception,一个是residual connection。
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图10
「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络
图11

 参考文献: