热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

lenet5卷积神经网络_CNN图像分类:从LeNet5到EfficientNet

深度学习Author:louwillFrom:深度学习笔记在对卷积的含义有了一定的理解之后,我们便可以对CNN在最简单的计算机视觉任务图像
深度学习

Author:louwill

From:深度学习笔记

在对卷积的含义有了一定的理解之后,我们便可以对CNN在最简单的计算机视觉任务图像分类中的经典网络进行探索。CNN在近几年的发展历程中,从经典的LeNet5网络到最近号称最好的图像分类网络EfficientNet,大量学者不断的做出了努力和创新。本讲我们就来梳理经典的图像分类网络。计算机视觉的三大任务自从神经网络和深度学习方法引入到图像领域,经过近些年来的发展,从一开始的图像分类逐渐延伸到目标检测和图像分割领域,深度学习也逐渐在计算机视觉领域占据绝对的主导地位。如果要想利用深度学习技术开启计算机视觉领域的研究,明确并深刻理解计算机视觉的三大任务非常关键。计算机视觉三大任务如图1所示。f5c862cc2b64f7c6f49ddcaead8761ea.png图1 计算机视觉的三大任务从图中我们可以简单描述计算机视觉三大任务的要义。图像分类就是要回答这张图像是一只猫的问题,跟传统的机器学习任务并无区别,只是我们的输入由数值数据变成图片数据。本节的内容就是介绍CNN在图像分类的发展历史上出现的一些经典的网络。而目标检测则不仅需要回答图像中有什么,而且还得给出这些物体在图像中位置问题,以图中为例就是不仅要识别图中的猫和狗,还得给出猫和狗的具体定位。所以目标检测的任务简单而言就是分类+定位。在无人驾驶的应用中,我们的目标是训练出一个具有极高准确率的物体检测器,在工业产品的瑕疵检测中,我们的目标是能够快速准确的找出产品中的瑕疵区域,在医学肺部结节的检测中,我们的任务是能够根据病人肺部影像很好的检测出结节的位置。图2是一个自动驾驶场景下对于各个目标物体的检测和识别。ac945f4ab846bd72d67d2b3fb679aeae.png图2 无人驾驶的目标检测示例图像分割则是需要实现像素级的图像分割,以图中为例就是要把每个物体以像素级的标准分割开来,这对算法的要求则更高。图3就是一个定位和实例分割示例。

c3e348d36e735ef1bfd9c90ddcbe224f.png

