卷积神经网络结构优化综述

卷积神经网络结构优化综述

人工智能技术与咨询 

来源:《自动化学报》 ,作者林景栋等

摘 要 近年来,卷积神经网络(Convolutional neural network,CNNs)在计算机视觉、自然语言处理、语音识别等领域取得了突飞猛进的发展,其强大的特征学习能力引起了国内外专家学者广泛关注.然而,由于深度卷积神经网络普遍规模庞大、计算度复杂,限制了其在实时要求高和资源受限环境下的应用.对卷积神经网络的结构进行优化以压缩并加速现有网络有助于深度学习在更大范围的推广应用,目前已成为深度学习社区的一个研究热点.本文整理了卷积神经网络结构优化技术的发展历史、研究现状以及典型方法,将这些工作归纳为网络剪枝与稀疏化、张量分解、知识迁移和精细模块设计4 个方面并进行了较为全面的探讨.最后,本文对当前研究的热点与难点作了分析和总结,并对网络结构优化领域未来的发展方向和应用前景进行了展望.

关键词 卷积神经网络,结构优化,网络剪枝,张量分解,知识迁移

卷积神经网络(Convolutional neural network,CNNs)作为最重要的深度模型之一,由于具有良好的特征提取能力和泛化能力,在图像处理、目标跟踪与检测、自然语言处理、场景分类、人脸识别、音频检索、医疗诊断诸多领域获得了巨大成功.卷积神经网络的快速发展一方面得益于计算机性能的大幅提升,使得构建并训练更大规模的网络不再受到硬件水平的限制;另一方面得益于大规模标注数据的增长,增强了网络的泛化能力.以大规模视觉识别竞赛(ImageNet large scale visual recognition competition,ILSVRC)的历届优秀模型为例,AlexNet[1] 在ILSVRC 2012 上的Top-5识别正确率达到83.6%,随后几年卷积神经网络的性能持续提升[2−4],ResNet-50[5] 在ILSVRC 2015上的Top-5 识别正确率达到96.4%,已经超过人类平均水平.在此之后,卷积神经网络被进一步应用于其他领域,比如由谷歌DeepMind 公司开发的人工智能围棋程序AlphaGo 在2016 年战胜世界围棋冠军李世石.

卷积神经网络的整体架构大体上遵循着一种固定的范式,即网络前半部分堆叠卷积层,间或插入若干池化层以组成特征提取器,最后连上全连接层作为分类器,构成一个端到端的网络模型,如图1 中LeNet-5[6] 所示.卷积神经网络一般通过增加卷积层数量以增加网络深度,用这种方式获得的深度模型在分类任务上有更好的表现[7].从表1 可以看出,卷积神经网络的性能不断增长,其在ImageNet 数据集的识别错误率不断降低,同时其时间复杂度和空间复杂度也相应上升.具体地,卷积神经网络的网络层数呈持续增加态势,其训练参数数量和乘加操作数量也保持在一个较高的水平,例如VGGNet-16 具有高达138 M 参数量,其整体模型规模超过500 M,需要155 亿次浮点数操作才能对一张图片进行分类.

深度卷积神经网络通常都包含有几十甚至上百卷积层,训练参数量动辄上百万,在GPU 加速支持下仍然需要花费几天或几周时间才能完成训练(如ResNet 需用8 个GPU 训练2 ∼3 周时间),制约了其在移动设备、嵌入式系统等资源受限场景下的应用.如表1 所示,过去由于卷积层在网络训练阶段和预测阶段的前向推导过程中涉及大量的浮点数计算操作,而全连接层的神经元之间采用全连接方式,拥有绝大多数训练参数,所以卷积神经网络的时间复杂度主要由卷积层决定,空间复杂度主要由全连接层决定.随着卷积神经网络逐渐向更深层次发展,卷积层数量急剧增加,在前向推导过程中产生的中间变量会占用大量内存空间,此时卷积层同时决定了网络的时间复杂度和空间复杂度.因此,降低卷积层和全连接层的复杂度有助于优化卷积神经网络的结构,对于网络的压缩与加速也有重要的促进作用.

针对网络结构优化的相关研究在90 年代已被提出[8−9],然而由于当时神经网络大多属于浅层网络,对于结构优化的需求尚不强烈,因此未能引起广泛关注.如今卷积神经网络的规模日益庞大,而大量应用场景都无法提供相应的必需资源,因此探讨在保证网络精度的前提下压缩并加速模型是网络结构优化领域的前沿热点.随着对卷积神经网络结构优化研究的逐渐深入,大量成果不断涌现,一些学者对这一领域的相关工作进行了归纳与总结,如文献[10]重点讨论了模型压缩与加速各种方法的优缺点,文献[11]从硬件和软件两方面整理了网络加速的研究进展,文献[12]简要介绍了深度网络压缩的典型方法.本文在这些工作的基础上,结合最新研究进展和成果,全面地梳理与总结了卷积神经网络结构优化方面的研究工作.其中第1 节到第4 节分别从网络剪枝与稀疏化、张量分解、知识迁移和精细化结构设计4 个方面归纳了相关研究思想和方法,第5 节综合卷积神经网络结构优化领域的研究现状,对其未来研究趋势和应用方向进行了展望.

