2021卷积神经网络原理与视觉实践.docx

上传人:夺命阿水 文档编号:752163 上传时间:2023-11-08 格式:DOCX 页数:129 大小:1.70MB
返回 下载 相关 举报
2021卷积神经网络原理与视觉实践.docx_第1页
第1页 / 共129页
2021卷积神经网络原理与视觉实践.docx_第2页
第2页 / 共129页
2021卷积神经网络原理与视觉实践.docx_第3页
第3页 / 共129页
2021卷积神经网络原理与视觉实践.docx_第4页
第4页 / 共129页
2021卷积神经网络原理与视觉实践.docx_第5页
第5页 / 共129页
点击查看更多>>
资源描述

《2021卷积神经网络原理与视觉实践.docx》由会员分享,可在线阅读,更多相关《2021卷积神经网络原理与视觉实践.docx(129页珍藏版)》请在课桌文档上搜索。

1、卷积神经网络原理与视觉实践1 .第一部分绪论2 .第二部分基础理论篇3 .第二部分实践应用篇4 .A向量、矩阵及其基本运算5 .B随机梯度下降6 .C链式法则7 .参考文献8 .索引第一部分绪论0.1引言2015年10月,一场围棋的人机对决赛正在进行,但由于是闭门对弈,这场比赛在进行时可谓“悄无声息”围棋,起源于中国,是迄今最古老的人类智力游戏之一。它的有趣和神奇,不仅在于规则简洁而优雅但玩法却千变万化,而且还因为它是世界上最复杂的棋盘游戏之一,是在此之前唯一一种机器不能战胜人类的棋类游戏。那场对决的一方是三届欧洲围棋冠军的樊麾二段,另一方则是GoOgIeDeePMind开发的“阿尔法狗”(A

2、lPhaGo)人工智能(ArtifiCiaIIntelligenceAD围棋系统,双方以正式比赛中使用的十九路棋盘进行了无让子的五局较量。与比赛进行时的状况大相径庭的是,赛后结局并非无人问津而是举世哗然:阿尔法狗以5:0全胜的纪录击败樊麾二段,而樊麾二段则成为世界上第一个于十九路棋盘上被Al围棋系统击败的职业棋手。樊麾二段在赛后接受NatUre采访时曾谈道:“如果事先不知道阿尔法狗是台电脑,我会以为对手是棋士,一名有点奇怪的高手。霎时间消息不胫而走,媒体报道铺天盖地,莫非人类就如此这般轻易地丢掉了自己的“尊严”?莫非所有棋类游戏均已输给AI?当然没有。樊麾一战过后不少围棋高手和学界专家站出来质

3、疑阿尔法狗取胜的“含金量”,为人类“背书”:此役机器仅仅战胜了人类的围棋职业二段,根本谈不上战胜了围棋高手,何谈战胜人类呢!就在人们以一副淡定姿态评论这次“小游戏”时,阿尔法狗正在酝酿下一次“大对决”,因为它即将在2016年3月迎战韩国籍世界冠军李世忍九段。近十年来,李世复是夺取世界冠军头衔次数最多的超一流棋手,所以从严格意义上讲,这才是真正的“人机大战”。与上次不同,2016年3月这次人机“巅峰对决”堪称举世瞩目,万人空巷。不过在赛前仍有不少人唱衰阿尔法狗,特别是整个围棋界满是鄙视,基本上认为阿尔法狗能赢一盘保住“面子”就善莫大焉了。但是随着比赛的进行,结果却令人错愕。第一局李世宜输了!“是

4、不是李世身的状态不对,没发挥出真正的水平?”第二局李世复又输了!“阿尔法狗还是蛮厉害的啊。不过阿尔法狗大局观应该不行,世身九段在这方面加强,应该能赢。”第三局李世忍再次输了!赛前站在人类棋手一方的乐观派陷入了悲观。“完了!虽然比赛已输,但李九段怎么说也要赢一盘吧。“果然,第四局78手出现神之一手,李世复终于赢了一盘,让人有了些许安慰。但末盘阿尔法狗没有再给李世身机会,最终以4:1大胜人类围棋的顶级高手,彻底宣告人类“丧失”了在围棋上的统治地位。“阿尔法狗”则迅速成为全世界热议的话题。在阿尔法狗大红大紫的同时,人们也牢牢记住了一个原本陌生的专有名词“深度学习(deeplearning)o0.2什

5、么是深度学习比起深度学习,“机器学习一词大家更熟悉一些。机器学习(machinelearning)是人工智能的一个分支,它致力于研究如何通过计算的手段,利用经验(experience)来改善计算机系统自身的性能。通过从经验中获取知识(knowledge),机器学习算法摒弃了人为向机器输入知识的操作,转而凭借算法自身学习到所需知识。对于传统机器学习算法,“经验”往往对应以“特征”(feature)形式存储的“数据”(data),传统机器学习算法所做的事情便是依靠这些数据产生“模型(model)o但是“特征”为何物?如何设计特征更有助于算法产生优质模型?一开始人们通过“特征工程”(featuree

6、ngineering)形式的工程试错方式得到数据特征。可是随着机器学习任务越来越复杂和多变,人们逐渐发现针对具体任务生成特定特征不仅费时费力,同时还特别敏感,很难将其应用于另一任务。此外,对于一些任务,人们根本不知道该如何使用特征有效表示数据。例如,人们知道一辆车的样子,但完全不知道设计怎样的像素值并配合起来才能让机器“看懂这是一辆车。这种情况就会导致,若特征造得不好,最终学习任务的性能也会受到极大程度的制约,可以说,特征工程的质量决定了最终任务的性能。聪明而倔强的人类并没有屈服:既然模型学习的任务可以通过机器自动完成,那么特征学习这个任务自然也可以完全通过机器自己实现。于是,人们尝试将特征学

7、习这一过程也让机器自动地“学”出来,这便是表示学习”(representationlearning)表示学习的发展大幅提高了人工智能应用场景下任务的最终性能,同时由于其具有自适应性,这使得人们可以很快将人工智能系统移植到新的任务上去。“深度学习”便是表示学习中的一个经典代表。深度学习以数据的原始形态(rawdata)作为算法输入,由算法将原始数据逐层抽象为自身任务所需的最终特征表示,最后以特征到任务目标的映射(mapping)作为结束。从原始数据到最终任务目标“一气呵成”,并无夹杂任何人为操作。如图1所示,相比传统机器学习算法仅学得模型这一单一“任务模块”,深度学习除了模型学习外,还有特征学习

8、、特征抽象等任务模块的参与,借助多层任务模块完成最终学习任务,故称其为“深度”学习。神经网络算法是深度学习中的一类代表算法,其中包括深度置信网络(deepbeliefnetwork)递归神经网络(recurrentneuralnetwork)和卷积神经网络(ConvolutionNeuralNetwork,CNN),等等。特别是卷积神经网络,目前在计算机视觉、自然语言处理、医学图像处理等领域可谓“一枝独秀”,它也是本书将侧重介绍的一类深度学习算法。有关人工智能、机器学习、表示学习和深度学习等概念间的关系可由图2所示的韦恩图来表示。输出传统机器学习算法深度学习图1传统机器学习算法与深度学习概念性

9、对比。直接从数据中自学习所得图中阴影标注的模块表示该模块可由算法avx缪您”/xxk/三一女rWNINn洛三y/ / / / / / q /二Ar)i.丁一一W鬲一7学工三三三三y、警/三三yx3三怒三2怒2飞彦三w三三三三三三三习箕度深图2人工智能、机器学习、表示学习、深度学习和卷积神经网络(CNN)之间的关系0.3深度学习的前世今生虽说阿尔法狗一鸣惊人,但它背后的深度学习这个概念却是由来已久。相对今日之繁荣,它一路走来的发展不能说一帆风顺,甚至有些跌宕起伏。回顾历史,深度学习的思维范式实际上是人工神经网络(artificialneuralnetworks)o追溯历史,该类算法的发展经历了三

