没有合适的资源?快使用搜索试试~ 我知道了~
双真实网络:通过改进的表示能力和高级训练算法增强1位CNN的性能Zechun Liu1,Baoyuan Wu2,Wenhan Luo2,Xin Yang3,Wei Liu2,and Kwang-Ting Cheng11香港科技大学2腾讯AI实验室3华中科技大学zliubq@connect.ust.hk,{wubaoyuan 1987,whluo.china}@ gmail.com,xinyang2014@hust.edu.cn,wliu@ee.columbia.edu,timcheng@ust.hk抽 象 。 在 这 项 工 作 中 , 我 们 研 究 了 1 位 卷 积 神 经 网 络(CNN),其中的权重和激活都是二进制的。虽然有效,但与大规模数据集上的对应实值CNN模型(如ImageNet)相比,当前1位CNN的分类准确性要差得多为了最小化1位和实值CNN模型之间的性能差距,我们提出了一种新的模型,称为Bi-Real net,它通过身份快捷方式将真实激活(在1位卷积和/或BatchNorm层之后,在符号函数之前)连接到连续块的激活因此,与标准的1位CNN相比,双实数网络的表示能力显著增强,并且计算上的额外成本可以忽略不计。此外,我们开发了一个特定的训练算法,包括三个技术新颖的1位CNN。首先,我们推导出一个紧密的近似的不可微的符号函数的衍生物关于激活。其次,我们提出了一个幅度感知梯度的权重更新的权重参数。第三,我们使用裁剪函数而不是ReLU函数来预训练实值CNN模型,以更好地初始化双实数网络。在ImageNet上的实验表明,采用该训练算法的双真实网络在18层和34层的情况下分别达到了56.4%和62.2%的top-1准确率 与最新技术水平(例如:,XNOR网),双实数网实现了高达10%的高前1精度,更多的内存节省和更低的计算成本。1介绍深度卷积神经网络(CNN)已经在广泛的视觉任务中取得了实质性的进步,例如对象检测和识别[12,23,25,5,3,20]、深度感知[2,16]、视觉关系检测[29,30]、人脸识别[20,31]、视觉感知[20,32]、视觉感知[20,33]、视觉感知[20,34]、视觉感知[20,35]、视觉感知[20,36]、视觉感知[20,37]、视觉感知[20,38]、视觉感知[20,39]、视觉感知[20,通讯作者。2刘泽春等跟踪和对准[24,32,34,28,27]、对象跟踪[17]等。然而,CNN的优越性能通常需要具有丰富的计算和存储器资源的强大硬件。例如,高端图形处理单元(GPU)。同时,在移动手持设备和小型无人机上运行视觉任务(诸如增强现实和智能导航)的需求日益增长。大多数移动设备都没有配备强大的GPU,也没有足够的内存来运行和存储昂贵的CNN模型。因此,对计算和存储器的高需求成为在大多数移动设备上部署强大CNN的瓶颈。一般来说,有三种主要的方法来缓解这种限制。首先是减少权重的数量,例如稀疏CNN [15]。第二个是量化权重(例如,,QNN [8]和DoReFa Net [33])。第三是量化权重和激活两者,其中权重和激活两者都是二进制的极端情况。在这项工作中,我们研究的极端情况下的第三种方法,即。二进制CNN。它也被称为1位CNN,因为每个权重参数和激活都可以用1位表示。如[19]中所示,对于1位卷积层,CPU上的内存节省高达32倍,加速高达58倍,其中计算量大的矩阵乘法运算变成了轻量级的逐位XNOR运算和位计数运算。目前的二值化方法在小数据集上实现了与实值网络相当的精度(例如,、CIFAR-10和MNIST)。 然而,在大规模数据集上(例如,ImageNet),[7]中基于AlexNet的二值化方法遇到了严重的准确性下降,即。从56。6%至27。9% [19]。它揭示了传统的1位CNN的能力不足以覆盖像ImageNet这样的大规模数据集中的巨大多样性另一个二进制网络称为XNOR-Net[19]提出了通过利用权重和激活的绝对平均值来增强1位CNN的性能。这项研究的目的是进一步改进1位CNN,因为我们认为它的潜力还没有得到充分的开发。一个重要的观察结果是,在推理过程中,由于位计数操作,1位卷积层生成整数输出。如果存在BatchNorm [10]层,则整数输出将变为实值。但是这些实值激活然后被二进制化为-1或+1通过连续的符号函数,如图所示。第1(a)段。显然,与二进制激活相比,这些整数或实数激活包含更多的信息,这些信息在传统的1位CNN中丢失[7]。受此观察的启发,我们建议通过添加一个简单而有效的快捷方式来保持这些真实的激活,称为Bi-Real net。如图在图1(b)中,快捷方式将实激活连接到具有下一个块的实值激活的加法运算符。通过这样做,所提出的模型的表示能力比原始的1位CNN的表示能力高得多,仅具有由额外的逐元素加法引起的可忽略不计的计算成本,并且没有任何额外的存储器成本。此外,我们还提出了一种用于1位CNN的新型训练算法,包括三个技术创新:双实网络:增强1位CNN的性能3图1.一、在具有中间特征可视化的网络中,黄线表示真实路径内传播的值,而蓝线表示二进制值。(a)没有捷径的1位– 符号函数导数的逼近与关于激活。由于二值化激活的符号函数是不可微的,我们建议在向后传递中通过分段线性函数来近似其导数,该分段线性函数是从符号函数的二阶近似的分段多项式函数导出的。相比之下,使用阶跃函数的近似导数(即、1 |X|<[7]中提出的一个新的函数(1)是从削波函数(即,,clip(-1,x,1)),其也是我们表明,分段多项式函数是一个更接近的符号函数比剪辑功能。因此,它的导数比削波函数的导数更有效。– 相对于权重的幅度感知梯度。 由于相对于二进制权重的损失梯度不足以改变二进制权重的符号,所以不能使用标准梯度下降算法直接更新二进制权重在BinaryNet [7]中,首先使用梯度下降更新实值权重,然后通过取更新后的实值权重的符号来获得新的二进制权重然而,我们发现相对于实权重的梯度仅与当前实权重的符号相关,而与其大小无关为了获得更有效的梯度,我们建议在训练过程中使用一个幅度感知的符号函数,那么相对于真实权重的梯度取决于当前真实权重的符号和幅度在收敛之后,二进制权重(即,、-1或+1),通过最终实权重的符号函数进行推理。– 初始化。作为一个高度非凸优化问题,1位CNN的训练可能对初始化敏感。在[17]中,使用实值CNN模型初始化1位CNN模型,其中ReLU函数在ImageNet上预先训练。我们建议在预训练中用clip函数代替ReLU,因为clip函数的激活比ReLU更接近4刘泽春等在ImageNet上的实验表明,上述三个想法对于训练1位CNN是有用的,包括双真实网络和其他网络结构。具体而言,他们各自的贡献,以提高top-1的准确性分别为12%,23%和13%的18层的双实网。通过专门设计的快捷方式和提出的优化技术,我们的Bi-Real网络在每个1位卷积层内仅具有二进制权重和激活,在18层和34层结构中分别实现了56.4%和62.2%的top-1准确度,与全精度CNN相比,节省了高达16.0倍的内存和19.0倍的与现有技术的模型(例如,,XNOR-Net),Bi-Real网络在18层网络上实现了10%的top-1准确度2相关工作减少参数的数量。已经提出了几种通过减少参数和神经连接的数量来压缩神经网络例如,He et al.[5]提出了一种瓶颈结构,该结构由滤波器大小为1×1,3 ×3和1×1的三个卷积层组成,并以捷径连接作 为 初 步 构 建 块 , 以 减 少 参 数 的 数 量 并 加 快 训 练 速 度 。 在SqueezeNet [9]中,一些3×3卷积被替换为1×1卷积,导致参数数量减少了50倍FitNets [21]使用瘦而深的学生网络模仿大型教师网络的软输出,从而在CIFAR-10数据集上产生10.4倍的参数和类似的精度在Sparse CNN[15]中,采用稀疏矩阵乘法运算来将超过90%的参数归零,以加速学习过程。受稀疏CNN的启发,Han et al.提出了深度压缩[4],其采用连接修剪、具有再训练的量化和霍夫曼编码来减少神经连接的数量,从而反过来减少存储器使用。参数量化之前的研究[13]表明,实值深度神经网络,如 AlexNet[12],GoogLeNet [25]和VGG-16[23]当将32位参数量化为8位时,仅遇到边际精度降低。在IncrementalNetwork Quantization中,Zhou et al.[31]递增量化参数,并表明甚至可以进一步将权重精度降低到2-5位,其精度略高于ImageNet数据集上的全精度网络。在BinaryConnect [1]中,Courbariaux et al.采用1位精度权重(1和-1),同时在MNIST、CIFAR 10和SVHN数据集上保持足够高的精度。适当地量化权重可以实现相当大的存储器节省,而精度降低很少。然而,经由权重量化的加速由于实值激活(即,权重量化)而受到限制。卷积层的输入)。已经进行了几项最近的研究以探索新的网络结构和/或训练技术,用于量化权重和激活两者,同时最小化准确度降级。成功的尝试包括DoReFa-Net [33]和QNN [8],它们探索了用1位权重训练的神经网络双实网络:增强1位CNN的性能5图二、1位CNN内部的xnor操作和位计数机制在[19]中给出。和2位激活,与实值AlexNet相比,ImageNet数据集的准确率分别下降了6.1%和4.9%。此外,BinaryNet [7]在神经网络中仅使用1位权重和1位激活,并在MNIST和CIFAR-10数据集上实现了与全精度神经网络相当的准确性。在XNOR-Net [19]中,Rastegari et al.通过将权重滤波器和激活的绝对均值乘以1位权重和激活来进一步改进BinaryNet,以提高准确性。ABC-Net [14]建议通过使用更多的权重基和激活基来提高准确性。这些研究的结果是令人鼓舞的,但不可否认的是,由于权重和激活精度的损失,网络中的滤波器数量(因此算法复杂度)增加,以保持高精度,这抵消了内存节省和二值化网络的加速。在这项研究中,我们的目标是设计1位CNN,辅以实值捷径来补偿二值化的准确性损失。提出了克服1位CNN中的梯度不匹配问题和离散优化困难的优化策略,以及自定义的初始化方法,以充分探索1位CNN的潜力及其有限的分辨率。3方法3.1标准1位CNN及其表示能力1-比特卷积神经网络(CNN)是指在中间卷积层中具有二元权重参数和二元激活的CNN模型。具体地,通过符号函数获得二进制激活和权重,ab=符号(ar)=.−1 ifar0,wb=Sign(wr)=<+1否则.−1 ifwr0,(1)<+1否则其中R和Wr分别指示实际激活和实际权重。由于卷积和批量归一化(如果使用的话),r如图2,给定二进制激活映射和二进制3 ×3权重核,输出激活可以是6刘泽春等BRM图三.(a)没有快捷方式的1位CNN(b)具有快捷方式的1位CNN中的每一层的表示能力(RA1表示Sign函数的输出表示1比特卷积层的输出;BatchNorm层;上标l指示块索引。从-9到9的任何奇数如果遵循批量归一化,如图3所示真实权重将用于在训练过程中更新二进制权重,这将在稍后介绍。与具有32位权重参数的实值CNN模型相比,1位CNN节省了高达32倍的内存。此外,由于激活也是二进制的,因此可以通过逐位XNOR操作和位计数操作来实现卷积操作[19]。一个简单的按位操作的例子如图所示。2.相比之下,实值CNN中的卷积运算是通过昂贵的实值乘法来实现的。因此,1位CNN可以获得高达64倍的计算节省。然而,在[7]中已经证明,1位CNN的分类我们认为,1位CNN的性能不佳是由其低代表性能力造成的。我们将R(x)表示为x的表示能力,即,x的所有可能配置的数量,其中x可以是标量、向量、矩阵或张量。例如,二进制14 × 14特征图A的32个通道的表示能力为R(A)= 214×14×32 = 26272。给定一个3 × 3 × 32的二进制权重核W,A W的每一项(即按位卷积输出)可以从(-288到288)中选择偶数因此,R(A W)= 2896272。请注意,由于BatchNorm层是唯一映射,因此它不会增加不同选择的数量,而是将(-288,288)缩放为特定值。如果在输出之后添加1位卷积层,则特征图中的每个条目被二值化,并且表示能力再次缩小到262723.2双实网模型及其表示能力我们建议通过一个简单的快捷方式保留符号函数之前的真实激活,以增加1位CNN的表示能力。具体地说,如图3(b),一个方框表示“签名”结构,-1-比特编码-比特正态分布-附加操作。这是一个很好的例子一双实网络:增强1位CNN的性能7图4.第一章1位CNN的训练过程的图形说明,其中A是激活,W是权重,上标l表示第l个块,由Sign、1位卷积和BatchNorm组成。下标r表示实数值,b表示二进制值,m表示BatchNorm层之前的中间输出将当前块中符号函数的输入激活与同一块中批量归一化后的输出激活连接起来,并通过加法运算将这两个激活相加,然后将组合后的激活输入到下一个块中的符号函数添加的激活中的每个条目的表示能力为2892。因此,具有上述快捷方式的1比特CNN中的每个块的表示能力变为(2892)6272。由于保留了实数和二进制激活,我们将所提出的模型称为双实数网。由于简单的身份快捷方式,1位CNN中每个块的表示能力显著增强计算的唯一额外成本是两个实激活的加法运算,因为这些实激活已经存在于标准1位CNN中(即,没有快捷键)。此外,由于在运行中计算激活,因此不需要额外的存储器。3.3训练双实网络由于激活和权重参数都是二元的,因此连续优化方法,即随机梯度下降(SGD)不能直接用于训练1位CNN。有两大挑战。一个是如何计算激活的符号函数的梯度,这是不可微的。另一种是损耗相对于双波形的梯度对波形的大小变化不大。[7]的全部内容用于调整标准SGD算法以近似训练1位CNN。具体而言,激活的符号函数的梯度由分段线性函数的梯度近似,如图所示5(b)。为了解决第二个挑战,[7]中提出的方法通过关于二进制权重计算的梯度来更新实值权重,并通过取实权重的符号来获得二进制权重由于恒等式捷径不会增加训练难度,因此也可以采用[7]中提出的训练算法来训练双实数网模型。然而,我们提出了一种新的训练算法来解决上述两个主要挑战,它更适合于8刘泽春等RR3BB图五. (a)符号函数及其导数,(b)文献[7]中提出的用于逼近符号函数导数的裁剪函数及其导数,(c)在梯度计算中提出的用于逼近符号函数导数的可微分分段多项式函数及其三角形导数双实数网络模型以及其他1位CNN。此外,我们还提出了一种新的初始化方法。我们在图中展示了双实网训练的图形说明。4.为了清楚起见,在图中省略了恒等式快捷方式,因为它不会改变训练算法的主要部分。符号函数关于激活的导数的近似。如图在图5(a)中,符号函数的导数是脉冲函数,其不能在训练中使用。联系我们Al,tLL=b=rr,(2)Al,tAl,tAl,tAl,tAl,tAl,tRBRRR R R其中F(Al,t)是不可区分的Sign(Al,t)的不可区分的应用。R r在[7]中,F(Al,t)被设置为削波函数,导致导数作为阶跃函数(参见5(b))。在这项工作中,我们利用分段多项式函数(见5(c))作为近似函数,如方程。(3)走了−1 ifar<−12+ 2ar if− 1≤ar 0
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功