图1 LeNet-5 网络结构[6]
Fig.1 Structure of LeNet-5[6]

表1 经典卷积神经网络的性能及相关参数
Table 1 Classic convolutional neural networks and corresponding parameters

1 网络剪枝与稀疏化

文献[13]的研究表明,卷积神经网络从卷积层到全连接层存在大量的冗余参数,大多数神经元被激活后的输出值趋近于0,即使将这些神经元剔除也能够表达出模型特征,这种现象被称为过参数化.例如ResNet-50 拥有50 层卷积层,整个模型需要95 MB 存储空间,在剔除75% 的参数后仍然正常工作,而且运行时间降低多达50%[14].因此,在网络训练过程中可以寻求一种评判机制,剔除掉不重要的连接、节点甚至卷积核,以达到精简网络结构的目的.网络结构精简的一个具体表现是网络的稀疏化,这给模型训练带来了三点好处:首先是由于网络参数的减少,有效缓解了过拟合现象的发生[15];其次,稀疏网络在以CSR (Compressed sparse row format,CSR)和CSC(Compressed sparse column format)等稀疏矩阵存储格式存储于计算机中可大幅降低内存开销;最后,训练参数的减少使得网络训练阶段和预测阶段花费时间更少.由于网络剪枝具有易于实施且效果显著的优点,目前已成为模型压缩与加速领域最重要的结构优化技术.

根据卷积神经网络训练阶段的不同,网络剪枝与稀疏化方法主要包含训练中稀疏约束与训练后剪枝两个大类[16].对于前者,通过在优化函数添加稀疏性约束,诱导网络结构趋于稀疏,这种端到端的处理方法不需要预先训练好模型,简化了网络的优化过程.对于后者,通过剔除网络中相对冗余、不重要的部分,同样可以使得网络稀疏化、精简化.事实上,无论是在训练中引入稀疏约束还是训练后剪枝网络,最终目的都是使网络的权重矩阵变得稀疏,这也是加速网络训练、防止网络过拟合的重要方式.

对于网络损失函数中的稀疏约束,主要是通过引入l0或l1正则化项实现的.假设训练数据集D包含N 个数据对(x1,y1),(x2,y2),···,(xN,yN),训练参数为θ,则网络训练的目标优化函数一般表示为:

其中,

,p=0,1.优化函数的第一项是经验风险,第二项是正则化项,带有正则化约束的优化函数在反向传播时驱使不重要权重的数值变为零,使得训练后的网络具有一定的稀疏性和较好的泛化性能.Collins 等[17] 在参数空间中通过贪婪搜索决定需要稀疏化的隐含层,能够大幅减少网络中的权重连接,使模型的存储需求降低了3 倍,并且克服了OBS 与OBD 处理大型网络面临的精度下降问题.Jin 等[18] 提出的迭代硬阈值(Iterative hard thresholding,IHT)方法分两步对网络进行剪枝,在第一步中剔除隐含节点间权值较小的连接,然后微调(Fine-tune)其他重要的卷积核,在第二步中激活断掉的连接,重新训练整个网络以获取更有用的特征.相比于传统方式训练的网络,通过IHT 训练的网络具有更加优越的泛化能力和极低的内存大小.Zeiler 等[19] 利用前向–后向切分法(Forwardbackward splitting method)处理带有稀疏约束的损失函数,避免了在反向传播中需要求取二阶导数等计算复杂度较高的运算,加快了网络训练速度.Wen 等[20] 认为网络结构从卷积核到卷积通道都充斥着冗余无用的信息,他们提出的结构化稀疏学习(Structured sparsity learning,SSL)直接学习到的硬件友好型稀疏网络不仅具有更加紧凑的结构,而且运行速度可提升3 倍至5 倍.Lebedv 等[21] 以分组形式剪枝卷积核输入,以数据驱动的方式获取最优感受野(Receptive field),在AlexNet 中获得8.5倍的速度提升而损失精度不到1%.Louizos 等[22]利用一系列优化措施将不可微分的l0范数正则项加入到目标函数,学习到的稀疏网络不仅具有良好的泛化性能,而且极大加速了模型训练和推导过程.

Dropout 作为一种强有力的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值