10、次高潮和两次衰落。第一次高潮是20世纪4060年代时广为人知的控制论(CybemGics)。当时的控制论是受神经科学启发的一类简单的线性模型,其研究内容是给定一组输入信号xl,x2,xn,去拟合一个输出信号y,所学模型便是最简单的线性加权:f(x,)=xll+.+xnno显然,如此简单的线性模型令其应用领域极为受限,最为著名的是,它不能处理“异或”问题(XORfunction)。因此,人工智能之父MarVinMinSky曾在当时撰文,批判神经网络存在两个关键问题:首先,单层神经网络无法处理“异或”问题;其次,当时的计算机缺乏足够的计算能力以满足大型神经网络长时间的运行需求。MinSky对神经网

11、络的批判使有关它的研究从20世纪60年代末开始进入“寒冬”,后来人工智能虽产生了很多不同的研究方向,可唯独神经网络好像逐渐被人淡忘。直到20世纪80年代,DavidRumelharfiIGeofferyE.Hinton等人提出了反向传播(backpropagation)算法,解决了两层神经网络所需要的复杂计算量问题,同时克服了MinSky所说的神经网络无法解决的异或问题,自此神经网络“重获生机”,迎来了第二次高潮,即20世纪8090年代的连接主义(COnneCtioniSm)O但好景不长,受限于当时数据获取的瓶颈,神经网络只能在中小规模数据上训练,因此过拟合(overfitting)极大地困扰

