付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于卷积神经网络压缩方法的研究国内外文献综述目前国内外有很多用于卷积神经网络压缩的方法ADDINNE.Ref.{0B5EBF51-B8EE-4FA8-A510-4E1A4EFF5BA8}[7-11],大致可以分为五类:新型网络模块设计、知识蒸馏、低秩分解、网络量化、网络剪枝。下面将对每种方法做简要介绍。新型网络模块设计研究者们通过自己或其他研究者所积累的经验以及一些技巧,想方设法设计出相对比较小型且精度不低的新网络,例如2016年被发明提出SqueezeNetADDINNE.Ref.{BED59421-0BB0-442C-AC48-948659921C26}[12],以及2017年被Google公司发明提出的MobileNetADDINNE.Ref.{E290CE3A-1C6C-4864-BB03-7A90A6662D49}[13],还有2018年被发明提出的ShuffleNetADDINNE.Ref.{25EDA6EE-C43E-466C-B985-66F03033620A}[14]等。研究者们在设计新型小型网络结构时,一般使用比较小的卷积核,例如1×1和3×3这两种,这样会比直接使用7×7这样的大卷积核而言降低非常多的计算复杂度。AlexNet网络模型大小约为200M,虽然该网络一共有8层,但是,90%多的计算机都花费在了三层全连接层上,这三层全连接层占据的参数量也是最多的。因为相对于卷积层,FC层的参数量和计算量往往要更加庞大。为了避免引入全连接层导致模型参数量和计算量的飙升,NINADDINNE.Ref.{F0CF962C-9420-40A6-B25F-FAAD8C69D6DF}[15]使用了全局平均池化(GAP)来替换掉全连接层,并且使用1×1的卷积核来实现升维和降维,所以虽然该网络层数有4层,是AlexNet的一半,但是其模型大小确是AlexNet的1/10。在模块设计方面,NIN可以说远远优于AlexNet。此后,也有许多研究者借鉴了1×1卷积核的作用,使用其来进行通道变换,降维特征,达到压缩模型,降低模型大小和计算量的目的,例如GoogleNetADDINNE.Ref.{27FE43DD-FDCD-4DBE-A2B8-AC956621F852}[16]和ResNetADDINNE.Ref.{D56F7D92-341C-439E-BAAE-6D69C00066AD}[4]。发明了Inception和运用了1×1卷积核,才使得GoogleNetADDINNE.Ref.{B6718A57-4F58-44F4-85A2-9A625D55ACFD}[16]能够达到22层之深。将不同大小的卷积核进行级联,是Inception最特别最创新的地方,它将前一层输出使用三种卷积核,分别是1×1、3×3与5×5,分别进行卷积运算,再将三个核得到的结果级联起来,达到了提出多尺度特征的目的。此外,还极大地降低了网络的参数量,模型大小,使得模型训练速度得到了大幅提升。He等人又在ResNetADDINNE.Ref.{A229D409-D2EA-41F3-BE94-CA1C1D25180B}[4]中提出了残差模块以及运用1×1卷积核进行通道变换,使得ResNet能够很好地解决梯度消失问题,而且ResNet可以将网络越变越深,越深的网络学习到的表征能力越强ADDINNE.Ref.{A97D313A-38A3-41E6-A903-E30CC14D53C1}[17-19],精度越高。比如ResNet101的识别精度就比VGG16要高得多。自ResNet之后,新型网络结构设计都转向了模块化结构设计,例如借鉴模块化方法,提出了Fire模块的SqueezeNet网络ADDINNE.Ref.{A7339AEF-4B8E-4464-AE05-DE73DFF6528D}[20],Fire模块不仅仅减少了模型的参数数量,而且达到了更高的识别精度。随后,Google发明提出了深度可分离卷积的MobilenetADDINNE.Ref.{C1EFE40A-B20A-4F66-943D-8EA35778932F}[21],即把一个正常标准的卷积操作拆分为两步,第一步是深度卷积depth-wise操作,第二步是逐点卷积point-wise操作。MobilenetADDINNE.Ref.{9B5C8DE3-78C3-4D8C-932D-BBB2B59869AB}[21]采用深度可分离卷积的思想,即:将一个标准卷积分解为一个深度卷积和一个逐点卷积,如3.1所示。Mobilenet在同等精度下,把网络模型的参数量以及计算量都减少了数十倍之多,目前也在工业界中对精度和延迟都比较敏感的场景中应用广泛。不同于对已完成训练的模型进行压缩,新型网络模块设计是在训练尚未开始之前就开始想方设法压缩网络了,其主要思想大多集中在改变传统的卷积层,例如ShffleNetADDINNE.Ref.{D530F9E4-1CBC-430B-A9AD-C98DD73B1CAE}[22]中的bottleneck模块和SqueezeNetADDINNE.Ref.{895D6B37-27E7-4685-A85C-DD53067E145B}[20]的Fire模块。设计新模块可以比较有效地减低网络的参数数量和计算量,但是,设计新模块最大的缺陷是其往往需要设计者拥有比较丰富的经验技巧,而且经过多次的实验尝试验证设计的新模块是否有效,所以这种压缩方法除了少数研究者比较擅长外,对没有丰富经验和技巧的研究者而言会比较困难。所以并非网络模型压缩中常用的方法。图1.SEQ图1.\*ARABIC1深度可分离卷积Fig1.1Depthseparableconvolution知识蒸馏复杂新概念的学习并不一定需要充足大量的训练集,有一种只需少量训练数据便可学习到新概念的机制,它便是知识迁移。1997年,Caruana等人ADDINNE.Ref.{23DB3E2F-2823-4A40-B8D4-89E0935505F2}[23]提出了知识迁移的概念,并成功地将它运用于网络模型压缩中,大大地降低模型的参数量和计算复杂度。具体做法如下,他们通过训练得到了一个带有伪数据的分类网络模型,该模型虽为压缩过后的模型,但是却有着和之前原始大网络同样的输出ADDINNE.Ref.{7C5DBEC5-2707-43BD-9986-215C2230523D}[24,25]。所以,在上述过程中,带有伪数据的网络模型为小模型,原始网络为大模型,可以在一定程度上视为把原始大网络压缩成了小网络了。但是,知识迁移也有一个致命的缺陷,就是这种方法只能对浅层的模型起作用,对于层数加深,规模加大的网络,便不适用了,局限性很大。总而言之,知识迁移就是想方设法把有用的信息从原始比较大的网络中提取出来,然后将之转移给较为简单的小网络,这样一来,简单小网络经过迁移学习之后就能从复杂大网络那里学到十分有用的信息,在特定任务上,拥有了接近复杂大网络的拟合和泛化性能。2015年,Hinton等人ADDINNE.Ref.{73FC9065-BB46-41F2-8FE4-9B64A4F7E1CB}[24]发明提出了新的一种相似的框架,称为知识蒸馏。该框架的具体做法与上述的知识迁移较为相似,通过模拟人类的学习过程,让教师模型来充当“教师”,从而在课堂上指导“学生”模型进行学习,学生网络在课堂上经过认真的学习之后,便可获得知识量没老师多但是在解决某个特定问题上与老师有差不多的能力,也就是学生网络比教师网络简单,但是在这个任务上性能却是相似的。2016年,Sau等人ADDINNE.Ref.{1731FFF6-AF93-48DD-8BB1-99DDA260A934}[25]将Hinton等人提出的师生框架加以扩展,除了使用教师模型来训练学生模型之外,教师模型的输出中还会添加一些噪声。这样一来,通过引入噪声,可以在一定程度上提高学生网络的泛化能力。在之后的知识蒸馏相关研究中,Korat等人ADDINNE.Ref.{8EEA6A13-3267-4AA0-85C5-69D2C29F3CBB}[26]通过把学生模型进行参数化,达到逼近蒙特卡洛老师模型的目的。不同于前人研究惯用的使用软标签来代表知识,Luo等人ADDINNE.Ref.{CB2EC3F2-17F5-4292-9ECB-4A05798ECEDA}[27]把知识用更高的隐藏层神经元来进行表示,通过这种方法,尽量多的信息会作为标签概率被该神经元保存下来。2016年,注意力转移机制(AttentionTransfer)被Zagoruyko等人ADDINNE.Ref.{B07E6081-2861-410D-88E7-484441BFDC04}[28]发明提出,这样一来,教师网络的注意力就可以被学生网络模型模仿学习到,从而让学生网络提升了自身的学习能力,进而提高了学生网络自身的性能。知识蒸馏主要是使用已经经过训练的大型网络来指导小网络的训练,使得训练后的小网络拥有与大网络差不多的拟合能力。该方法虽然不要求研究者需要跟新型网络结构设计一样具备比较丰富的知识和技巧,但是,其只能从头开始训练,一般训练耗时过长,而且,仅仅支持分类任务,使到它的运用也收到了一定的限制,不能很好地广泛运用。低秩分解深度学习里卷积神经网络的计算量主要在于卷积运算,所以一旦我们能够把卷积运算的复杂度降下来,那么相当于把网络也压缩下来了。正如Mobilenet系列中,就是把常规的卷积操作拆分为深度可分离深度卷积来达到压缩和加速目的的。减少卷积运算除了像Mobilenet这种拆分卷积运算的之外,也可以减少卷积层,卷积层一少,卷积数目就少,卷积数目一少,卷积运算便跟着少,所以能够大幅度地降低模型的计算复杂度。卷积层和全连接层都可以用低秩分解来降低复杂度ADDINNE.Ref.{E825F5B5-B5B8-45A0-9513-E2CDEB931732}[29-31],卷积神经网络里的卷积核其实可以看做是一个4D的张量,可能存在大量的冗余,所以可以使用低秩分解来消除。全连接层也同理,它是一个2D的张量,一样可能会有冗余信息,可以借助低秩分解来消除ADDINNE.Ref.{8A510973-9704-4296-84AC-C5119AB4569E}[32,33]。一个大的复杂矩阵一般可以通过奇异值分解(SVD)ADDINNE.Ref.{7E90CEA0-0B57-4D2C-8001-AE8AA230624C}[34]将其分解为数个小矩阵,从而减低整体的参数量。2014年,Denton等人ADDINNE.Ref.{65BE91F8-9BD1-4DCA-9D18-5236B4536EBA}[35]通过SVD把卷积核进行分解得到近似值,从而在保证模型识别正确率损失只有1%以内的情况下,模型的压缩比和加速比都达到了2∼3倍左右,达到了很好的压缩加速效果ADDINNE.Ref.{B872AAE6-9392-46C9-92C8-A6DD8C4DC6E1}[26,36,37]。低秩分解虽然可以在一定程度上压缩和加速卷积神经网络,但是其包含计算代价非常高且不是很好实现的分解操作。况且在卷积神经网络中一般不同的层负责提出不同的信息,各司其职各有不同,所以需要从全局观的角度进行压缩加速,而低秩分解主要是通过逐层迭代进行分解,无法做到很好的全局的压缩。所以,低秩分解在卷积神经网络模型压缩和加速的运用也不是特别的广泛。网络量化网络量化是通过压缩网络中每个权重表示所需的位数来减少原始网络的大小,比如对参数进行8位量化可以显着提高速度,同时降低精度。在基于随机舍入的CNN训练中使用16位定点表示法的工作,该方法显着减少了内存使用和浮点运算,且损失分类精度不高。该方法提出了使用权重共享对链路权重进行量化的方法,然后将霍夫曼编码应用于量化的权重为进一步降低费率的密码本。它首先通过正常的网络训练来学习连接性,然后剪去了网络里权重值较小的连接。最后,对网络重新进行了训练,以了解其余稀疏连接的最终权重。这项工作在基于全参数量化的方法中获得了最先进的性能,使用Hessian权重来衡量网络权重的重要性,并且提出一种将Hessian量化逐渐平均化为聚类网络参数的方法。在极端情况下,每个权重都由1个比特位来表示,即二值神经网络。有一些工作是直接使用二值权重来训练卷积神经网络的,例如,BinaryConnectADDINNE.Ref.{DDAE7B2C-6E5C-4C2C-A5EE-2420C07D69A0}[38]和XNORNetworksADDINNE.Ref.{37EEBBE9-F21C-4E28-B369-A3CBDF0C10B4}[39]。它们的主要思想是在模型训练期间直接学习二进制权重或激活,经过反向传播训练的网络可以抵抗特定的权重失真,包括二进制权重。在处理诸如GoogleNetADDINNE.Ref.{DC8B5146-08D3-4FCF-BF92-6C62118F5ABA}[16]之类的大型CNN时,二进制网络的准确性大大降低。此类二进制网络的另一个缺点是存在基于简单的二值化方案的矩阵近似,而忽略了二值化对精度损失的影响,使得经过压缩后的网络无法再达到压缩前的精度值。网络剪枝网络通道剪枝已广泛用于模型加速和压缩,背后的核心思想是大型CNN模型被认为是过参数化的。通过删除大型模型不必要的或不太重要的权重ADDINNE.Ref.{83697315-BA67-411D-8342-E01BC34C4115}[40],我们可以获得效率更高,结构更紧凑的模型ADDINNE.Ref.{3150A291-72F4-491C-83EF-2A7EC02E7B2D}[9],但性能会稍微有所下降。传统的渠道剪枝方法主要依靠人为设计的范式来进行修剪ADDINNE.Ref.{32EEC892-5909-4896-863A-E5557AAD13D1}[41]。传统修剪方法的典型流程可以概括为三个阶段:对大型模型进行预训练,根据预先定义的标准修剪大型模型的“不重要”权重,对修剪的模型进行微调。最近的工作显示了通道修剪的新观点,即修剪模型的结构是确定修剪模型性能的关键,而不是继承的“重要”权重。基于这种观察,一些工作尝试设计修剪过程以直接从未修剪的结构中搜索最佳子结构。AMCADDINNE.Ref.{4D815FAE-11CF-4359-B334-6366603A1284}[42]采用强化学习(RL)来训练控制器,以输出未修剪结构中每一层的修剪率,而MetaPruningADDINNE.Ref.{9B62EE14-4252-49F2-8F4D-72CB7679F931}[43]使用进化算法搜索结构。然而,对这些修剪过程的优化需要训练和评估从未经修剪的网络中采样的大量结构,因此这些方法的可扩展性受到限制。尽管AMC不会微调修剪的结构,并且MetaPruning训练了元网络来预测网络的权重,从而避免训练搜索到的结构,但是可伸缩性的局限性仍然存在。先前有关通道修剪的工作可以大致分为两类,即硬修剪和软修剪。硬修剪会在迭代修剪和微调过程中删除通道,而软修剪只会使修剪后的通道为零或接近零。硬修剪方法主要取决于不同的修剪标准,例如权重标准,输出中零的平均百分比或每个通道对最终损失的影响。软修剪方法主要是使被修剪的通道为零或接近零,以减少这些通道的影响。首先通过层内准则和计算出的层比率将一些滤波器归零。然后,它会逐渐增加修剪过滤器的比率,直到达到给定的计算预算为止。训练时在批量归一化系数上添加L1正则化,训练后将修剪系数小的通道。以二分搜索的方式搜索最不重要的过滤器。使用生成式对抗学习来学习稀疏的软掩码,以将修剪后的滤波器的输出缩放为零。我们的方法可以看作是软修剪。近期一些基于网络结构化搜索(NAS)的工作ADDINNE.Ref.{D18A0699-A90B-4D39-9C88-8E09C48844CE}[44]设计了一个搜索过程,以直接从未修剪的网络中搜索最佳子结构。AMC使用强化学习来确定每层应保留的信道比例。MetaPruning使用进化算法搜索网络结构,并训练了元网络来预测搜索过程中网络结构的权重。参考文献[1] KrizhevskyA,SutskeverI,HintonGE.Imagenetclassificationwithdeepconvolutionalneuralnetworks[C]//Advancesinneuralinformationprocessingsystems,2012:1097-1105[2] SimonyanK,ZissermanA.Verydeepconvolutionalnetworksforlarge-scaleimagerecognition[C]//InternationalConferenceonLearningRepresentations,2015.[3] SzegedyC,LiuW,JiaY,etal.Goingdeeperwithconvolutions[C]//ProceedingsoftheIEEEconferenceoncomputervisionandpatternrecognition,2015:1-9[4] HeK,ZhangX,RenS,etal.Deepresiduallearningforimagerecognition[C]//ProceedingsoftheIEEEconferenceoncomputervisionandpatternrecognition,2016:770-778[5] HuangG,LiuZ,VanDerMaatenL,etal.Denselyconnectedconvolutionalnetworks[C]//ProceedingsoftheIEEEconferenceoncomputervisionandpatternrecognition,2017:4700-4708[6] LeQV,NgiamJ,CoatesA,etal.Onoptimizationmethodsfordeeplearning[C]//Proceedingsofthe28thInternationalConferenceonInternationalConferenceonMachineLearning,2011:265-272[7] LuoJ,WuJ,LinW.Thinet:Afilterlevelpruningmethodfordeepneuralnetworkcompression[C]//ProceedingsoftheIEEEinternationalconferenceoncomputervision,2017:5058-5066[8] UllrichK,MeedsE,WellingM.Softweight-sharingforneuralnetworkcompression[C]//InternationalConferenceonLearningRepresentations,2017:[9] 王磊,赵英海,杨国顺,等.面向嵌入式应用的深度神经网络模型压缩技术综述[J].北京交通大学学报,2017,41(6):34.[10] HuH,PengR,TaiY,etal.Networktrimming:Adata-drivenneuronpruningapproachtowardsefficientdeeparchitectures[C]//ComputingResearchRepository,2016:[11] HanS,MaoH,DallyWJ.Deepcompression:Compressingdeepneuralnetworkswithpruning,trainedquantizationandhuffmancoding[C]//InternationalConferenceonLearningRepresentations,2016:[12] IandolaFN,HanS,MoskewiczMW,etal.SqueezeNet:AlexNet-levelaccuracywith50xfewerparametersand<0.5MBmodelsize[J].arXivpreprintarXiv:1602.07360,2016.[13] HowardAG,ZhuM,ChenB,etal.Mobilenets:Efficientconvolutionalneuralnetworksformobilevisionapplications[J].arXivpreprintarXiv:1704.04861,2017.[14] ZhangX,ZhouX,LinM,etal.Shufflenet:Anextremelyefficientconvolutionalneuralnetworkformobiledevices[C]//ProceedingsoftheIEEEConferenceonComputerVisionandPatternRecognition,2018:6848-6856[15] LinM,ChenQ,YanS.Networkinnetwork[C]//InternationalConferenceonLearningRepresentations,2013:[16] SzegedyC,LiuW,JiaY,etal.Goingdeeperwithconvolutions[C]//ProceedingsoftheIEEEconferenceon
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天津海运职业学院单招职业倾向性考试题库附答案详解(黄金题型)
- 2026年天津交通职业学院单招职业技能考试题库带答案详解(预热题)
- 2026年宁波大学科学技术学院单招职业适应性考试题库及答案详解参考
- 2026年天津交通职业学院单招职业适应性考试题库及答案详解一套
- 2026年天津铁道职业技术学院单招职业技能考试题库含答案详解(培优)
- 持续改进服务升级承诺书范文4篇
- 放心食品安全承诺函(7篇)
- 用户数据分析规范操作手册
- 护理研究中的研究成果转化与应用
- 环境质量改善推动者承诺书(3篇)
- 《E252024船用集装箱式移动电源》
- 泌尿外科疾病诊疗规范
- 魔方教学课件教学课件
- 基础模块下册《中国人民站起来了》课件及说课稿
- 森林景观规划与管理优化
- 和安风电场电气设备定检及预防性试验技术规范
- 医疗肺结节科普宣教课件
- 多因子量化投资策略及实证检验
- 变电运行作业指导书
- 2024年青岛市高三一模英语高考模拟试卷试题(含答案详解)
- 2024年苏锡常镇四市高三一模教学情况调研一 地理试卷(含官方答案)
评论
0/150
提交评论