图3 定位+实例分割CNN图像分类发展史在神经网络和深度学习领域,Yann LeCun可以说是元老级人物。他于1998年在 IEEE 上发表了一篇42页的长文,文中首次提出卷积-池化-全连接的神经网络结构,由LeCun提出的七层网络命名为LeNet5,因而也为他赢得了卷积神经网络之父的美誉。LeNet5的网络结构如图4所示。LeNet5共有7层,输入层不计入层数,每层都有一定的训练参数,其中三个卷积层的训练参数较多,每层都有多个滤波器,也叫特征图,每个滤波器都对上一层的输出提取不同的像素特征。所以LeNet5的简略结构是这样:输入-卷积-池化-卷积-池化-卷积(全连接)-全连接-全连接(输出)。956c858e1f3ec13434e9a437f08ed72d.png图4 LeNet5结构作为标准的卷积网络结构,LeNet5对后世的影响深远,以至于在16年后,谷歌提出 Inception网络时也将其命名为GoogLeNet,以致敬Yann LeCun对卷积神经网络发展的贡献。然而LeNet5提出后的十几年里,由于神经网络的可解释性以及数据和计算资源等原因,神经网络的发展一直处于低谷。故事的转折发展在2012年,也就是现代意义上的深度学习元年。2012年,深度学习三巨头之一Geoffrey Hinton的学生Alex Krizhevsky率先提出了AlexNet,并在当年度的ILSVRC(ImageNet大规模视觉挑战赛)以显著的优势获得当届冠军,top5的错误率降至了16.4%,相比于第二名26.2%的错误率有了极大的提升。这一成绩引起了学界和业界的极大关注,计算机视觉也开始逐渐进入深度学习主导的时代。AlexNet继承了LeCun的LeNet5思想,将卷积神经网络的发展到很宽很深的网络当中,相较于LeNet5的六万个参数,AlexNet包含了6亿3千万条连接,6000万个参数和65万个神经元,其网络结构包括5层卷积,其中第一、第二和第五层卷积后面连接了最大池化层,然后是3个全连接层。AlexNet的网络架构图5所示。d456c513814419eff7045f896cb80f42.png图5 AlexNet结构AlexNet不算池化层总共有8层,前5层为卷积层,其中第一、第二和第五层卷积都包含了一个最大池化层,后三层为全连接层。所以 AlexNet 的简略结构如下:输入-卷积-池化-卷积-池化-卷积-卷积-卷积-池化-全连接-全连接-全连接-输出。AlexNet 就像是打开了深度学习的潘多拉魔盒,此后不断有新的网络被提出,这些都极大的繁荣了深度学习的理论和实践,致使深度学习逐渐发展兴盛起来。在2013年的ILSVRC 大赛中,Zeiler和Fergus在AlexNet的基础上对其进行了微调提出了ZFNet,使得top5的错误率下降到11.2%,夺得当年的第一,ZFNet和AlexNet的结构很相似,这里就不再单独细述。到了2014年,不断的积累实践和日益强大的计算能力使得研究人员敢于将神经网络的结构推向更深层。在2014年提出的 VGG中,首次将卷积网络结构拓展至16和19层,也就是著名的VGG16 和VGG19。相较于此前的LeNet5和AlexNet的5*5卷积和11*11卷积,VGG结构中大量使用3*3的卷积滤波器和2*2的池化滤波器。VGG的网络虽然开始加深但其结构并不复杂,但作者的实践却证明了卷积网络深度的重要性。深度卷积网络能够提取图像低层次、中层次和高层次的特征,因而网络结构需要的一定的深度来提取图像不同层次的特征。VGG16的结构如图6所示。7871b71e315f0932c4632312851f435c.png图6 VGG结构VGG 的网络结构非常规整,2-2-3-3-3的卷积结构也非常利于编程实现。卷积层的滤波器数量的变化也存在明显的规律,由64到128再到256和512,每一次卷积都是像素呈规律的减少和通道数呈规律的增加。VGG16在当年的ILSVRC以7.32%的top5错误率取得了当年大赛的第二名。这么厉害的网络为什么是第二名?因为当年有比VGG更厉害的网络,也就是前文提到的致敬LeNet5的GoogLeNet。GoogLeNet在借鉴此前1*1卷积思想的基础上,通过滤波器组合构建Inception模块,使得网络可以走向更深且表达能力更强。从2014 年获得当届ILSVRC冠军的Inception v1到现在,Inception网络已经更新到v4了,Inception真正实现了Go Deeper的目的。通常在构建卷积结构时,我们需要考虑是使用1*1卷积、3*3卷积还是5*5卷积以及是否需要添加池化操作。而GoogLeNet的Inception模块就是帮你决定采用什么样的卷积结构。简单而言,Inception模块就是分别采用了1*1卷积、3*3卷积和5*5卷积构建了一个卷积组合然后输出也是一个卷积组合后的输出。对于28*28*192的像素输入,我们分别采用1*1卷积、3*3卷积和5*5卷积以及最大池化四个滤波器对输入进行操作,将对应的输出进行堆积,即32+32+128+64=256,最后的输出大小为 28*28*256。所以总的而言,Inception网络的基本思想就是不需要人为的去决定使用哪个卷积结构或者池化,而是由网络自己决定这些参数,决定有哪些滤波器组合。这是Inception的通道组合功能。Inception另一个关键在于大量使用1*1卷积来生成瓶颈层(Bottleneck Layer)来达到降维的目的,在不降低网络性能的情况下大大缩减了计算量,可谓是Inception网络的点睛之笔。一个基于1*1卷积的Inception模块如图7所示。711592dccace4f70978ce580738e29a3.png图7 Inception模块构建好Inception模块后,将多个类似结构Inception模块组合起来便是一个Inception网络,这是最初的Inception v1版本。Inception v2对网络加入了BN(Batch Normalization)层,进一步提高了网络的性能。Inception v3在v2的基础上提出了卷积分解的方法,比如将3*3卷积分解为1*3和3*1,这样做的好处是既可以提高计算速度又可以将一个卷积拆分为两个,从而加深网络深度。Inception v4最大的特点是在v3的基础上加入了残差连接,形成了Inception-ResNet v1和Inception-ResNet v2两个优秀的网络结构。Inception v1在当年度激烈的ILSVRC大赛中以6.67%的top5错误率荣膺第一名,让同样出色的VGG只能屈居第二,此后每一版本的Inception网络在ImageNet任务上均能达到SOTA(State of the Art)的水准。通过VGG和GoogLeNet 中,我们了解到卷积神经网络也可以进行到很深层,VGG16 和VGG19就是证明。但卷积网络变得更深呢?当然是可以的。深度神经网络能够从提取图像各个层级的特征,使得图像识别的准确率越来越高。但在2014年前后,将卷积网络变深且取得不错的训练效果并不是一件容易的事。深度卷积网络一开始面临的最主要的问题是梯度消失和梯度爆炸。那什么是梯度消失和梯度爆炸呢?所谓梯度消失,就是在深层神经网络的训练过程中,计算得到的梯度越来越小,使得权值得不到更新的情形,这样算法也就失效了。而梯度爆炸则是相反的情况,是指在神经网络训练过程中梯度变得越来越大,权值得到疯狂更新的情形,这样算法得不到收敛,模型也就失效了。当然,通过设置ReLu和归一化激活函数层等手段使得我们很好的解决这些问题。但当我们将网络层数加到更深时却发现训练的准确率在逐渐降低。这种并不是由过拟合造成的神经网络训练数据识别准确率降低的现象我们称之为退化(Degradation)。c50010f64d9c79d0bfbd0d7ab4da84bb.png图8 退化现象图6.8是两个网络训练和测试误差情况。我们可以看到56层的普通卷积网络不管是在训练集还是测试集上的训练误差都要高于20层的卷积网络,这是个典型的退化现象。退化问题不解决,深度学习就无法go deeper. 于是何恺明等一众学者就提出了残差网络ResNet。要理解残差网络,就必须理解残差块(residual block)这个结构,因为残差块是残差网络的基本组成部分。回忆一下我们之前学到的各种卷积网络结构(LeNet5/AlexNet/VGG),通常结构就是卷积池化再卷积池化,中间的卷积池化操作可以很多层。类似这样的网络结构何恺明在论文中将其称为普通网络(Plain Network),何凯明认为普通网络解决不了退化问题,我们需要在网络结构上做出创新。何恺明给出的创新在于给网络之间添加一个捷径(shortcuts)或者也叫跳跃连接(skip connection),可以让捷径之间的网络能够学习一个恒等函数,使得在加深网络的情形下训练效果至少不会变差。残差块的基本结构如图9所示。6e094b03e23a2a45b706e4095a9c4059.png图9 残差块残差块是一个两层的网络结构,输入X经过两层的加权和激活得到F(X)的输出,这是典型的普通卷积网络结构。但残差块的区别在于添加了一个从输入X到两层网络输出单元的shortcut,这使得输入节点的信息单元直接获得了与输出节点的信息单元通信的能力 ,这时候在进行ReLu激活之前的输出就不再是F(X)了,而是F(X)+X。当很多个具备类似结构的这样的残差块组建到一起时,就构成了残差网络。残差网络能够顺利训练很深层的卷积网络,能够很好的解决网络的退化问题。或许你可能会问凭什么加了一条从输入到输出的捷径网络就能防止退化训练更深层的卷积网络?或是说残差网络为什么能有效?我们将上述残差块的两层输入输出符号改为和 ,相应的就有:                     

