没有合适的资源?快使用搜索试试~ 我知道了~
卷积神经网络结构优化综述.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 190 浏览量
2023-02-23
20:14:50
上传
评论
收藏 393KB DOCX 举报
温馨提示
试读
20页
卷积神经网络结构优化综述.docx
资源推荐
资源详情
资源评论
卷积神经网络(Convolutional neural network, CNNs)作为最重要的深度模型之一, 由于
具有良好的特征提取能力和泛化能力, 在图像处理、目标跟踪与检测、自然语言处理、场
景分类、人脸识别、音频检索、医疗诊断诸多领域获得了巨大成功.卷积神经网络的快速发
展一方面得益于计算机性能的大幅提升, 使得构建并训练更大规模的网络不再受到硬件水
平的限制; 另一方面得益于大规模标注数据的增长, 增强了网络的泛化能力.以大规模视觉
识别竞赛(ImageNet large scale visual recognition competition, ILSVRC)的历届优秀模型为例,
AlexNet
[1]
在 ILSVRC2012 上的 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 亿次浮点数操作才能对一张图片进行分类.
图 1 LeNet-5 网络结构
[6]
Fig. 1 Structure of LeNet-5
[6]
下载: 全尺寸图片 幻灯片
表 1 经典卷积神经网络的性能及相关参数
Table 1 Classic convolutional neural networks and corresponding parameters
年份
网络名称
网络层
数
卷积层数
量
参数数量 卷积层 全连
接层
乘加操作数(MACs) 卷积层 全
连接层
Top-5 错误率
(%)
2012
AlexNet
[1]
8
5
2.3M
58.6M
666 M
58.6M
16.4
2014
Overfeat
[2]
8
5
16 M
130M
2.67G
124M
14.2
2014
VGGNet-
16
[3]
16
13
14.7M
124M
15.3 G
130M
7.4
2015
GoogLeNet
[4
]
22
21
6M
1M
1.43 G
1M
6.7
2016
ResNet-
50
[5]
50
49
23.5M
2M
3.86 G
2M
3.6
下载: 导出 CSV
| 显示表格
深度卷积神经网络通常都包含有几十甚至上百卷积层, 训练参数量动辄上百万, 在
GPU 加速支持下仍然需要花费几天或几周时间才能完成训练(如 ResNet 需用 8 个 GPU 训练
2 ~ 3 周时间), 制约了其在移动设备、嵌入式系统等资源受限场景下的应用.如表 1 所示,
过去由于卷积层在网络训练阶段和预测阶段的前向推导过程中涉及大量的浮点数计算操作,
而全连接层的神经元之间采用全连接方式, 拥有绝大多数训练参数, 所以卷积神经网络的时
间复杂度主要由卷积层决定, 空间复杂度主要由全连接层决定.随着卷积神经网络逐渐向更
深层次发展, 卷积层数量急剧增加, 在前向推导过程中产生的中间变量会占用大量内存空
间, 此时卷积层同时决定了网络的时间复杂度和空间复杂度.因此, 降低卷积层和全连接层
的复杂度有助于优化卷积神经网络的结构, 对于网络的压缩与加速也有重要的促进作用.
针对网络结构优化的相关研究在 90 年代已被提出
[8-9]
, 然而由于当时神经网络大多属
于浅层网络, 对于结构优化的需求尚不强烈, 因此未能引起广泛关注.如今卷积神经网络的
规模日益庞大, 而大量应用场景都无法提供相应的必需资源, 因此探讨在保证网络精度的前
提下压缩并加速模型是网络结构优化领域的前沿热点.随着对卷积神经网络结构优化研究的
逐渐深入, 大量成果不断涌现, 一些学者对这一领域的相关工作进行了归纳与总结, 如文献
[10]重点讨论了模型压缩与加速各种方法的优缺点, 文献[11]从硬件和软件两方面整理了网
络加速的研究进展, 文献[12]简要介绍了深度网络压缩的典型方法.本文在这些工作的基础
上, 结合最新研究进展和成果, 全面地梳理与总结了卷积神经网络结构优化方面的研究工
作.其中第 1 节到第 4 节分别从网络剪枝与稀疏化、张量分解、知识迁移和精细化结构设计
4 个方面归纳了相关研究思想和方法, 第 5 节综合卷积神经网络结构优化领域的研究现状,
对其未来研究趋势和应用方向进行了展望.
1. 网络剪枝与稀疏化
文献[13]的研究表明, 卷积神经网络从卷积层到全连接层存在大量的冗余参数, 大多数
神经元被激活后的输出值趋近于 0, 即使将这些神经元剔除也能够表达出模型特征, 这种现
象被称为过参数化.例如 ResNet-50 拥有 50 层卷积层, 整个模型需要 95 MB 存储空间, 在剔
除 75 %的参数后仍然正常工作, 而且运行时间降低多达 50 %
[14]
.因此, 在网络训练过程中可
以寻求一种评判机制, 剔除掉不重要的连接、节点甚至卷积核, 以达到精简网络结构的目
的.网络结构精简的一个具体表现是网络的稀疏化, 这给模型训练带来了三点好处:首先是由
于网络参数的减少, 有效缓解了过拟合现象的发生
[15]
; 其次, 稀疏网络在以
CSR(Compressed sparse row format, CSR)和 CSC (Compressed sparse columnformat)等稀疏矩
阵存储格式存储于计算机中可大幅降低内存开销; 最后, 训练参数的减少使得网络训练阶段
和预测阶段花费时间更少.由于网络剪枝具有易于实施且效果显著的优点, 目前已成为模型
压缩与加速领域最重要的结构优化技术.
根据卷积神经网络训练阶段的不同, 网络剪枝与稀疏化方法主要包含训练中稀疏约束
与训练后剪枝两个大类
[16]
.对于前者, 通过在优化函数添加稀疏性约束, 诱导网络结构趋于
稀疏, 这种端到端的处理方法不需要预先训练好模型, 简化了网络的优化过程.对于后者, 通
过剔除网络中相对冗余、不重要的部分, 同样可以使得网络稀疏化、精简化.事实上, 无论
是在训练中引入稀疏约束还是训练后剪枝网络, 最终目的都是使网络的权重矩阵变得稀疏,
这也是加速网络训练、防止网络过拟合的重要方式.
对于网络损失函数中的稀疏约束, 主要是通过引入 l
0
或 l
1
正则化项实现的.假设训练数
据集 D 包含 N 个数据对(x
1
, y
1
), (x
2
, y
2
), ..., (x
N
, y
N
), 训练参数为 θ, 则网络训练的目标优化函
数一般表示为:
arg minθ1N∑i=0NL(h(xi;θ),yi)+λ∥θ∥parg minθ1N∑i=0NL(h(xi;θ),yi)+λ‖θ‖p
(1)
其中, ∥θ∥p=(∑i|xi|p)1/p‖θ‖p=(∑i|xi|p)1/p, p=0, 1.优化函数的第一项是经验风险, 第二项
是正则化项, 带有正则化约束的优化函数在反向传播时驱使不重要权重的数值变为零, 使得
训练后的网络具有一定的稀疏性和较好的泛化性能.Collins 等
[17]
在参数空间中通过贪婪搜索
决定需要稀疏化的隐含层, 能够大幅减少网络中的权重连接, 使模型的存储需求降低了 3
倍, 并且克服了 OBS 与 OBD 处理大型网络面临的精度下降问题.Jin 等
[18]
提出的迭代硬阈值
(Iterative hard thresholding, IHT)方法分两步对网络进行剪枝, 在第一步中剔除隐含节点间权
值较小的连接, 然后微调(Fine-tune)其他重要的卷积核, 在第二步中激活断掉的连接, 重新
训练整个网络以获取更有用的特征.相比于传统方式训练的网络, 通过 IHT 训练的网络具有
更加优越的泛化能力和极低的内存大小.Zeiler 等
[19]
利用前向-后向切分法(Forward-backward
splitting method)处理带有稀疏约束的损失函数, 避免了在反向传播中需要求取二阶导数等
剩余19页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3907
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- git使用文档(一步一步教你使用Git仓库管理代码)
- 进制转换(通用版).cpp
- linux实践之从DistroWatch排名第三的EndeavourOS转到排名第五的Manjaro工作机迁移
- Discuz模板+资讯博客课程干货+商业版(GBK+UTF)
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本123.0.6292.0)
- RB308A-SOT23-5 单节锂电池保护IC 深圳市可芯电子有限公司.pdf
- Ubuntu下安装JDK
- 基于Selenium的Java爬虫实战(内含谷歌浏览器Chrom和Chromedriver版本123.0.6291.0)
- Android基础之用Eclipse建立工程
- WZLR(2).ipynb
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功