12、着神经网络算法。同时,神经网络算法的不可解释性令它俨然成为一个“黑盒”,训练模型好比撞运气,有人无奈地讽刺说它根本不是“科学”(SCienCe),而是一种“艺术”(art)0另外,加上当时硬件性能不足而带来的巨大计算代价,使人们对神经网络望而却步,相反,支持向量机(supportvectormachine)等数学优美且可解释性强的机器学习算法逐渐成为历史舞台上的“主角”。短短十年,神经网络再次跌入“谷底”。甚至当时在一段时间内只要和神经网络沾边的学术论文儿乎都会收到类似这样的评审意见:tThebiggestissuewiththispaperisthatitreliesonneuralnetw

13、orks,(这篇论文最大的问题,就是它使用了神经网络。)但可贵的是,尽管当时许多人抛弃神经网络转行做了其他方向,但GeOfferyE.Hinton、YoShUaBengio和YannLeCUn等人仍“坚持不懈”,在神经网络领域默默耕耘,可谓“卧薪尝胆”。在随后的30年,软件算法和硬件性能不断优化,2006年,GeofferyE.Hinton等人在SCienCe上发表文章38提出:一种称为“深度置信网络(deepbeliefnetwork)的神经网络模型可通过逐层预训燎(greedylayer-wisepretraining)的方式,有效完成模型训练过程。很快,更多的实验结果证实了这一发现,更重

14、要的是除了证明神经网络训练的可行性外,实验结果还表明神经网络模型的预测能力相比其他传统机器学习算法可谓“鹤立鸡群”。HintOn发表在SCienCe上的这篇文章无疑为神经网络类算法带来了一缕曙光。被冠以“深度学习名称的神经网络终于可以大展拳脚,它首先于2011年在语音识别领域大放异彩,其后便是在2012年计算机视觉“圣杯ImageNet竞赛上强势夺冠,接着于2013年被MIT科技纵览(MlTTeChnologyReview)评为年度十大科技突破之首这就是第三次高潮,也就是大家都比较熟悉的深度学习(deeplearning)时代。其实,深度学习中的“deep”一词是为了强调当下人们已经可以训练和

15、掌握相比之前神经网络层数多得多的网络模型。不过也有人说深度学习无非是“新瓶装旧酒”,而笔者更愿意称其是“鸟枪换炮有效数据的急剧扩增、高性能计算硬件的实现以及训练方法的大幅完善,三者共同作用最终促成了神经网络的第三次“复兴细细想来,其实第三次神经网络的鼎盛与前两次大有不同,这次深度学习的火热不仅体现在学术研究领域的繁荣,它更引发相关技术的爆发,并产生了巨大的现实影响力和商业价值人工智能不再是一张“空头支票尽管目前阶段的人工智能还没有达到科幻作品中的强人工智能水平,但当下的系统质量和性能已经足以让机器在特定任务中完胜人类,也足以产生巨大的产业生产力。深度学习作为当前人工智能热潮的技术核心,哪怕研究

16、高潮日后会有所回落,但应不会再像前两次衰落一样被人们彻底遗忘。它的伟大意义在于,它就像一个人工智能时代人类不可或缺的工具,真正让研究者或工程师摆脱了复杂的特征工程,可以专注于解决更加宏观的关键问题;它又像一门人工智能时代人类必须使用的语言,掌握了它就可以用之与机器“交流”完成之前无法企及的现实智能任务。因此许多著名的大型科技公司,如GOOgIe、AmazonFacebook,微软、百度、腾讯和阿里巴巴等纷纷第一时间成立了聚焦深度学习的人工智能研究院或研究机构。相信随着人工智能大产业的发展,慢慢的,人类重复性的工作可被机器替代,从而社会运转效率大为提升,把人们从枯燥的劳动中解放出来参与到其他更富