22a76fc3edcfc220d960b7597e2d8b30.png

加入的跳跃连接后就有:

9cf5dba5254b3c9fe04ef13e851837ab.png                   在网络中加入L2正则化进行权值衰减或者其他情形下,l+2层的权值是很容易衰减为零的,假设偏置同样为零的情形下就有等号成立。深度学习的试验表明学习这个恒等式并不困难,这就意味着,在拥有跳跃连接的普通网络即使多加几层,其效果也并不逊色于加深之前的网络效果。当然,我们的目标不是保持网络不退化,而是需要提升网络表现,当隐藏层能够学到一些有用的信息时,残差网络的效果就会提升。所以,残差网络之所以有效是在于它能够很好的学习上述那个恒等式,而普通网络学习恒等式都很困难,残差网络在两者相较中自然胜出。

当多个残差块组合到一起便形成了残差网络ResNet。ResNet在2015年ILSVRC大赛上 top5单模型的错误率缩小到了3.57%,在其他数据集上也有着惊人的表现,结果当然就是收割各类奖项了。以上几个网络除了早期的LeNet5之外都是在ILSVRC大赛的助力下不断向前发展的,从这一点来看,ILSVRC大赛和ImageNet数据集对深度学习的发展具有重大意义。ILSVRC大赛于2017年正式停办,但在开办的6年来极大地促进了深度学习和计算机视觉的发展。ImageNet历年top方案如表1所示。表1 ILSVRC历年冠军解决方案
年份网络名称Top5成绩论文
2012AlexNet16.42%ImageNet Classification with Deep Convolutional Neural Networks
2013ZFNet13.51%Visualizing and understanding convolutional networks
2014GoogLeNet6.67%Going Deeper with Convolutions
VGG6.8%Very deep convolutional networks for large-scale image recognition
2015ResNet3.57%Deep Residual Learning for Image Recognition
2016ResNeXt3.03%Aggregated Residual Transformations for Deep Neural Networks
2017SENet2.25%Squeeze-and-Excitation Networks
由表1可以看到,2017年的冠军方案SENet的错误率已经降至2.25%,这个精度已经超过人类视觉水平,I LSVRC大赛也在这一年停办,但深度学习和计算机视觉的研究仍然继续向前发展。2017年,刘壮等人在ResNet的基础上提出了DenseNet网络,作为2017年CVPR的最佳论文,作者通过大量使用跨层的密集连接,强化了卷积过程中特征重要性,另外也缩减了模型参数,进一步提高了深度卷积网络的性能。DenseNet密集连接结构如图10所示。06e325d484dd69b79a073b2695d3db51.png图10 DenseNet结构除了以上各种优秀的深度卷积网络之外,近几年各种网络都在存储和速度问题上不断做出改进和创新。近两年提出的SqueezeNet、MobileNet、ShuffleNet、NASNet和Xception等深度网络正是致力于让CNN走出实验室达到工业应用的目的而提出的网络结构。作为本节的结尾,我们想重点提一下去年5月份谷歌大脑发布的号称目前最好的CNN分类网络的EfficientNet。EfficientNet在吸取此前的各种网络优化经验的基础上提出了更加泛化的解决方法。什么叫更加泛化的方法呢?作者认为,我们之前关于网络性能优化要么是从网络深度、要么是从网络宽度(通道数)、要么是从输入图像的分辨率单独来进行模型缩放调优的。但实际上网络性能在这三个维度上并不是相互独立的。EfficientNet的核心在于提出了一种混合的模型缩放方法(Compound Model Scaling)算法来综合优化网络深度、宽度和分辨率,通过这种思想设计出来的网络能够在达到当前最优精度的同时,大大减少参数数量和提高计算速度。Compound Model Scaling的设计思想如图11所示。a70cb887d1cf86af6c8779d81808820d.png图11 混合模型扩展作为谷歌这样超级巨头,自然有大量的数据资源和计算资源来做出这样更加泛化的研究。对于普通人而言,很难有这样的算力来进行成百上千次的大规模调参。但EfficientNet也提高了我们普通人做深度学习的baseline,站在巨人的肩膀上,一直都是件值得兴奋的事情。参考文献:LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.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.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.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.Tan M, Le Q V. EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks[J]. arXiv preprint arXiv:1905.11946, 2019.



