【卷积神经网络和二值化神经网络概述11000字】_第1页
【卷积神经网络和二值化神经网络概述11000字】_第2页
【卷积神经网络和二值化神经网络概述11000字】_第3页
【卷积神经网络和二值化神经网络概述11000字】_第4页
【卷积神经网络和二值化神经网络概述11000字】_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

卷积神经网络和二值化神经网络概述目录TOC\o"1-3"\h\u13卷积神经网络和二值化神经网络概述 ]的基本单元。深度可分离卷积的核心就是“分离”,通过对传统卷积计算的拆分使之分为深度卷积和逐点卷积两部分不同的运算,如图2-13-(1)为标准卷积,图2-13-(2)和图2-13-(3)为拆分后深度可分离卷积的深度卷积和逐点卷积部分,它们都表示为卷积层中的卷积核结构。其中,M和N分别代表输入特征图和输出特征图的层数,DK则为卷积核大小即对应的边长。对于深度卷积而言,它是一种深度级的运算,其每个不同的卷积核可以对每个不同的输入通道使用,这也是区别于标准卷积;对于逐点卷积而言,它的工作方式是使用1×1卷积核进行和普通卷积相同的计算。对于整个深度可分离卷积的运算方式则是:首先对于不同的输入通道的数据,用深度卷积部分对此进行卷积计算,然后再使用逐点卷积部分对上述的计算结果合并得到最终输出。图2-SEQ图2-\*ARABIC13深度可分离卷积图实际上深度可分离卷积和标准卷积在计算效果中并无太大差异,但是相比于标准卷积而言,深度可分离卷积在计算量上会大大减少,下面的例子说明了这一点。假设现在给定大小都为DF×DF的输入特征图和输出特征图,其中DF为它们的高度。假定在输入特征图中,其通道数为M;在输出特征图中,其通道数为N。那么我们就可以把输入特征图表示为DF×DF×M,把输出特征图表示为DF×DD(1.9)通过以上比较的计算量可知,最终深度可分离卷积计算量为标准卷积计算量的(1N+1.1.3池化层通过图像卷积得到图像特征后,需要利用这些特征进行分类。在此之前,我们通常需要通过池化层来获得所需的概要特征。池化层(PoolingLayer),也被称为下采样、降采样,其操作和卷积层的操作基本一致。池化层的主要的作用和目的有三个,其一是通过降低在卷积层中卷积计算出来的输出特征维度从而得到尺寸更小的特征映射,这样就能减少参数数目、提高计算速度;其二是在一定程度上可以减少因结果对输入的某些误差过于敏感而导致的过拟合的现象;其三是降维的同时能保持其特征不变性,比如一张猫的图片缩小后我们仍能认出来,因为图在降维时仍保留猫的最重要信息,丢失的都是不重要的,这也被称为尺度不变性的特征。池化的计算中最常用的为最大池化(MaxPooling)和平均池化(AveragePooling),其计算原理如图2-14所示。图2-SEQ图2-\*ARABIC14最大池化与平均池化图在池化操作的计算过程中,池化层在输入特征图中每隔一定数量的元素平均划分出若干的区域,然后根据最大池化或者平均池化的计算方法分别对这些区域的进行池化操作并输出最大值或者平均值,最后得到输出特征图。根据以上描述,得到平均池化和最大池化的计算公式分别如式1.10和式1.11所示。Out((1.10)Out((1.11)其中,Infi,x,y表示输入特征图,对输入特征图对应元素进行计算;Outfi,x,y表示输出特征图,对应的输出结果;且它们都为第fi张。x和1.1.4全连接层全连接层(FullyConnectedLayers,FC)对于卷积神经网络其目的就是“分类”,起到一个分类器的作用。其它如卷积层、池化层等层主要完成的工作,是将输入原始数据映射到隐藏特征空间,而全连接层是则是在此前的层完成的提取特征的基础上,将它们的映射按权重来和输出特征图相连。实际中全连接层可由卷积实现,全连接层将特征进行映射,使之扩展成一个一维向量。在卷积神经网络中,全连接层常在最后几层中出现,全连接层负责从获得的特征中做加权和并最终进行分类得识别或者分类的结果。给定输入通道为第fi的输入特征图Infi,以及输出为第fo的输出特征图Out((1.12)其中,Wfo,fi是fi的权重值,和第fi的输入特征图Infi进行乘积计算,对应着输出为第fo通道;Softmax(1.13)式中,zi二值化神经网络随着卷积神经网络的不断发展,深层的CNN为了追求精度,目前已经发展到具有数层结构和数百万个参数的阶段,虽然它们能有非常令人满意的性能,但是并不适用于边缘端的设备。因此我们还需要对网络进行压缩或者改良,使其在性能、资源消耗以及适用性上能满足边缘端的需求。对此,通过量化来进行网络压缩的技术是一种在此情况下很好的解决方案。这种方法通过以非常低的精度表示网络权重以获得高度紧凑的模型。我们把量化推向极端,就是二值化,这也是本系统研究的重点。二值化神经网络(BinaryNeuralNetworks,BNN)指的是使用一种1位的量化即仅使用+1(0)和-1这两个值来表示权重(Weights)和激活(Activations)的神经网络,与全精度神经网络相比,它可以使用XNOR+popcount的简单组合代替浮点运算来实现卷积运算,这种运算避免了浮点运算的乘法和累加,故可以节省大量的内存和计算,从而极大地方便了模型在资源受限设备上的部署。1.3.1神经网络的二值化方法在1.2节所提到的全精度的卷积神经网络中的基本运算可以由下式所表示:y=σ(w⨂a)(1.14)其中,w表示前一个网络层生成的权重,a表示前一个网络层生成激活。⨂表示卷积运算,σ(·)为非线性函数,y是输出张量。在神经网络前向推理过程中,卷积运算包含大量的浮点运算,包括浮点乘法和浮点加法,它们是神经网络推理中的最主要的运算。对神经网络进行二值化的目标是用1位表示浮点权重w及激活a。二值化函数的定义如下式所示:Q(1.15)其中bw和ba是二元权重和二元激活的张量,以及相应的标量α和β。对于Qw即量化后权重的和Qa即量化后的激活而言,其意义在于如何将其由浮点变成二值化,文献REF_Ref70065801\r\h[103]x(1.16)如式1.16所示,这种概率化的方法是通过sigmoid函数将权重或者激活的值转化成概率p,然后按照得出的概率p进行采样,最后得到+1或-1。另一种则是确定式的方法,即使用符号函数来表示和计算:x(1.17)如式1.17所示,与概率化的方法不同,确定式的方法是直接根据权重或者激活的值的正负来分别转换成+1或者-1,式1.16的方法相比于此方法,由于其在实际进行大量运算时的频繁采样非常耗时,故本文采用确定式的方法作为二值化方法。通过二值化权值和激活,前向传播中的向量乘法可以重新表示为:y=σ(1.18)其中⨀表示具有位运算XNOR-Bitcount的向量的内积。图2-15展示了二值化神经网络中的卷积过程。图2-SEQ图2-\*ARABIC15二值化神经网络中的卷积过程图1.3.2二值化神经网络的训练与全精度神经网络模型的训练类似,在训练二值神经网络时,采用基于梯度下降的强大反向传播算法,来进行参数的更新。然而,二值化函数(如符号函数)通常是不可微的,更糟糕的是,函数的偏导数消失了。因此,在普通的基于梯度下降的反向传播算法中,二值化后的权重不能直接用于梯度的计算和更新。幸运的是,Hinton等人提出了一种直接通过估计器(Straight-ThroughEstimator,STE)的方法来解决训练符号函数的二值化深度网络时的梯度问题。STE的功能定义如下:Htanh(1.19)如公式1.19所示,STE的主要思想为,我们在网络训练时依旧保留浮点数并采用梯度来更新浮点数,训练完后采用将浮点数二值化的方法得到最终结果。通过STE,二值化神经网络可以采用与一般全精度神经网络相同的梯度下降法直接训练,其让函数变成可导可用图2-16表示。但是,当clip函数用于反向传播时,如果全精度激活的绝对值大于1,则不能在反向传播中更新。因此,在实际场景中,选择相同的函数来逼近符号函数的导数。图2-SEQ图2-\*ARABIC16STE方法图在对二值化神经网络进行训练的时候,对于前向传播的执行以及不同的反向传播执行而言,它们都是有区别的。首先,对于训练过程中的权值,网络既保留了浮点的权值供使用、又保留了二值化的权值进行计算。在进行前向传播计算的过程中,需要先判断浮点型的权重值以及浮点型的激活函数值,然后根据此来对权重和激活函数值进行确定方式和方法的二值化,最后则是利用对权重值和激活函数值二值化后的值来进行运算。其完整的前向传播过程算法如算法1所示。算法1:前向传播forWisiaifaendifendfor在算法1中,Binarize∙为进行二值化的函数,特别针对于权重和激活。BatchNormq=Sign(1.20)反向传播中假设梯度∂C∂aLg(1.21)如式1.21所示,其表达的内容为当|r|满足条件|r|≤1时,就使得将q的梯度赋值给r的梯度,否则将r的梯度赋值为0。通过以上计算可以求得各层浮点权重值所对应的梯度,以及使用同样的方法就得到了浮点型的激活函数值相应的残差。最后,采用指定的梯度更新方法来对浮点型的权重值进行更新,比如使用常用的随机梯度下降(StochasticGradientDescent,SGD)方法或者其他方法,从而不断迭代直到损失loss不再继续下降。求各层梯度方式如下:算法2:计算各层梯度已知aL和a∗forifgendif(gggendfor其中,BackBatchNorm(∙)函数为通过标准化进行反向传播,符号算法3:梯度更新forθiWηendfor其中,Update(·)为当参数梯度已知时来更新参数,Clip(·)为裁剪权重函数。而算法1-算法3提到的λ为学习率衰减因子,L为层数,执行算法前要求以下的组件:对于输入和目标的小批量(minibatch)为(a0,a∗),网络先前的权重W、学习率η、BatchNorm的参数θ,权重初始化的系数γ;并确保更新了权重1.3.3基于移位的批规范化处理在二值化神经网络的批规范化(BatchNormalization,BN)中,主要作用是加速了训练并降低了权值参数的整体影响。在每次的随机梯度下降时,通过小批量应用在激活的规范化操作的作用是使得输出信号各维度的均值为0、方差为1,再将数据传递到下一层。但是在训练的时候,批规范化需要许多乘法,计算标准差并除以运行的方差(训练集激活方差的加权平均值)。在卷积神经网络中,这样的情况下,其计算量是相当大的。比如,在CIFAR-10数据集中,使用本文结构,仅由128×3×3滤波器组成的第一个卷积层将尺寸为3×32×32的图像转换为尺寸为3×128×28×28的图像,比权重的数量大两个数量级。为了得到批规范化所能得到的结果,二值化神经网络使用了一种基于移位的批规范化(Shift-basedBatchNormalization,SBN)方法。SBN近似于BN,几乎没有乘法。该方法如算法4所示。算法4:基于移位的批规范化转换yμBCxσBxixi其中,算法4应用于小批量的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论