17、创新的活动中去。有人说,“人工智能是不懂美的。”即便阿尔法狗在围棋上赢了人类,但它根本无法体会“落子知心路”给人带来的微妙感受。不过转念一想,如果真有这样一位可随时与你“手谈”的朋友,怎能不算是件乐事?我们应该庆幸可以目睹并且亲身经历甚至参与这次人工智能的革命浪潮,相信今后一定还会有更多像阿尔法狗一样的奇迹发生。此时,我们登高望远,极目远眺;此时,我们指点江山,挥斥方遒。正是此刻站在浪潮之巅,因此我们兴奋不已,彻夜难眠!第二部分基础理论篇1卷积神经网络基础知识卷积神经网络(ConVolUtiOnaINeUraINetWOrkS,CNN)是一类特殊的人工神经网络,区别于神经网络其他模型(如递归神

18、经网络、BoltZmann机等),它最主要的特点是卷积运算操作(COnVoIUlionOPeratOrS)因此,CNN在诸多领域的应用特别是图像相关任务上表现优异,例如图像分美(imageclassification)图像语义分割(imagesemanticsegmentation)图像检索(imageretrieval)物体检测(objectdetection)等计算机视觉问题。此外,随着CNN研究的深入,像自然语言处理(naturallanguageprocessing)中的文本分类、软件工程数据挖掘(softwaremining)中的软件缺陷预测等问题都在尝试利用卷积神经网络解决,并取得

19、了比传统方法甚至其他深度网络模型更优的预测效果。本章首先回顾卷积神经网络发展历程,接着从抽象层面介绍卷积神经网络的基本结构,以及卷积神经网络中的两类基本过程:前馈运算(预测和推理)和反馈运算(训练和学习)。1.1 发展历程卷积神经网络发展历史中的第一个里程碑事件发生在20世纪60年代左右的神经科学(neuroscience)领域中。加拿大神经科学家DaVidH.Hubel和TorStenWieSel(图1-1)于1959年提出猫的初级视皮层中单个神经元的“感受野”(receptivefield)概念,紧接着于1962年发现了猫的视觉中枢里存在感受野、双目视觉和其他功能结构,这标志着神经网络结构

20、首次在大脑视觉系统中被发现。1图I-ITOrStenWieSeI(左)和DaVidH.Hubel(右)。两人因在视觉系统中信息处理方面的杰出贡献,于1981年获得诺贝尔生理学或医学奖1980年前后,日本科学家福岛邦彦(KunihikoFukushima)在HUbel和WieSeI工作的基础上,模拟生物视觉系统并提出了一种层级化的多层人工神经网络,即“神经认知”(neurocognitron)19,以处理手写字符识别和其他模式识别任务。神经认知模型在后来也被认为是现今卷积神经网络的前身。在福岛邦彦的神经认知模型中,两种最重要的组成单元是“S型细胞”(S-CenS)和“C型细胞”(CCellS),

21、两类细胞交替堆叠在一起构成了神经认知网络(如图1-2所示)。其中,S型细胞用于抽取局部特征(localfeatures),C型细胞则用于抽象和容错,不难发现这与现今卷积神经网络中的卷积层(COnVoIUtiOnlayer)和汇合层(poolinglayer)可对应。图121980年福岛邦彦提出的神经认知模型19随后,YannLeCUn等人在1998年提出基于梯度学习的卷积神经网络算法54,并将其成功用于手写数字字符识别中,在那时的技术条件下就能取得低于1%的错误率。因此,LeNet这一卷积神经网络在当时便效力于全美几乎所有的邮政系统,用来识别手写邮政编码进而分拣邮件和包裹。可以说,LeNet是

22、第一个产生实际商业价值的卷积神经网络,同时也为卷积神经网络以后的发展奠定了坚实的基础。鉴于此,GOOgle在2015年提出GoOgLeNet80时还特意将“L”大写,以此向“前辈”LeNet致敬。图1-3LeNet-5结构54:一种用于字符识别的卷积神经网络。其中,每一个“矩形”代表一张特征图(featuremap),最后是两层全连接层(fullyconnectedlayer)时间来到2012年,在有计算机视觉界“世界杯”之称的ImageNet图像分类竞赛四周年之际,GeoffreyE.Hinton等人凭借卷积神经网络AleX-Net力挫日本东京大学、英国牛津大学VGG组等劲旅,且以超过第二名

