没有合适的资源?快使用搜索试试~ 我知道了~
网络草图:深度CNN中的二元结构
5955网络草图:在深度CNN中利用二元结构郭怡文1、姚安邦1、赵昊2、1、陈玉荣11英特尔中国实验室2清华大学{yiwen.guo,anbang.yao,hao.zhao,yurong.chen}@ intel.com摘要具有深层架构的卷积神经网络(CNN)然而,深度网络通常是资源密集型的,因此难以部署在移动设备上。最近,具有二进制权重的CNN已经向社区展示了令人信服的效率,而这种模型的准确性在实践中通常不能令人满意。在本文中,我们介绍了网络草图作为一种追求二进制权重CNN的新技术,旨在为实际应用提供更忠实的推理和更好的权衡。我们的基本思想是直接在预训练的滤波器组中利用二进制结构,并通过张量扩展产生二进制权重模型整个过程可以被视为一个由粗到细的模型近似,类似于铅笔画的轮廓和阴影步骤。为了进一步加速生成的模型,即草图,我们还提出了二进制张量卷积的关联实现。实验结果表明,在ImageNet大规模分类任务中,适当的AlexNet(或ResNet)框架比现有的二进制权重模型有更大的性能提升,而网络参数的占用内存仅略高于后者.1. 介绍在过去的十年中,卷积神经网络(C-NN)已被接受为许多计算机视觉解决方案的核心。在大量数据上训练的深度模型在各种任务上提供了令人印象深刻的准确性,包括但不限于语义分割,人脸识别,对象检测和识别。尽管取得了成功,但移动设备不能充分利用这些模型,主要是由于它们的计算资源不足。众所周知,基于摄像头的游戏对于使用对象识别和检测技术进行操作是令人眼花缭乱的AlexNet[15]、 VGG-Net[25]和ResNet[10])。尽管如此,作为ILSVRC-2012 com的获奖者图1.通过利用预先训练的滤波器组中的二进制结构来绘制网络模型,之后可以将全精度模型转换为具有二进制(黑色和浅灰色)连接的有效模型。AlexNet提供了近6100万个实值参数和15亿次浮点运算(FLOPs)来对图像进行分类,使其在不同方面都是资源密集型的。为实时应用程序运行它将需要相当高的CPU/GPU工作负载和内存占用,这在典型的移动设备上是禁止的。类似的情况发生在更深的网络上,如VGG-Net和ResNet。最近,设计了具有二进制权重的CNN来解决这个问题。通过将连接权重强制为两个可能的值(通常为+1和-1),研究人员试图消除网络推理所需的浮点乘法(FMUL),因为它们被认为是最昂贵的运算。此外,由于实值权重被转换为二进制,这些网络将占用更少的空间来存储其参数,这导致了内存占用的大量节省,从而节省了能源成本[8]。已经提出了几种方法来训练这样的网络[1,2,22]。然而,所获得的模型的报告准确性在大数据集上是不令人满意的(例如,ImageNet)[22]. 更糟糕的是,由于直接扩大网络并不能保证准确性的任何提高[14],因此我们也不清楚如何在模型精度和这些方法的预期精度之间进行权衡5956在本文中,我们介绍了网络草图作为追求二进制权重CNN的一种新方法,其中二进制结构在预训练模型中被利用,而不是从头开始训练。为了寻求产生最先进模型的可能性,我们提出了两种理论基础算法,使得可以调节草图的精度以获得更准确的推理。此外,为了进一步提高生成的模型的效率(也称为,草图),我们还提出了一种算法来关联地实现二进制张量 卷 积 , 使 用 该 算 法 , 所 需 的 浮 点 加 法 和 减 法(FADD)的数量也同样减少了。实验结果表明,我们的方法在AlexNet和ResNet上都表现得非常好。也就是说,在需要更多的FLOP和更多的内存空间的情况下 , 生 成 的 草 图 比 现 有 的 二 进 制 权 重 AlexNets 和ResNets表现更好,在ImageNet数据集上产生了接近最先进的识别精度。本文其余部分的结构如下。在第2节中,我们简要介绍了CNN加速和压缩的相关工作。在第3节中,我们强调了我们的方法的动机,并为其实现提供了一些理论分析。在第4节中,我们介绍了二元张量卷积的结合实现。最后,第五节通过实验验证了该方法的有效性,第六节给出了结论。2. 相关作品深度CNN的部署问题多年来一直受到关注。有效的模型可以从头开始学习,也可以从预先训练的模型中学习。一般来说,从头开始的培训需要网络架构和培训策略的强大集成[18],这里我们主要讨论后一种策略的代表性工作。早期的作品通常是针对硬件的。不限于CNN,Vanhoucke et al.[28]利用程序优化在x86 CPU上产生3倍的加速。另一方面,Mathieu et al.[20]在GPU上执行快速傅立叶变换(FFT),并提出在频域中有效地计算卷积。此外,Vasilache et al.[29]介绍了两个新的基于FFT的实现,以获得更显著的加速。最近,基于低秩的矩阵(或张量)分解已被用作完成该任务的替代方式。主要灵感来自Denil等人的开创性作品。[4]和Rigamonti et al.[23],基于低秩的方法试图利用不同特征通道和滤波器之间的参数冗余。通过适当地分解预先训练的滤波器,这些方法[5,12,16,32,19]可以实现具有吸引人的加速比(2倍至4倍),精度下降可接受(≤1%)。2与上面提到的不同,一些研究工作将内存节省视为重中之重。 为了解决深度网络的存储问题,Gong etal.[6],Wu et al.[31] and Lin et al.[18]考虑将量化技术应用于预先训练的CNN,并尝试在推理准确性上做出微小让步的情况下进行网络压缩。在这个范围内的另一个强大的方法类别从LeCun等人[17]和Hassibi Stork [9]的早期工作开始&,修剪方法在一系列CNN上提供了令人惊讶的良好压缩,包括一些先进的CNN,如AlexNet和VGGnet [8,26,7]。此外,由于模型复杂性的降低,可以观察到公平的加速作为副产品。作为一种生成二进制权重CNN的方法,我们的网络草图与大多数现有的压缩和加速方法正交。例如,它可以与基于低秩的方法联合应用,首先将权重张量分解为低秩分量,然后绘制它们。至于与量化方法的配合,先画草图,再进行产品量化是一个不错的选择。3. 网络素描一般来说,卷积层和全连接层是深度C-NN中最需要资源的组件。幸运的是,这两种方法都被认为是过度参数化的[4,30]. 在本节中,我们将重点介绍我们方法的动机,并以卷积层为例介绍其实现细节。完全连接的层可以以类似的方式操作。假设卷积层L的可学习权重可以排列并表示为{W(i):0 ≤ i ,a<$W2≤<$W− <$B<$$>,a<$W2。To为此,我们遵循最小二乘回归方法3.2. 几何解释并获得aj=.BTBjΣ−1 BT·vec(W),(7)在扩展预训练的滤波器之后,我们可以将相同的二进制张量分组以节省更多的内存其中运算符vec(·)得到列向量,其元素取自输入张量,B j得到[vec(B0),., vec(Bj)]。上述具有比例因子细化的算法是在算法2中进行了总结。直观地说,细化操作为我们的方法提供了类似记忆的特性,并且以下定理确保它可以比算法1更快地收敛。定理2. 对于任何m≥0,算法2实现满足以下条件的重建误差e2:脚印在本文中,整个技术被称为网络草图,生成的二进制权重模型被直接称为草图。接下来,我们将从几何学的角度解释草图绘制过程。首先,我们应该知道,方程(1)本质上是寻找一个由一组t维二进制向量构成的线性子空间,以最小化它到vec(W)的欧几里得距离。从概念上讲,在这个问题中有两个变量需要确定。算法1和算法2都是以启发式的方式求解的,并且第j个二进制向量总是通过最小化其自身与e2≤W2mY−1。1−j=0Σ1t−λ(j,t)、(8)当前近似剩余它们的不同之处在于,算法2利用了之前j-1次估计的线性跨度来获得更好的近似,而算法1没有。其中λ(j,t)≥0,0≤j≤m−1。证据为了简化符号,让我们进一步表示wj:=vec(Wj)和bj+1:=vec(Bj+1),然后我们可以通过分块矩阵乘法和求逆来获得,现在让我们仔细看看定理2。与定理1中的方程(4)相比,方程(8)的区别主要在于λ(j,t)的存在性。显然,算法2将比算法1更快地收敛,只要当λ(j,t)>0时,对任意j∈[0,m−1]成立。几何T−1Φ+ΦTΦ/r−Φ/r换句话说,如果我们考虑Bj(BTBj)−1BT为基体(Bj+1Bj+1)=T, (9)j j−Φ/r1/r其中Φ=(BTBj)−1,Φ=BTbj+1,r=在S j上的正交投影的:=span(b0,...,bj),则λ(j,t)等于向量投影的平方欧几里德范数。因此,λ(j,t)=0成立,如果且(b)5960J+不j+1bj+1−TΦ。因此,我们有以下翼仅当向量bj+1与Sj正交时,或者换句话说,对于j = 0,...,m-1,.ΣΛ(bj+1bT1)w= I−w,(10)与{b0,...,bj}发生只有在t∈ {2k:k∈N}的条件下,才有极小的概率。 也就是说,算法2可能会j+1不j+1Λbj+1在实践中优于算法1BBJ59614. 加速草图模型使用算法1或2,可以容易地得到L上的mn个二进制张量的集合,这意味着可学习权重的存储需求减少了32t/(32m+tm)×。当应用该模型时,所需的FMUL数量也显著减少,减少了(t/m)×。可能,草图的唯一副作用是FADD的数量增加,因为它给计算单元带来了额外的负担在本节中,我们尝试改进这一缺陷,并引入一种算法来进一步加速二进制权重网络。我们从观察开始,然而所需的FADD的数量随着m单调增长,附加和被加数的固有数量总是固定的,输入为L。也就是说,在二进制张量卷积的直接实现让我们将X∈Rc×w×h表示为输入子特征映射,示意图见图3图3. 如圆角矩形中突出显示的,在二进制张量卷积的直接实现中存在重复FADD的概率很高。4.1. 关联实现为了适当地避免冗余操作,我们首先提出了多个卷积XB0,.,X∈Bmn−1在L上,其中充分利用了不同卷积之间更具体地说,我们的策略是以分层和渐进的方式执行卷积。也就是说,每个卷积结果被用作以下计算的基线假设第j个卷积是预先计算的,它产生X<$Bj0= s,那么X和Bj1的卷积可以通过使用X<$Bj1=s+(X<$(Bj0<$Bj1))×2,(12)或者可替换地,X<$Bj1=s−(X<$(<$Bj0<$Bj1))×2,(13)其中,表示逐元素的非运算符,并且表示其行为与表1一致的逐元素的运算符。BJ1BJ2Bj1Bj 2+1个−1−1+1个+1个0−1−10−1+1个+1个表1.元素运算符的真值表。由于Bj0<$Bj1在每个索引位置上产生三进制输出,我们可以自然地将X<$(Bj0<$Bj1)视为开关的迭代。案子... 报表以这种方式,仅需要在X中操作对应于Bj0<$Bj1中的±1的条目,从而获得加速度假设如果Bj0和Bj1的内积等于r,则仍然需要(t-r)/2+1和 ( t+r ) /2+1FADD 来 分 别 计 算 等 式 ( 12 ) 和(13)显然,我们期望实数r ∈ [−t,+t]接近于t或−t,以减少FADD的可能性,从而在我们的实现中实现更快的卷积。特别地,如果r ≥0,则选择等式( 12 ) 以 获 得 更 好 的效 率 ; 否 则 , 应 选 择 等 式(13)。4.2. 构建依赖树我们的实现通过适当地重新排列二进制张量并以间接的方式实现二进制张量出于这个原因,连同等式(12)和(13),还需要依赖关系树来驱动它。具体来说,依赖性是这样一种概念,即某些二进制张量被链接以指定首先执行哪个卷积,然后执行哪个卷积。例如,对于深度优先搜索策略,图4中的T示出了依赖关系树,其指示首先计算XB1,然后从先前的结果导出XB0,然后基于XB0计算XB3,等等。通过遍历整个树,所有mn个卷积将被逐步有效地计算。图4.我们算法的依赖树它提出了一个顺序,在此顺序下进行关联卷积。事实上,我们的算法与一个随机树,但一个专用的T仍然是在其最佳性能的需求。设G={V,E}是一个无向赋权图,其顶点集为V,权矩阵E∈Rmn×mn.V的每个元素表示单个二元张量,E的每个元素测量距离5962算法3关联实现:输入:{Bj:0≤j< mn}:二进制张量的集合,X:输入子特征映射,T:依赖树。输出:{yj:0≤j
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功