卷积神经网络在图像识别的最新进展
#今日头条小助手##神经网络##深度学习#
摘要: 卷积神经网络(CNN)在计算机视觉领域已经取得了前所未有的巨大成功,目前众多传统计算机视觉算法已经被深度学习所替代。由于其巨大的商业落地价值,导致深度学习以及卷积神经网络成为研究的热点,大量优秀的工作不断地涌现。图像识别是计算机视觉领域最核心同时也是最基本的问题,其他的任务如目标检测,图像分割,图像生成,视频理解等都高度依赖于图像识别中的特征表达能力。卷积神经网络在图像识别中的最新进展能够直接影响所有基于深度学习的计算机视觉任务的表现,因此深度了解该进展显得尤其重要。本文首先介绍卷积神经网络的基本模块,接着简要介绍这几年涌现出来的里程碑工作以及他们各自的特点,最后对这些工作进行总结以及给出自己的若干思考。
前言
2016 年 3 月,"人工智能"一词被写入中国"十三五"规划纲要, 2016 年 10 月美国政府发布《美国国家人工智能研究与发展战略规划》文件。Google 、Microsoft、 Facebook、 百度、腾讯、阿里巴巴等各大互联网公司也纷纷加大对人工智能的投入,成立了相应的人工智能实验室。各类人工智能创业公司层出不穷, 各种人工智能应用逐渐改变人类的生活。 深度学习是目前人工智能的重点研究领域之一,应用于人工智能的众多领域,包括语音、计算机视觉、自然语言处理等。
深度学习其实是机器学习的一部分,机器学习经历了从浅层机器学习到深度学习两次浪潮。深度学习模型与浅层机器学习模型之间存在重要区别。 浅层机 器 学习模型不使用分布式表示(distributed representations),而且需要人为提取特征。模型本身只是根据特征进行分类或预测,因此人为提取的特征好坏很大程度上决定了整个系统的好坏。特征提取及特征工程不仅需要专业的领域知识,而且需要花费大量人力物力。深度学习模型是一种表示学习 (representation learning),能够学到数据更高层次的抽象表示,能够自动从数据中提取特征。 另外,深度学习的模型能力会随着深度的增加而呈指数增长。
Yann Lecun等人在 1989年提出基于梯度学习的卷积神经网络算法[1],并成功地将其应用在手写数字字符识别,并在当时的技术和硬件条件就能取得低于1%的错误率。2012年,在计算机视觉"世界杯"之称的ImageNet图像分类竞赛中,Geoffery E.Hinton等人凭借卷积神经网络Alex-Net[2]以超过第二名近12%的准确率一举夺得该竞赛冠军,霎时间学界业界纷纷惊愕哗然。自此边揭开了卷积神经网络在计算机视觉领域逐渐称霸的序幕,此后每年的ImageNet竞赛的冠军非卷积神经网络莫属。
直到2015年,卷积神经网络在ImageNet数据集上的性能(4.94%)第一次超过了人类预测错误率(5.1%)。近年来,随着卷积神经网络相关领域研究人员的增多,技术的日新月异,卷积神经网络也变得愈来愈复杂。从最初的5层,16层,到诸如MSRA提出的152层ResNet[3]甚至上千层网络已被广大研究者和工程实践人员司空见惯。
基本模块
图像分类,就是对于一个给定的图像,预测它属于哪个类别签。图像是3维数组,数组元素是取值范围从0到255的整数。数组的尺寸是宽度x高度x3,其中这个3代表的是红、绿和蓝3个颜色通道。如图1
图1
一个简单的卷积神经网络是由各种层按照顺序排列组成,网络中的每个层使用一个可微分的函数将数据从一层传递到下一层。卷积神经网络主要由三种类型的层构成:卷积层,池化层和全连接层。通过将这些层叠加起来,就可以构建一个完整的卷积神经网络。如图2
图2
(1)卷积层
卷积层可以说是卷积神经架构中最重要的步骤之一,涉及到特征表达的好坏,同时也是占据我整个网络95%以上的计算量。卷积是一种线性的、平移不变性的运算。卷积神经网络的计算过程如图3。
图3
(2)非线性激活单元
非线性激活单元受启发于人类大脑的神经元模型。在神经元模型中,树突将信号传递到细胞体,信号在细胞体中组合相加。如果最终之和高于某个阈值,那么神经元将会激活,向其轴突输出一个峰值信号传递至下一个神经元。
引入非线性激活函数的主要目的是增加神经网络的非线性性。因为如果没有非线性激活函数的话,每一层输出都是上层输入的线性函数,因此,无论神经网络有多少层,得到的输出都是线性函数,这就是原始的感知机模型,这种线性性不利于发挥神经网络的优势。
常用的非线性激活单元如图4所示。目前比较常用的有ReLu和LReLu,Logistic(Sigmoid)单元由于其饱和区特性导致整个网络梯度消失而逐渐退出历史舞台(有的时候最后一层会用Sigmoid将输出限制在0.0-1.0)。
图4
(3)池化层
通常,在连续的卷积层之间会周期性地插入一个池化层。它的作用是逐渐降低数据体的空间尺寸,这样的话就能减少网络中参数的数量,使得计算资源耗费变少,也能有效控制过拟合,如图5所示。池化层通常使用MAX操作,对输入数据体的每一个切片独立进行操作,改变它的空间尺寸。最常见的形式是使用尺寸2x2的滤波器,以步长为2来对每个深度切片进行降采样,将其中75%的激活信息都丢掉。每个MAX操作是从4个数字中取最大值(也就是在深度切片中某个2x2的区域)。注意在池化的过程中,数据体的通道数保持不变。
图5
(4)全链接层
所谓全链接层即是传统的神经网络,每一个神经单元都和上一层所有的神经单元密集连接。如今,全连接层由于其巨大的参数量易过拟合以及不符合人类对图像的局部感知原理,一般不参与图像的特征提取(已由卷积层替代),只用于最后的线性分类, 相当于在提取的高层特征向量上进行线性组合并且输出最后的预测结果。
里程碑工作和最新进展
(1) AlexNet
AlexNet[2]卷积神经网络在计算机视觉领域中首个被广泛关注及使用的卷积神经网络,它由Alex Krizhevsky,Ilya Sutskever和Geoff Hinton实现。AlexNet在2012年的ImageNet ILSVRC 竞赛中夺冠,性能远远超出第二名(16%的top5错误率,第二名是26%的top5错误率)。这个网络的结构和LeNet非常类似,都是由基础的模块堆叠而成。但得益于大数据和GPU强大的计算力,整个网络更深更大,并且使用了层叠的卷积层来获取特征(之前通常是只用一个卷积层并且在其后马上跟着一个汇聚层),如图6
贡献或者创新点:
1. AlexNet首次将卷积神经网络应用于计算机视觉领域的海量数据集ImageNet,揭示了卷积神经网络的强大特征表达能力和学习能力。
2. 使用GPU实现网络训练。"工欲善其事,必先利其器,研究者可以借助GPU从而将原本需数周甚至数月的网络训练过程大大缩短为几天(目前利用最新的分布式训练在Imagenet上仅需要数小时)。这无疑大大缩短了深度网络和大模型开发研究的周期与时间成本。
3. 一些训练技巧的引入使得训练深层的网络变为可能。Dropout层:如图6。左侧图(a)代表传统的神经网络,右侧图(b)代表装配了随机性失活的神经网络(这里的随机性失活指的是Dropout)。此外,还有数据增广,局部相应规范化层。
图6
图7
(2)VGGNet
VGG[4]是ILSVRC 2014的第二名模型,由Karen Simonyan和 Andrew Zisserman实现。他们最好的网络包含了16个卷积/全连接层。网络的结构非常一致,从头到尾全部使用的是3x3的卷积和2x2的池化,如图8。
贡献或者创新点:
1. VGG展示出网络深度是模型优良性能的关键要素。
2. VGG具备良好的泛化能力,其预训练的模型可以用于目标检测,图片风格化、图像检索等各种任务中。
缺点:
VGGNet的缺点是它耗费更多计算资源,使用了更多的参数,导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。后来发现这些全连接层即使被去除,对于性能也没有什么影响。
图8
(3) ResNet
残差网络(Residual Network)[3]是ILSVRC 2015的冠军模型,由何恺明等实现,。理论和实验已经证明,神经网络的深度和宽度是表征网络复杂度的两个核心因素,不过深度相比宽度在增加网络的复杂性方面更加有效,这也正是为何VGG网络想法设法增加网络深度的一个原因。然而,随着深度的增加,训练会变得愈加困难。主要原因在基于随机梯度下降的网络训练过程中,误差信后的多层反向传播非常容易引发梯度"弥散"(梯度过小会使回传的训练误差及其微弱)或者"爆炸"(梯度过大会大致模型训练出现"NaN")现象。基于此动机,经过作者的大量实验提出了残差模块,如图9,它使得高层的梯度能够直接回传,并且学习一个残差使得学习变得更简单。
贡献或者创新点:提出了残差模块使得训练几百层的神经网络变为可能。之后的提出的升级版Pre-Activate Resnet 甚至能够训练上千层的网络。提出了bottleneck的1x1的卷积层,对输入的数据体在深度维度上进行降维,大大减少了计算量以及减少过拟合的可能性。如图10
图9
图10
(4)InceptionV1-V4
以上提及的网络结构有个共性,基本上相邻两层数据体是通过单路的非线性映射来完成特征进一步抽象的。然而,google团队开创性的提出Inception结构,通过多路的非线性映射增加模型的表达能力(相当于多个模型的Ensemble),并与此同时,减轻物体多尺度对最终任务的影响。
InceptionV1[5]即GoogleNet,是ILSVRC 2014的冠军模型,InceptionV1模块结构如图11。在3x3前,5x5前,max pooling后分别加上了1x1的卷积核起到了降低数据体深度的作用,效果和ResNet的bottleneck是一致的。
InceptionV2[6]一方面了加入了BN(Batch Normalization)层,减少了Internal Covariate Shift,使每一层的输出都规范化到一个N(0, 1)的高斯。值得注意的是,BN的提出,使得训练大大加快模型更容易收敛,同时起到正则化的作用;另一方面用2个3x3的conv替代inception模块中的5x5,如图12的最上图,既降低了参数数量也增加了模型的非线性表达能力。
InceptionV3[7]一个最重要的改进是分解(Factorization),将7x7分解成两个一维的卷积(1x7,7x1),3x3也是一样(1x3,3x1),如图12的中间图。这样的好处在于既可以加速计算(多余的计算能力可以用来加深网络),又可以使得网络深度进一步增加,增加了网络的非线性。此外值得注意的地方是网络输入从224x224变为了299x299,更加精细设计了35x35/17x17/8x8对应的模块。
InceptionV4[8]研究了Inception模块结合Residual Connection能不能有改进?发现ResNet的结构可以极大地加速训练,同时性能也有提升,得到一个Inception-ResNet V2网络,如图12的最下图。同时还设计了一个更深更优化的InceptionV4模型,能达到与Inception-ResNet v2相媲美的性能。
图11
图12
(5) DenseNet
DenseNet[9]是CVPR 2017年的best paper。虽然DenseNet的影响不及ResNet那么大,但是也提出了一种很有意义的观点。 DenseNet的最大优势在于优化梯度流,早在ResNet之后,就有工作指出在ResNet训练过程中,梯度的主要来源是shortcut分支。总所周知,在训练CNN的过程中,保持梯度流的有效性,防止梯度爆炸/消失时是最重要的事情,关系到模型是否收敛。既然shortcut如此有效,那么为什么不多加点呢?这就是 DenseNet 的核心思想:对之前每一层都加一个单独的 shortcut,使得任意两层之间都可以直接"沟通",如图13。需要注意的是,由于DenseNet在ImageNet数据集上不如Inception或者ResNet-like的模型。因此,它在工业界的收关注程度不如其他的模型。
图13
(6) ResNeXt
ResNeXt[10]其实是一种多分支的卷积神经网络。多分支网络最初可见于之前提及的Inception结构。ResNeXt首先验证了图14中三种结构的一致性,然后提出除了深度和宽度以外,"基数"也是影响网络性能的一个重要因素。注意图(c)利用了group convolution来模拟多分支的normal convolution。
图14
(7)Squeeze-and-Excitation block
Sequeeze-and-Excitation(SE) block[11]并不是一个完整的网络结构,而是一个子结构,可以嵌到其他分类或检测模型中。作者采用该SENet block和ResNeXt结合在ILSVRC 2017的分类项目中拿到第一,在ImageNet数据集上将top-5 error降低到2.251%,原先的最好成绩是2.991%。SENet的核心思想在于通过网络根据loss去学习特征图的权重,使得有效的特征图权重大,无效或效果小的特征图权重小,这种方式训练模型能够达到更好的结果同时仅增加了可接受的少量计算代价。其实,换言之,该网络结构就是在channel维度的attention机制,如图15。
图15
(8)MobileNet/ShuffleNet
为了获得更好的性能,卷积神经网络层数不断增加,从 7 层 AlexNet 到 16 层 VGG,再从 16 层 VGG 到 GoogLeNet 的 22 层,再到 152 层 ResNet,更有上千层的 ResNet 和 DenseNet。虽然网络性能得到了提高,但随之而来的就是效率问题。效率问题主要是模型的存储问题和模型进行预测的速度问题(以下简称速度问题)
1. 存储问题。数百层网络有着大量的权值参数,保存大量权值参数对设备的内存要求很高。
2. 速度问题。在实际应用中,往往是毫秒级别,为了达到实际应用标准,要么提高处理器性能,要么就减少计算量。
只有解决卷积神经网络的效率问题,才能让卷积神经网络走出实验室,更广泛的应用于移动端。对于效率问题,通常的方法是进行模型压缩(Model Compression),即在已经训练好的模型上进行压缩,使得网络携带更少的网络参数,从而解决内存问题,同时可以解决速度问题,但篇幅有限,这个暂不介绍。
相比于在已经训练好的模型上进行模型压缩,轻量化模型模型设计则是另辟蹊径。轻量化模型设计主要思想在于设计更高效的网络结构,从而使网络参数减少的同时,不损失网络性能。本文就近年提出的两个轻量化模型进行简要的介绍,分别是为Google的MobileNet[12]以及Face++的ShuffleNet[13]。
MobileNet核心思想是采用 depth-wise convolution(group convolution的特例, group_number = channel_num),在相同的输入输出维度的情况下,相较于 standard convolution 操作,可以减少数倍的计算量和参数量。同时,为解决depth-wise convolution的信息不流畅的问题,增加了如point-wise convolution取融合每个channel上的信息。传统的卷积和mobilenet模块的比较请见如图16的右侧。depth-wise convolution和point-wise convolution的具体操作请见图16的左侧。
ShuffleNet核心思想是采用 group convolution,在相同的输入输出维度的情况下,相较于 standard convolution 操作,同样可以减少数倍的计算量和参数量(没有depth-wise convolution明显),从而达到轻量化网络的目的。同样的,group convolution 存在信息不流畅的问题,但ShuffleNet不是依赖额外的1x1 convolution,而是通过一个随机打乱(shuffle)特征图的channel,使得各组之间的信息可以互相流通,同时不带来任何额外的计算代价,如图17。
图16
图17总结和思考
以上,通过简要介绍了深度学习在图像识别的不断进展和重要工作,可以看到,目前卷积神经网络的设计思路基本上朝着更深,更宽(如Xception网络,本文未对其做出概括),更多支路,更轻量以及更有效的卷积方式等多个方向同时发展。目前。由于深度学习在图像识别的任务已经超过人类,可见卷积神经网络能够很好地从输入映射到隐层地特征表达,并且能够层级式地提取特征并通过最后通过内嵌的分类网络完成分类任务。并且卷积神经网络通过轻量话网络或者模型压缩能够在嵌入式或者移动端运行,已慢慢从实验室走向更多的商业化应用,走进寻常百姓家。
如今,由于最新的卷积神经网络在某个程度上解决了计算机视觉领域特征表达的问题,卷积神经网开始在诸多研究方向如目标检测,图像分割,实例分割,图像生成,人脸识别,车辆识别,人体姿态估计等大方光彩,取得的研究成果也是远超传统算法令人振奋。深度学习或者说卷积神经网络通过刷脸支付,交通天眼系统,无人驾驶等商业应用正在悄悄的改变着我们的生活。
四川省第二大城市绵阳市的房价高不高?为什么?2019年绵阳房价很平稳,二手房均价在7600元至7800元之间小幅波动,与2016年初的房价相比绵阳的房价明显高了很多,当前绵阳市的人均GDP,人均可支配收入均不足于支撑现在的房
喜欢榴莲,去泰国旅游几月份哪个城市比较合适?其实去泰国旅游,最好是在1到4月份,这几个季节泰国的天气是全年最凉爽的时候,室外气温多在30度左右,要是在6月份泰国的气温都40多度,真不是一般人能承受了的。去泰国旅游到处都可以买
为什么上海作为全国最大的一线城市,大牌的科技公司还没深圳多?首先纠正一下,上海不是最大的一线城市,上海市总面积小于北京和广州,建成区面积也小于北京。至于为什么大牌科技公司没有深圳多,这属于关公门前耍大刀。上海虽是经济最强市,但也是经济最多元
太原居住环境怎么样?全国居住环境最好的城市里面,毫无疑问应该有太原市一席,这里冬天无天寒地冻,最低温度在零下10左右,夏天最好,最热的时候不超过零上32,尤其是夜间温差大,凉快的很哪!睡个好觉是没问题
上大学后发现身边的同学都很牛,要如何调节自己的自卑心态?在中学阶段,同学们学习成绩会有很大的差异。如果在班级中你的成绩特别优秀,你的心里会有非常优越的感觉,也有很骄傲的感觉,当你以这样的成绩考入大学后,在大学的班级里你就不是高高在上的优
为啥我减脂减重10来天,肚子是没有了,但是体重由原来156斤,反倒变成160斤呢?健身者和普通人对身材的定义是完全不一样的。普通人会仅凭体重来判断一个人的胖瘦,而健身者会靠体脂秤上的体脂数据。我们要知道,决定一个人体重的是骨头器官水分肌肉脂肪等,如果一个人的肌肉
海南哪里最适合气管炎老年人居住?下面是我的亲身体会我爸老年痴呆,老母不肯放下老爸,不肯过冬来海南。三年前冬季在老家肺心病差点息火,送重症室抢救一个星期。春节初二我从海南赶回老家。第二年老爸去逝,我带老母来海南陵水
为什么蔡崇信一点蚂蚁股份都没有?有句话是大隐隐于朝,中隐隐于市,小隐隐于野。蔡崇信,当年加入阿里巴巴的时候,没有自己投资马云团队而是选择撮合孙正义投资,虽然不是十八罗汉之一,但在阿里巴巴的位置,能排号第二,甚至从
月薪4500,想买一款1万2左右的摩托车,外观要好看的,有哪些可以推荐?我是骠骑府!资深摩托车媒体编辑,评论员!月薪4500,买一辆12000左右的摩托车应该不算很败家的行为,骠骑府见过几位工薪族买的还是进口大贸车型,所以,这问题不是买不买得起,而是舍
艾灸是骗局吗?艾灸他肯定不是一个骗局,中医里有很多病都是用艾灸去治疗的。艾灸多数是起了一个活血化瘀的作用。说个事儿,我的一个亲戚做微商呢,卖那种小的艾灸。150块钱一盒,我在某宝和某东上,搜了一
14岁乳头内陷怎么办?14岁乳头内陷怎么办14岁乳头内陷多为先天性,通常采用手法牵引负压球吸引及器械持续吸引等非手术治疗方法,也可能是乳头乳房感染外伤肿瘤等所致的继发性畸形,需要明确原因后确定治疗方法。