23、近12%的准确率一举夺得该竞赛冠军52,霎时间学界、业界一片哗然。自此揭开了卷积神经网络在计算机视觉领域称霸的序幕2,此后每年ImageNet竞赛的冠军非深度卷积神经网络莫属。直到2015年,在改进了卷积神经网络中的激活函数(activationfunction)后,卷积神经网络在ImageNet数据集上的性能(4.94%)第一次超过了人类预测错误率(5.1%)34o近年来,随着神经网络特别是卷积神经网络相关领域研究人员的增多、技术的日新月异,卷积神经网络也变得愈宽愈深愈加复杂,从最初的5层、16层,到MSRA等提出的152层ReSidUaINeu36,甚至上千层网络对广大研究者和工程实践人员

24、来说也已司空见惯。不过有趣的是,我们从图l4a所示的AlexNel网络结构可以发现,在基本结构方面它与十几年前的LeNet几乎毫无差异。但数十载间,数据和硬件设备(尤其是GPU)的发展确实是翻天覆地的,它们实际上才是进一步助力神经网络领域革新的主引擎。正是如此,才使得深度神经网络不再是“晚会的戏法”和象牙塔里的研究,真正变成了切实可行的工具和应用手段。深度卷积神经网络自2012年一炮走红,到现在俨然已成为人工智能领域一个举足轻重的研究课题,甚至可以说深度学习是诸如计算机视觉、自然语言处理等领域主宰性的研究技术,更是工业界各大公司和创业机构着力发展、力求抢占先机的技术奇点。1.2 基本结构总体来

25、说,卷积神经网络是一种层次模型(hierarchicalmodel),其输入是原始数据(rawdata),如RGB图像、原始音频数据等。卷积神经网络通过卷积(ConVOlUtiOn)操作、汇合(PoOIing)操作和非线性激活函数(nonlinearactivationfunction)映射等一系列操作的层层堆叠,将高层语义信息由原始数据输入层中抽取出来,逐层抽象,这一过程便是“前馈运算”(feedforward)o其中,不同类型操作在卷积神经网络中一般被称作“层”:卷积操作对应“卷积层”,汇合操作对应“汇合层”,等等。最终,卷积神经网络的最后一层将目标任务(分类、回归等)形式化为目标函数(O

26、bjeCtiVefUnCtiOn)3。通过计算预测值与真实值之间的误差或损失(loss),凭借反向传癌算法(back-propagationalgorithm72)将误差或损失由最后一层逐层向前反馈(back-forward),更新每层参数,并在更新参数后再次前馈,如此往复,直到网络模型收敛,从而达到模型训练的目的。348(a)Alex-Net结构52(b)GeofTreyE.Hinton图1-4Alex-Net网络结构和GeoffreyE.Himon。值得一提的是,HimOn因其杰出的研究成就,获得2016年度电气和电子工程师协会(IEEE)与爱丁堡皇家科学会(ROyalSOCietyOfE

27、dinburgh)联合颁发的JameSClerkMaXWeII奖,以表彰其在深度孥习方面的突出贡献更通俗地讲,卷积神经网络操作犹如搭积木的过程(如图1-5所示),将卷积等操作层作为“基本单元依次搭在原始数据(图1-5中的xl)上,逐层“堆砌”,以损失函数的计算(图1-5中的Z)作为过程结束,其中每层的数据形式是一个三维张量(tensor)o具体地说,在计算机视觉应用中,卷积神经网络的数据层通常是RGB颜色空间的图像:H行、W列、3个通道(分别为R、G、B),在此记作XI。Xl经过第一层操作可得x2,对应第一层操作中的参数记为col;x2作为第二层操作层32的输入,可得x3直到第LT层,此时网络

28、输出为xL。在上述的过程中,理论上每层操作可以为单独的卷积操作、汇合操作、非线性映射或其他操作/变换,当然也可以是不同形式操作/变换的组合。图1-5卷积神经网络构建示意图。其中蓝色箭头表示数据层经过操作层的过程,黑色虚线表示数据层流程最后,整个网络以损失函数的计算作为结束。若y是输入Xl对应的真实标记(groundtruth),则损失函数表示为:(1.1)其中,函数4)中的参数即为3L。事实上,可以发现对于层中的特定操作,参数i是可以为空的,如汇合操作、无参的非线性映射以及无参损失函数的计算等。在实际应用中,对于不同任务,损失函数的形式也随之改变。以回归问题为例,常用的2损失函数即可作为卷积网

29、络的目标函数,此时有Z-regression(一|也-训:对于分类问题,网络的目标函数常采用交叉墙(crossentropy)损失函数,有Z=LClaSSifiCatiOn(xL,y)=-iyilog(pi),Pt=E烈蓑L)G=1,2,.,0)其中乙j=。C为分类任务类别施。显然,无论是回归问题还是分类问题,在计算Z前,向需要通过合适的操作得到与y同维度的xL,方可正确计算样本预测的损失/误差值。有关不同损失函数的对比请参见本书2.7Tio1.3 前馈运算无论是在训练模型时计算误差还是在模型训练完毕后获得样本预测,卷积神经网络的前馈(feed-forward)运算都较直观。同样以图像分类任务

