前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈卷积神经网络的模型结构

浅谈卷积神经网络的模型结构

作者头像
SIGAI学习与实践平台
修改2019-08-07 16:27:38
5830
修改2019-08-07 16:27:38
举报

关注“SIGAI公众号”,选择“星标”或“置顶”

原创技术文章,第一时间获取


小编推荐:

DeepAction七期飞跃计划还剩4个名额,联系小编,获取你的专属算法工程师学习计划(联系小编SIGAI_NO1)

SIGAI特约作者

vicFigure 上海交通大学

研究方向:计算机视觉、机器学习

20世纪末,卷积神经网络就已经在MNIST手写体数字识别任务上展现出了优势,但由于数据量和硬件性能的限制,始终没有在其他任务中发挥作用。随着硬件计算能力,存储能力的提升,卷积神经网络在21世纪取得了爆发性的进展。同时训练数据量也在成百倍甚至千倍的增长,更促进了卷积神经网络的进步。从LeNet5,到AlexNet,经过了20年的探索,而从AlexNet开始之后的短短几年,VGG,GoogLeNet,ResNet,DensNet等结构纷纷涌现,不断刷新卷积神经网络在各种标准数据集上的精度,同时也拓宽了卷积神经网络的应用范围:从分类任务,物体识别,图像分割这些基本任务,拓展到人脸识别,人体关键点检测,三维重建等实际的应用场景。今天笔者就来浅谈一下最近几年卷积神经网络的经典结构。

AlexNet

AlexNet是2012年ILSVRC分类任务比赛的冠军,首次证明了卷积神经网络在更加复杂的分类任务(相比于MNIST和Cifar数据集)上有着极大的优势。AlexNet的结构特征如下:

第一,AlexNet网络由有5层卷积层,和3层全联接层构成,最后一个全联接层得到各类别概率。第二,AlexNet使用ReLU作为激活层,代替tanh,作者经过实验,发现ReLU激活层的网络相对于tanh,在cifar10数据集上收敛速度更快。此后ReLU便成为了卷积神经网络标准的激活函数,在后面的结构中依然使用ReLU激活函数。第三,AlexNet使用LRN(Local Response Normalization)作为归一化函数,如式1.1所示。第四,AlexNet使用了3个max pooling层来做下采样,同时第一层卷积的卷积核大小设定为11*11,滑动步长为4,也有下采样的作用。第五,AlexNet采用Dropout层来减少过拟合问题。

式中

表示特征图中第i个通道,(x,y)位置的值,N表示当前特征图的通道数,k,n,

是预先定好的超参数,其中n表示利用相邻的n个通道来做归一化。在AlexNet 中作者取k=2,n=5,

。虽然式子看起来比较复杂,其本质就是特征图每个位置的值,仅利用其相邻通道对应位置处的值来做归一化,而不依赖同通道总相邻像素位置的值。在AlexNet中LRN接在ReLU激活层之后。(在BN层出现之后,BN层基本取代了LRN层的地位)

图1.1 AlexNet结构

总体来看,AlexNet结构是LeNet5的一个推广,在其基础上增加了更多的卷积层和全联接层通道,并通过多次下采样,使网络可以处理224*224的大尺度图片。AlexNet证明了卷积神经网络的能力,将卷积神经网络的研究再一次推向高潮。

VGG

VGG是2014年ILSVRC分类任务比赛的亚军,相比于AlexNet,VGG有着更复杂的网络结构,更多的网络参数和连接,其结构如图2.2所示,VGG的网络结构特点如下:

第一,VGG的第一个卷积层没有使用11*11或7*7这种大卷积核,作者经过分析,发现由3个3*3的卷积级联在一起,可以得到和7*7相同的感受野,而3个3*3卷积的参数几乎为1个7*7卷积参数的一半。第二,VGG中去除了LRN归一化层,作者经过实验(图2.2中A结构和A-LRN结构),发现LRN层并不能提高精度,反而增加了计算量,需要更多的计算存储单元。第三,VGG首先训练浅网络结构,然后利用训练好的浅层网络,初始化深层网络,网络深度逐步加深(图1.1中ABCDE的深度逐步增加),可以说VGG网络将模型初始化用到了极致。第四,在测试阶段,VGG最后的三层fc层均被替换成相同参数量的1*1卷积层,这样可以保证输入图片的尺度可以变化,不需要局限在224*224,最终输出的特征图直接做平均,即得到了最终的概率。