推荐阅读
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 读手语图像识别论文笔记2
    文章目录一、前言二、笔记1.名词解释2.流程分析上一篇快速门:读手语图像识别论文笔记1(手语识别背景和方法)一、前言一句:“做完了&#x ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • 深度学习与神经网络——邱锡鹏
    深度学习与神经网络——邱锡鹏-一、绪论人工智能的一个子领域神经网络:一种以(人工))神经元为基本单元的模型深度学习:一类机器学习问题,主要解决贡献度分配问题知识结构:路线图:顶 ... [详细]
  • 鄂维南:从数学角度,理解机器学习的「黑魔法」,并应用于更广泛的科学问题...
    作者|Hertz来源|科学智能AISI北京时间2022年7月8日晚上22:30,鄂维南院士在2022年的国际数学家大会上作一小时大会报告(plenarytalk)。今 ... [详细]
  • 智商狂飙,问了ChatGPT几个数据库问题后,我的眼镜掉了
    原标题:智商狂飙,问了ChatGPT几个数据库问题后,我的眼镜掉了最近,ChatGPT火爆全网,介绍其产品、公司、作者、技术和应用等方面信息,占据着整个互联网,似乎不谈GPT好像 ... [详细]
  • 数据科学,统计概述,信号与频谱
    作者:Vamei出处:http:www.cnblogs.comvamei欢迎转载,也请保留这段声明。谢谢!  数据科学最近成为计算机的热门领域。数据科学是利用计算机的运算能力对数据 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 二十二、D3饼图Abstract在前一章中,你已经看到了条形图是如何表示某一类数 ... [详细]
  • 拯救万千学子于水深火热之中!Facebook开源无梯度优化工具
    乾明发自凹非寺量子位出品|公众号QbitAI机器学习啥最苦?十有八九找参数!不少研究生,都被卡在这个环节上,久久不能毕业。现 ... [详细]
  • 聊聊 中国人工智能科技产业 区域竞争力分析及趋势
    原文链接:聊聊中国人工智能科技产业区域竞争力分析及趋势最近看了一个关于国内AI的报告《中国新一代人工智能科技产业区域竞争力评价指数(2021ÿ ... [详细]
  • 来源:将门创投本文共约7000字,建议阅读9分钟。本文从多个角度畅想无人驾驶走入人们生活之后未来会变成什么样。无人驾驶的到来将会影响和改变我们生活的方方面面,未来 ... [详细]
  • 谈谈对大数据的八个观点分析
    越来越多程序员也涌入大数据行业,但是仔细问一些从业人员什么是大数据?鲜有人知道?就算知道的,最常引用Victor的4V理论,大量(Volume),快速(Velocity),种类多( ... [详细]
author-avatar
冲绳草莽英雄_266
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有