30、为例,假设网络已训练完毕,即其中参数l,LT已收敛到某最优解,此时可用此网络进行图像类别预测。预测过程实际就是一次网络的前馈运算:将测试集图像作为网络输入Xl送进网络,之后经过第一层操作l可得x2,如此下去直至输出E肽。上一节提到,XL是与真实标记同维度的向量。在利用交叉墙损失函数训练后得到的网络中,XL的每一维可表示Xl分别隶属Cargmaxx个类别的后验概率。如此,可通过i得到输入图像Xl对应的预测标记。1.4 反馈运算同其他许多机器学习模型(支持向量机等)一样,卷积神经网络,包括其他所有深度学习模型都依赖最小化损失函数来学得模型参数,即最小化式1.1中的Z。不过需指出的是,从凸优化理论来

31、看,神经网络模型不仅是非凸(non-convex)函数而且异常复杂,这便造成优化求解的困难。在该情形下,深度学习模型采用随机梯度下降法(StOChaStiCGradientDescent5SGD)和误差反向传播(errorbackpropogation)进行模型参数更新。有关随机梯度下降法详细内容可参见附录B。具体来讲,在卷积神经网络求解时,特别是针对大规模应用问题(如ILSVRC分类或检测任务),常采用批处理的随机梯度下降法(mini-batchSGD)。批处理的随机梯度下降法在训练模型阶段随机选取n个样本作为一批(batch)样本,先通过前馈运算做出预测并计算其误差,后通过梯度下降法更新参

32、数,梯度从后往前逐层反馈,直至更新到网络的第一层参数,这样的一个参数更新过程称为“批处理过程“(mini-batch)。不同批处理之间按照无放回抽样遍历所有训练集样本,遍历一次训练样本称为“一轮”(epoch4)o其中,批处理样本的大小(batchsize)不宜设置得过小。过小时(如batchsize为1、2等),由于样本采样随机,那么基于该样本的误差更新模型参数不一定在全局上最优(此时仅为局部最优更新),这会使得训练过程产生振荡。而批处理大小的上限则主要受到硬件资源的限制,如GPU显存大小。一般而言,批处理大小设为32、64、128或256即可。当然在随机梯度下降更新参数时,还有不同的参数更

33、新策略,具体可参见第11章有关内容。个样本上的误差为z,下面我们来看误差反向传播的详细过程。按照第L2节的记号,假设某批处理前馈后得到n且C表示最后一层的损失函数,则易得:z3LzxlCxl(1.2)(13)若为设损失函数,=xl-y则dXO通过上式不难发现,实际上每层操作都对应了两部分导数:一部分是误差关于第i层参数的导数五齐,另一部分是误差关于该层输z入的导数dxi0其中:关于参数i的导数37用于该层参数更新l-ln-7.(1.4),l)n是每次随机梯度下降的步长,一般随训练轮数(epoch)的增多减小,详细内容请参见11.2.2节。2z关于输入Xi的导数则用于误差向前层的反向传播。可将其