图2.1 VGG参数量

VGG模型的参数量接近AlexNet的3倍(其参数量如图2.1所示),大部分参数集中在第一个fc层,因为经过之前的特征提取网络,第一个fc层输入特征图尺度为7*7,所以第一个fc层的参数量为512*7*7*4096,占VGG19(E结构)总参数量的70%,这也是AlexNet参数量大的原因。与VGG同年的GoogLeNet则使用avg_pooling(Network in Network最先提出),先将7*7的特征图变为1*1,极大地减少了模型参数,后面的经典结构中也都普遍采用了avg_pooling的方法。

实际上,去除掉fc层的VGG网络有着很强的学习能力,而且参数量也下降到了可以接受的程度,因此Faster-RCNN等网络仍然采用VGG的卷积层结构作为基础网络骨架。

除了以上结构上的特点外,VGG作者在图片尺度、随机裁剪(图像预处理)方面进行了大量的实验,为后面卷积神经网络的工作提供了经验性的提示。笔者在这里就不在赘述,如果大家有兴趣,可以翻阅VGG原始论文。

图2.2 VGG网络结构

GoogLeNet

说完VGG,不得不谈起与VGG同年竞争的GoogLeNet,2014年的ILSVRC分类任务比赛可以说是竞争极其激烈的一年,VGG亚军,GoogLeNet荣获冠军

GoogLeNet的参数量仅为AlexNet的1/12,其分类精度却比AlexNet高很多。在ILSVRC分类任务中,GoogLeNet使用7个模型集成,每张图片做144个随机裁剪的方法,达到了比VGG更高的分类精度,但7个模型的参数量依然小于VGG。相比于VGG,GoogLeNet在网络结构上进行了大量的实验,最终确定的模型基本结构称为Inception V1,如图3.1所示(因为后续谷歌团队又在此基础上,提出了Inception V2,V3,以及Inception-Residual结构),最终Inception V1确定为图3.1(b)

图3.1 Inception V1结构

GoogLeNet团队首先抓住了卷积神经网络的痛点之一:参数多层数深的网络不容易训练,很可能造成参数冗余,而且精度的提升与参数的增加往往不成比例,于是作者考虑,能否将连接稀疏化,同时保留卷积和全联接层的张量数据结构(因为稀疏卷积的运算效率并不高)

GoogLeNet结构如图3.2所示,其特点如下:

第一,Inception结构有4个分支,包括1*1卷积,3*3卷积,5*5卷积,以及下采样分支,这种不同卷积核尺度的分支可以提供不同的感受野,最终各个分支的特征图级联在一起得到Inception结构的输出。而图3.1(b)中3*3,5*5分支中的1*1卷积则是为了压缩特征图的空间尺度,进一步减少参数量。

第二,Inception结构中每个卷积后都会经过ReLU激活。

第三,GoogLeNet在fc层之前,采用global average pooling的方法,将特征图空间尺度压缩为1*1,然后仅用1层fc结构,输出为各类别的概率。

第四,GoogLeNet同样适用dropout层,减少过拟合问题。

图3.2 GoogLeNet网络结构

进一步,(不知是不是收到了VGG的启发,笔者瞎猜),GoogLeNet团队将5*5的分支变成2个3*3卷积级联,减少了参数量,于是得到了InceptionV2结构,如图3.3所示。再进一步,如果将3*3卷积拆分成1*3和3*1两个卷积,又可以在保留原始感受野的基础上,减少参数量,如图3.4所示,然而经过实验,作者发现对于非对称的Inception结构,当输入特征图尺度在12~20之间,且n取7时(并非3),效果是最好的。

图3.3 Inception V2基本结构

图3.4 非对称Inception V2结构

同时,作者提出了4个网络设计原则:

第一,尽量避免瓶颈结构,channel剧烈减少,尤其是在浅层部分(然而ResNet用实验打破了这个原则)

第二,可以增加Inception的宽度(更多的特征图),有助于学习到更多更好的特征

第三,在深层部分,引入瓶颈结构,不会降低太多精度,同时有助于快速训练

第四,网络的宽度与深度需要平衡

基于上述4个原则,作者进一步提出了深层的Inception结构(实验发现输入特征图尺度约等于8时,效果最好),如图3.5所示。

于是在GoogLeNet的基础上,作者基于图3.3,3.4,3.5所示的三种Inception结构,搭建得到了新的网络,在增加少量计算量的基础上,进一步提升了GoogLeNet的精度。

图3.5 深层Inception结构

ResNet

ResNet是ILSVRC2015年分类任务的冠军,作者首先通过堆叠vgg的基本模块(3*3卷积和ReLU激活层)得到20层网络和56层网络在Cifar10和ImageNet上进行了训练,发现56层网络的精度远没有20层效果好,基于此,作者提出了shortcut连接,即在某层特征图加上之前层的特征图,如图4.1左侧所示,最终形成bottleNeck结构如图4.1右侧所示。

图4.1 bottleNeck结构

之所以叫bottleNeck,是因为首先用1*1卷积,将特征图通道数压缩到原先的1/4,然后过3*3的卷积,最后再用1*1卷积将特征图通道数还原成原来的大小(或者是原本通道数的2倍)。ResNet就可以根据图4.1中的结构进行堆叠,得到不同层数的网络,一些经典的ResNet结构如图4.2所示

此外,作者采用了BN归一化,采用“卷积-BN-ReLU”的基本卷积单元,对于bottleNeck输入特征图与输出特征图不变的模块,shortcut分支采用直连的方法,否则,作者在shortcut分支加入一层卷积层(卷积+BN),得到的输出再与另一个分支的输出特征图相加,再过ReLU激活

图4.2 ResNet结构

作者经过大量实验,证明了ResNet的结构可以完美解决之前“层数越深,效果越差”的问题。从某种意义上,ResNet出现后,卷积神经网络将“深度”变为了可能。ResNet提出之后,也有大量的论文来研究讨论为什么ResNet可以解决上述问题,而且也有论文从不同角度证明Shortcut的结构有很强的学习能力。

DenseNet

DenseNet进一步将shortcut结构发展到了极致,提出了DenseBlock的结构,在一个DenseBlock中,每个中间层的特征图输出都会连接到后面的层的特征图,而DenseNet与ResNet最大的不同之处就是:ResNet中两个分支采用加法的方式进行融合,而DenseNet中多个分支采用级联(在通道维度上拼接在一起)的方式融合。DenseBlock的结构如图5.1所示。

图5.1 DenseBlock

图中不同颜色表示不同中间层的输出特征图,最后的Transition Layer则是由BN+卷积层构成,其目的是为了对最后级联起来的特征图做信息交流和融合,同时控制DenseBlock的输出特征图数,整体DenseNet的网络结构如图5.2所示,DenseNet的参数量相比于ResNet进一步减少,但其精度更高。然而值得注意的一点是,虽然DenseNet的参数量很小,但其计算量依然比较大。

图5.2 DenseNet

总结

从2012年始,卷积神经网络的模型结构开始了飞速的发展,笔者仅仅谈到了几个经典的网络结构,但同样还有一些小而精巧的网络结构没有涉及,比如MobileNet,ShuffleNet等,还有一些根据特殊应用场景设计的网络结构,如Yolo等。此外,当前的研究者并不满足于用人工的方式探索有效的网络结构,NAS(网络结构搜索)问题也越来越成为研究的热点,相信未来会有更多高效的网络结构,而经典永远都是经典,即使长江后浪推前浪,其设计的精髓和实验依然值得后来人细细品味。

参考文献

[1] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.

[2] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.

[3] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 1-9.

[4] Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for computer vision[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 2818-2826.

[5] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.

[6] Huang G, Liu Z, Van Der Maaten L, et al. Densely connected convolutional networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4700-4708.

本文为SIGAI原创

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SIGAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档