34、视作最终误差从最后一层传递至第i层的误差信号。下面以第i层参数更新为例。当误差更新信号(导数)反向传播至第i层时,第i+1层的误差-Z匹z导数为灰中,第i层参数更新时需计算dl和dxl的对应值。根据链式法则(见附录C),可得:(1.5)(1.6)zzxl+x3ixi+x3izzxl+xxixi+ixia2前面提到,由于在第i+l层时已计算得到班中,即式1.5和式1.6中等号右端的左项。另一方面,在第i层,由于Xi经i直接作用得xi+l,故反向求导时亦可直接得到其偏导数(9a+a+HzzH而和aS.如此,可求得式1.5和式1.6中等号左端项和8砂。后根据式1.4z更新该层参数,并将O作为该层误差

35、传至前层,即第i层,如此下去,直至更新到第1层,从而完成一个批处理(mini-batch)的参数更新。基于上述反向传播算法的模型训练如算法1所示。算法1反向传播算法输入:训练集(N个训练样本及对应标记)(矶.外),n=1,.,;训练轮数(epoch)T输出:i,i=1,.,L1234567891011forf=1.Tdowhile训练集数据未遍历完全do前馈运算得到每层砂,并计算最终误差N;fori=L.1do(a)用式1.5反向计算第。层误差对该层参数的导数:r;(b)用式1.6反向计算第i层误差对该层输入数据的导数:赛;(C)用式1.4更新参数:3,3-n怒;endforendwhilee

36、ndforreturnl当然,上述方法是通过手动书写导数并用链式法则计算最终误差对每层不同参数的梯度的,之后仍需通过代码将其实现。可见这一过程不仅烦琐,且容易出错,特别是对一些复杂操作,其导数很难求得甚至无法显式写出。针对这种情况,一些深度学习库,如TheanO和TenSOrnOW都采用了符号微分的方法进行自动求导来训练模型。符号微分可以在编译时就计算导数的数学表示,并进一步利用符号计算方式进行优化。在实际应用时,用户只需把精力放在模型构建和前向代码书写上,不用担心复杂的梯度求导过程。不过,在此需指出的是,读者有必要对上述反向梯度传播过程加以了解,也要有能力求得正确的导数形式。1.5小结本章回

37、顾了卷积神经网络自1959年至今的发展历程。介绍了卷积神经网络的基本结构,可将其理解为通过不同种类基本操作层的“堆叠”,将原始数据表示(rawdatarepresentation)不经任何人为干预直接映射为高层语义表示(high-levelsemanticrepresentation),并实现向任务目标映射的过程这也是为何深度学习被称作端到端”(end-to-end)学习或作为“表示学习”(representationlearning)中最重要代表的原因。介绍了卷积神经网络中的两类基本过程:前馈运算和反馈运算。神经网络模型通过前馈运算对样本进行推理(inference)和预测(PrediCti

38、on),通过反馈运算将预测误差反向传播并逐层更新参数,如此两种运算依次交替迭代完成模型的训练过程。2卷积神经网络基本部件在了解了深度卷积神经网络的基本架构之后,本章将主要介绍卷积神经网络中的一些重要部件(或模块),正是这些部件的层层堆叠使得卷积神经网络可以直接从原始数据(rawdata)中学习其特征表示并完成最终任务。2.1 “端到端”思想深度学习的一个重要思想即“端到端”的学习方式(end-to-endmanner),属表示学习(representationlearning)的一种5。这是深度学习区别于其他机器学习算法的最重要的一个方面。其他机器学习算法,如特征选择算法(featuresel

39、ection)、分类器(classifier)算法、集成学习(ensemblelearning)算法等,均假设样本特征表示是给定的,并在此基础上设计具体的机器学习算法。在深度学习时代之前,样本表示基本都使用人工特征(hand-craftedfeature),但“巧妇难为无米之炊”,人工特征的优劣往往在很大程度上决定了最终的任务精度。这样便催生了一种特殊的机器学习分支特征工程(featureengineering)0在深度学习时代之前,特征工程在数据挖掘的工业界应用及计算机视觉应用中都是非常重要和关键的环节。特别是在计算机视觉领域,在深度学习时代之前,针对图像、视频等对象的表示可谓“百花齐放,百

40、家争鸣”。仅拿图像表示(imagerepresentation)举例,从表示范围可将其分为全局特征描述子(globaldescriplor)和局部特征描述子(IoCaldeSCriPIOr),而仅局部特征描述子就有数十种之多,如SIFn62、PCA-SIFT48bSURF2、HOGn3、Steerablefilters18同时,不同局部描述子擅长的任务又不尽相同,一些适用于边缘检测,一些适用于纹理识别,这便使得在实际应用中挑选合适的特征描述子成为一件令人头疼的事情。对此,甚至有研究者于2004年在相关领域国际顶级期刊TPAMl(IEEETransactionsonPatternAnalysis

41、andMachineIntelligence)上发表实验性综述“APerformanceEvaluationofLocalDcscriptors,66,来系统性地理解不同局部特征描速子的作用,至今已获得近8000次引用。而在深度学习普及之后,人工特征已逐渐被表示学习根据任务自动需求“学到”的特征表示所取代6。更重要的是,过去解决一个人工智能问题(以图像识别为例)往往通过分治法将其分解为预处理、特征提取与选择、分类器设计等若干步骤。分治法的动机是将图像识别的母问题分解为简单、可控且清晰的若干小的子问题。不过在分步解决子问题时,尽管可在子问题上得到最优解,但在子问题上的最优并不意味着就能得到全局问

42、题的最优解。对此,深度学习则为我们提供了另一种范式(Paradigm),即“端到端”的学习方式,其在整个学习流程中并不进行人为的子问题划分,而是完全交给深度学习模型直接学得从原始输入到期望输出的映射。相比分治策略,“端到端”的学习方式具有协同增效的优势,有更大可能获得全局最优解。如图21所示,对于深度模型,其输入数据是未经任何人为加工的原始样本形式,后续则是堆叠在输入层上的众多操作层。这些操作层整体可被看作一个复杂的函数fCNN,最终损失函数由数据损失(dataloss)和模型参数的正则化损失(regularizationloss)共同组成,深度模型的训练则在最终损失驱动下对模型进行参数更新并

43、将误差反向传播至网络各层。模型的训练过程可以简单抽象为从原始数据向最终目标的直接“拟合”,而中间的这些部件正起到了将原始数据映射为特征(即特征学习),随后再映射为样本标记(即目标任务,如分类)的作用。下面我们就来看看组成fCNN的各个基本部件。/CNN正则损失(regularization IoSS )数据损失(data loss )卷积层激活函数汇合层卷积层激活函数汇合层全连接层全连接层图2-1卷积神经网络基本流程图2.2 网络符号定义UHlWlDl同上一章类似,在此用三维张量第eK表示卷积神经网络第1层的输入,用三元组(i,jl,dl)来指示该张量对应第il行、第jl列、第dl通道(Cha

44、nnel)位置的元素,其中0ilvHl,0jlvWl,0dlvDl,如图2-2所示。不过,一般在工程实践中,由于采用了mini-batch(批处理)训练策略,网络第1层输入通常是一个四维张量,即干/仁HlWlDlN儿亡膝,其中N为mini-batch每一批的样本数。图2-2卷积神经网络第1层输入Xl示意图以N=I为例,Xl经过第1层操作处理后可得xll,为了后面章节书写方便,特将此简写RHZ+1Vz1Dz+12.3 卷积层卷积层(COnVolUtiOnlayer)是卷积神经网络中的基础操作,甚至在网络最后起分类作用的全连接层在工程实现时也是由卷积操作替代的。2.3.1 什么是卷积卷积运算实际上

45、是分析数学中的一种运算方式,在卷积神经网络中通常仅涉及离散卷积的情形。下面以dl=l的情形为例介绍二维场景的卷积操作。假设输入图像(输入数据)为如图2-3所示右侧的5X5矩阵,其对应的卷积核(亦称卷积参数,convolutionkernel(convolutionfilter)为一个3x3的矩阵。同时,假定卷积操作时每做一次卷积,卷积核移动一个像素位置,即卷积步长(stride)为1。图23二维场景下的卷积核与输入数据。图左为一个3x3的卷积核,图右为5x5的输入数据第一次卷积操作从图像(0,0)像素开始,由卷积核中参数与对应位置图像像素逐位相乘后累加作为一次卷积操作结果,即11+20+31+

46、60+71+80+91+80+71=1+3+7+9+7=27,如图2-4a所示。类似地,在步长为1时,如图2-4b图2-4d所示,卷积核按照步长大小在输入图像上从左至右、自上而下依次将卷积操作进行下去,最终输出3x3大小的卷积特征,同时该结果将作为下一层操作的输入。(a)第一次卷积操作及得到的卷积特征(b)第二次卷积操作及得到的卷积特征图2-4卷积操作示例TlCHlWlDl与之类似,若三维情形下的卷积层1的输入张量为aU,则该层卷积flUHWDl核为J匕g。在三维时卷积操作实际上只是将二维卷积扩展到了对应位置的所有通道上(即DI),最终将一次卷积处理的所有HWDl个元素求和作为该位置卷积结果。

47、如图2-5所示。图2-5三维场景下的卷积核与输入数据。图左卷积核大小为3x4x3,图右为在该位置进行卷积操作后得到的IXIXl的输出结果进一步地,若类似fl这样的卷积核有D个,则在同一个位置上可得到IXlXlXD维度的卷积输出,而D即为第1+1层特征XbH的通道数D1+1。形式化的卷积操作可表示为:HWD1%+J+I,d=2LELJd,dXN“+1+,/+1+抵小,(21)i=0j=0dl=0其中,(il+ljl+1)为卷积结果的位置坐标,满足:Oil+1H1-H+l=Hz+l,(2.2)Ojl+iW1-W+=Ww.(2.3)需要指出的是,式2.1中的J2jq,可被视作学习到的权重(weight),可以发现该项权重对不同位置的所有输入都是相同的,这便是卷积层“权值共享”(weigh

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号