CN107516129A - 基于维度自适应的Tucker分解的深度网络压缩方法 - Google Patents

基于维度自适应的Tucker分解的深度网络压缩方法 Download PDF

Info

Publication number
CN107516129A
CN107516129A CN201710645965.XA CN201710645965A CN107516129A CN 107516129 A CN107516129 A CN 107516129A CN 201710645965 A CN201710645965 A CN 201710645965A CN 107516129 A CN107516129 A CN 107516129A
Authority
CN
China
Prior art keywords
tensor
dimension
network
weight
tucker
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710645965.XA
Other languages
English (en)
Other versions
CN107516129B (zh
Inventor
林宙辰
钟之声
尉方音
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN201710645965.XA priority Critical patent/CN107516129B/zh
Publication of CN107516129A publication Critical patent/CN107516129A/zh
Application granted granted Critical
Publication of CN107516129B publication Critical patent/CN107516129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公布了一种基于维度自适应调整的Tucker分解的深度网络压缩方法,包括维度自适应调整过程和维度适应的权重张量分解过程,通过适应调整张量各维度的大小,生成一个新的任意阶张量,再通过可学习的核张量和转移矩阵去实现张量分解,由此达到网络优化压缩的目的。相比于现有的低秩压缩方法,本发明在保持网络性能的情况下,网络参数量有更大的压缩倍数,能获得更高的压缩倍数;同时,不需要存储非零元素的指引位置,不需要记录索引,可以更有效的利用存储空间。

Description

基于维度自适应的Tucker分解的深度网络压缩方法
技术领域
本发明涉及深度学习网络优化压缩技术领域,尤其涉及一种基于维度自适应的Tucker分解的深度网络压缩方法。
背景技术
由于近年来图像处理器(GPU)计算能力的飞速发展,同时人们能获得的数据量越来越大,深度卷积网络在计算机视觉和自然语言处理等领域取得了重大的成果。根据神经网络结构的发展历史(文献[1]~[5]),现在的网络结构有两个重大趋势:网络的层数越来越深,同时卷积层也越来越重要。虽然这些更深的网络能在某些问题上取得好的结果,但是它们的计算成本和存储成本都是一个不小的问题。
由于硬件设备的某些条件的限制,同时各个应用对这些深度网络的需求越来越大,目前深度学习领域,寻求一种针对全连接层和卷积层的高效的压缩方法是当前一个火热的研究课题。现有主流的压缩方法主要有四种(见图1),包括减少参数表示位数的表示法、采用高效编码的编码法、参数稀疏化方法、网络结构简化法。在可容忍的网络性能损失下,这四种方法可以结合到一起,以得到更高的压缩倍数。文献[6]记载了将前三种方法结合到一起的网络压缩方法实现了更好的压缩结果。
其中,表示法主要采用两种思路:聚类和量化,文献[7]采用了二值连接,使得网络只取两值。文献[8]采用了一种逐步量化法,最终用5比特表示整个网络取值。文献[9]采用k-
means聚类算法去量化网络。文献[10]采用高斯混合模型去学习聚类分布,最终只用6个类中心去表示全部的参数。编码法一般和第一种方法结合使用,而且编码的模式一般采用哈夫曼编码。
参数稀疏化方法包括两个分支:在时域稀疏和在频域稀疏。目前,时域稀疏最常用的算法是网络剪枝方法。文献[11]发明了剪枝算法,通过忽略和删除掉网络参数值量级比较小的权重连接,从而达到让网络结构达到稀疏的效果。文献[12]提出了一种新型的动态剪枝和重新连接的方法。频域稀疏法主要是利用DCT变换,例如,文献[13]利用DCT实现了频域的参数稀疏以达到压缩的目的,文献[14]结合DCT、聚类和哈夫曼编码达到了更好的压缩结果。由于参数是稀疏的,这种方法存在的问题是需要记录非零元素的坐标指引,会浪费很大一部分存储空间。
网络结构简化法现有普适的做法是利用矩阵张量分解。还有一种很不常用的方法是老师学生模型,这种模型尝试减少网络的深度。针对低秩模型,文献[13]利用矩阵的奇异值分解去压缩全连接层;文献[15]、[16]利用CP、Tucker的张量分解去压缩、加速卷积层。这种方法存在的问题是:张量分解只能解决固定阶数张量,同时分解的形式是固定的,主要通过增加更多的层实现张量分解;虽然该方法在网络加速上取得了不错的效果,但是由于分解的局限性,原来的张量分解方法并不能很好的解决网络压缩的问题。
引用文献:
[1]Yann LeCun,Léon Bottou,Yoshua Bengio,and Patrick Haffner.Gradient-based learning applied to document recognition.Proceedings of the IEEE,86(11):2278–2324,1998.
[2]Alex Krizhevsky,Ilya Sutskever,and Geoffrey E Hinton.Imagenetclassification with deep convolutional neural networks.In NIPS,2012.
[3]Karen Simonyan and Andrew Zisserman.Very deep convolutionalnetworks for large-scale image recognition.In ICLR,2014.
[4]Christian Szegedy,Wei Liu,Yangqing Jia,Pierre Sermanet,Scott Reed,Dragomir Anguelov,Dumitru Erhan,Vincent Vanhoucke,and Andrew Rabinovich.Goingdeeper with convolutions.In CVPR,2015.
[5]Kaiming He,Xiangyu Zhang,Shaoqing Ren,and Jian Sun.Deep residuallearning for image recognition.In CVPR,2016.
[6]Song Han,Huizi Mao,and William J Dally.Deep compression:Compressing deep neural networks with pruning,trained quantization andhuffman coding.In ICLR,2016.
[7]Matthieu Courbariaux,Yoshua Bengio,and Jean-PierreDavid.Binaryconnect:Training deep neural networks with binary weights duringpropagations.In NIPS,2015.
[8]Aojun Zhou,Anbang Yao,Yiwen Guo,Lin Xu,and Yurong Chen.Incrementalnetwork quantization:Towards lossless cnns with low-precision weights.InICLR,2017.
[9]Karen Ullrich,Edward Meeds,and Max Welling.Soft weight-sharing forneural network compression.In ICLR,2017.
[10]Song Han,Jeff Pool,John Tran,and William Dally.Learning bothweights and connections for efficient neural network.In NIPS,2015.
[11]Yiwen Guo,Anbang Yao,and Yurong Chen.Dynamic network surgery forefficient dnns.In NIPS,2016.
[12]Wenlin Chen,James Wilson,Stephen Tyree,Kilian Q Weinberger,andYixin Chen.Compressing convolutional neural networks in the frequencydomain.In SIGKDD,2016.
[13]Yunhe Wang,Chang Xu,Shan You,Dacheng Tao,and Chao Xu.Cnnpack:Packing convolutional neural networks in the frequency domain.In NIPS.2016.
[14]Misha Denil,Babak Shakibi,Laurent Dinh,Nando de Freitas,etal.Predicting parameters in deep learning.In NIPS,2013.
[15]Vadim Lebedev,Yaroslav Ganin,Maksim Rakhuba,Ivan Oseledets,andVictor Lempitsky.Speeding-up convolutional neural networks using fine-tunedcp-decomposition.In ICLR,2015.
[16]Yong-Deok Kim,Eunhyeok Park,Sungjoo Yoo,Taelim Choi,Lu Yang,andDongjun Shin.Compression of deep convolutional neural networks for fast andlow power mobile applications.In ICLR,2016.
[17]Xavier Glorot and Yoshua Bengio.Understanding the difficulty oftraining deep feed forward neural networks.In Aistats,2010.
[18]Kaiming He,Xiangyu Zhang,Shaoqing Ren,and Jian Sun.Delving deepinto rectifiers:Surpassing human-level performance on imagenetclassification.In ICCV,2015.
[19]Lieven De Lathauwer,Bart De Moor,and Joos Vandewalle.On the bestrank-1and rank-(r1,r 2,...,rn)approximation of higher-order tensors.In SIAM,2000.
[20]Misha Denil,Babak Shakibi,Laurent Dinh,Nando de Freitas,etal.Predicting parameters in deep learning.In NIPS,2013.
[21]Wenlin Chen,James Wilson,Stephen Tyree,Kilian Weinberger,andYixin Chen.Compressing neural networks with the hashing trick.In ICML,2015.
发明内容
为了克服上述现有技术的不足,本发明提供一种基于维度自适应调整的Tucker分解的深度网络压缩方法,与现有的张量分解方法不同,本发明通过适应调整张量各维度的大小,生成一个新的任意阶张量,再通过可学习的核张量和转移矩阵去实现张量分解,由此达到网络优化压缩的目的。
为方便起见,本发明约定以下术语及记号表示:
张量用表示;矩阵用表示;标量用a表示;表示第i层的权重;表示张量按第i个mode展开。
本发明提供的技术方案是:
一种基于维度自适应调整的Tucker分解的深度网络压缩方法,针对深度网络的权重,通过适应调整张量各维度的大小,生成一个新的任意阶张量,再通过核张量和变换矩阵去实现张量分解,由于核张量和变换矩阵是可学习的,通过训练过程可以在网络性能损失很小的前提下实现深度网络的高倍数压缩。
在上述基于维度自适应调整的Tucker分解的深度网络压缩方法基础上,本发明还提供一种共享核的维度自适应调整的Tucker分解的深度网络压缩方法,该方法与上述方法的主要区别为:维度自适应调整的Tucker分解的深度网络压缩方法(也称为适应性Tucker分解压缩方法)中的每一层网络都有一个单独的核张量,核张量占了大部分存储空间;而共享核的维度自适应调整的Tucker分解的深度网络压缩方法对所有层只用一个核张量,从而进一步提高压缩倍数,两个方法总的流程相似,包括维度自适应调整过程和维度适应的权重张量分解过程;仅在前向传播算法和反向传播算法中有些区别,具体区别在步骤中叙述。以下为方法具体步骤:
1)维度自适应调整过程,得到深度神经网络维度适应的权重张量
对于深度神经网络的每一层权重张量进行维度变换(reshape操作),reshape操作的原则是保证张量的每个维度大小分布较为平衡,从而得到维度适应的权重张量
本发明中,reshape操作不仅仅限于阶数相同的形式,对于n阶权重张量为了得到更高的压缩量和平衡的维度大小分布,reshape操作可以将设定成m阶。
2)维度适应的权重张量分解过程,即对神经网络利用本发明新的前向传播和反向传播过程进行张量分解和张量融合,具体执行如下操作:
21)由每层的核张量和对应的变换矩阵M通过Tucker分解的逆运算,得到维度适应的权重张量根据之前对应的维度变换reshape操作,对维度适应的权重张量做reshape的逆变换,得到原始网络的权重张量
对于共享的维度适应性调整Tucker分解压缩方法,由于由每层的核张量是共享同一个核张量,我们统一表示为
22)利用Tucker分解逆过程得到的进行前向传播;
对于适应性维度调整Tucker分解压缩方法,我们利用(式1)去重构每层的乘法个数是随着层的核张量而改变,而对于共享的维度适应性调整Tucker分解压缩方法,我们同样利用式1去重构由于每层的核张量是同一个张量,所以乘法的形式对每层来说是一样的,最终逐层计算直到最后一层得到损失函数值L;
其中,其中c表示核张量,k表示核张量的各维度大小,这两组参数都是可学习的,这些变量都需要存储,在训练过程中需要重构首先经过对的mode乘法,我们可以得到在通过调整维度大小可以得到接下来我们推导这两组参数的梯度运算公式。
23)由损失函数值L,采用反向传播算法求得核张量和变换矩阵对应的梯度,再利用现有的优化算法更新核张量和变换矩阵;
包括如下操作:
231)利用本发明后文推导得到的反向传播算法得到各个可学习变量的梯度,变量包括每层的核张量和变换矩阵M。对于维度适应性调整Tucker分解压缩方法,我们利用(式3)和(式4)去得到变换矩阵和核张量的梯度,对于共享的维度适应性调整Tucker分解压缩方法,我们利用(式3)、(式4)和(式6)去得到变换矩阵和核张量的梯度;
其中,为损失函数对第i个变换矩阵的Mi梯度,为损失函数对共享的核张量的梯度;表示为损失函数对某一层的核张量第i个mode展开得到的矩阵的梯度;
232)再利用现有的优化算法(例如随机梯度下降算法(SGD)、文献[17]记载的ADAM优化算法等)去更新每层的核张量和变换矩阵M;
3)重复步骤2),直到网络收敛到一个较小的损失函数值。
针对不同的训练数据集,损失函数值不一样,损失函数值越小,网络性能越好,网络的可压缩空间越大,可权衡网络性能和压缩倍数,选择一个合适的损失函数值终止条件。
与现有技术相比,本发明的有益效果是:
本发明提供一种基于维度自适应的Tucker分解的深度网络压缩方法,基于张量的Tucker分解,针对深度网络,通过适应调整张量各维度的大小,生成一个新的任意阶张量,再通过可学习的核张量和转移矩阵去实现张量分解,从而实现深度网络压缩;本发明相比于现有的低秩压缩方法,在保持网络性能的情况下,网络的参数量有更大的压缩倍数,能获得更高的压缩倍数;同时,由于本发明是结构化的设计,不需要存储非零元素的指引位置,不需要记录索引,可以更有效的利用存储空间。
附图说明
图1是现有主流网络压缩方法分类;
其中,a×、b×、c×、d×表示网络可以被压缩的倍数。
图2是本发明实施例中权重张量的阶数对网络性能的影响对比;
其中,(a)为卷积层实验,针对卷积层在保证参数量差异不大的条件下,对比将权重张量分解成各个阶数,网络的准确率性能变化;(b)为全连接层实验,针对全连接层在保证参数量差异不大的条件下,对比将权重张量分解成各个阶数,网络的准确率性能变化。
图3是本发明实施例中核张量的形状对网络性能的影响对比。
图4是适应性Tucker分解压缩方法示意图;
其中,网络共有l层,本发明方法将原始权重张量分解成一个核张量和多个变换矩阵;(a)为第1层张量分解示意图;(b)为第2层张量分解示意图;(c)为第l层张量分解示意图。
图5是共享适应性Tucker分解压缩方法和适应性Tucker分解压缩方法的对比。
图6是采用不同方法之后的权重取值分布统计直方图;
其中,(a)为适应性调整Tucker模型在LeNet-300网络结构下的权重分布统计直方图;(b)为共享型适应性调整Tucker模型在LeNet-300网络结构下的权重分布统计直方图;(c)为适应性调整Tucker模型在LeNet-5网络结构下的权重分布统计直方图;(d)为共享型适应性调整Tucker模型在LeNet-5网络结构下的权重分布统计直方图。
图7是维度自适应调整的Tucker分解的深度网络压缩方法的流程框图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种基于维度自适应的Tucker分解的深度网络压缩方法,图7是维度自适应调整的Tucker分解的深度网络压缩方法的流程框图;共享的维度自适应调整的Tucker分解的深度网络压缩方法流程图与之类似;本发明方法基于张量的Tucker分解,针对深度网络,通过适应调整张量各维度的大小,生成一个新的任意阶张量,再通过可学习的核张量和转移矩阵去实现张量分解,包括维度自适应调整过程和维度适应的权重张量分解过程,实现深度网络压缩。我们提出的基于维度自适应的Tucker分解的深度网络压缩方法包括适应性Tucker分解压缩方法和共享适应性Tucker分解压缩方法。
(一)权重张量分解
深度网络中,最常用的组成结构是全连接层和卷积层。由于这两种结构可以用张量或者矩阵表示,我们可以用张量或者矩阵分解去表示压缩网络。
对于一个卷积层而言,权重是由一个四维张量,记为其中h表示卷积核的高度,w表示卷积核的宽度,s和t表示输入的通道和输出的通道数。对于全连接层来说,权重是一个二维的张量其中s和t分别表示输入单元个数和输出单元个数。总得来说,对于神经网络里面的每一层,我们可以将权重看成一个dw维的张量,每个维度的大小分别是
如果原始的权重张量各个维度的大小分布比较均匀,我们就保持原张量的尺度,否则我们会调整权重张量的维度大小分布,通过本发明的适应性维度调整方法,即通过合并或分解一些维度,使得各个维度的大小分布比较均匀,最终权重矩阵会变成 然后我们再利用式1的Tucker分解实现压缩过程:
其中,其中表示核张量,k表示核张量的各维度大小,核张量和变换矩阵这两组参数都是可学习的,这些变量都需要存储,在训练过程中需要重构首先经过对的mode乘法,我们可以得到在通过调整维度大小可以得到接下来我们推导这两组参数的梯度运算公式。
首先为了方便推导,我们先扩展Tucker分解的形式。根据前文的定义, 分别表示原始张量按照第i个mode展开,我们可以将式1改写成为式2:
其中表示Kronecker积,利用式2作为推导,我们可以求得两组可学习参数的梯度,计算公式为式3-式4:
其中,为损失函数对第i个变换矩阵的Mi梯度,为损失函数对共享的核张量的梯度;表示为损失函数对某一层的核张量第i个mode展开得到的矩阵的梯度。
(二)维度适应性调整
我们发现如果权重张量的各个维度分布比较平衡,神经网络能够更好的压缩且不会损失性能。在这部分我们将介绍我们的维度适应性调整。
对于卷积层来说,我们以卷积神经网络LeNet-5作为例子来说明。对于其第一层卷积层,权重张量是一个5×5×1×20的大小,显然这个张量的分布不太均匀,不能更好的压缩。我们首先将该权重变成25×20,然后再利用2维的Tucker分解方法对网络结构进行压缩。
总的来说,输入通道比较小的卷积层经常在网络的第一层出现,因为输入的图片一般是单通道或者三通道的。我们会合并一些维度,以至于使核张量的各个维度的大小分布比较均匀,此时同样地,对于卷积核很小的卷积层,我们也会将h和w这两个维度融合,以使得维度分布更平衡,即如果这两种情况同时发生,此时权重张量便退化成为矩阵,此时值得说明的是,上述维度适应性调整方法不仅仅只局限于维度的融合和分解,而只要满足维度的大小乘积不变,即可以将权重张量变化到更高更平衡的维度,这是之前的低秩模型没法实现的。
上述维度适应性调整方法同样应用到全连接层。我们以LeNet-5的第二个全连接层为例,其大小是一个500×10的矩阵。为了让各个维度分布均匀以便压缩,我们将其变成5×5×5×5×8,这个操作不是合并或者分解某两个维度,因为8并不是500和10的因子,不仅如此,我们将权重的阶数提升到了5阶,这是之前方法没法实现的。我们的方法的张量分解形式并不是固定的,这和之前的低秩模型有很大的区别。在本发明具体实施中,以下实验可说明上述维度适应性调整方法的有效性:
图2示意了权重张量的阶数对网络性能的影响对比,其中,左图是针对卷积层的实验,右图是针对全连接层的实验。整个实验是在保证网络参数总量变化不大的条件下进行的,对比将权重张量分解成不同阶数,网络的性能变化曲线。通过实验结果可以发现,每一层的分解阶数并不是都在某一个固定值时为最好。对于第一层卷积层来说,分解成三阶张量网络的性能损失最小,对于第二层卷积层来说,分解成5阶张量网络的性能是最好的。对于全连接层来说,有的是分解成四阶张量效果好,有的是五阶张量效果更好,说明我们的想法是正确的,并不能只将网络按照某种固定的形式分解,不同的分解形式对网络的性能是有一定影响的。
另外,为了探索Tucker分解形式的核张量对压缩网络性能的影响,具体实施中,通过改变核张量的形状,保持参数量大致不变的情况下,衡量网络性能随核张量形状变化的影响。实施结果如图3所示。从结果可以发现,随着核张量两个维度的差异越来越大,网络的性能会有所下降,而当两个维度的大小较为接近时,网络的性能最优。
(三)共享维度适应Tucker分解压缩方法
将输入数据一层层传入网络,输入数据在不同层的卷积核和特征图之间会有一定的冗余,例如,不同尺度不同场景下的物体经过网络后的最终编码很相似,说明网络之间可能有共享的特征匹配或在经过mode乘法后某种变换具有相似性。因此,假设层之间的某种不变性由核张量体现,由于核张量占了参数量的大部分,通过一个共享的核张量可以大大减少参数量,达到更高的压缩倍数,同时,通过转换矩阵表示每层权重的特异性,图4示意了适应性Tucker分解压缩方法。图4中,每层网络的核张量不一样时,对应适应性Tucker分解压缩方法;如果每层的核张量参数共享,共用一个核张量,则是我们这部分提出的共享维度适应性Tucker分解压缩方法,这种方法有更高的压缩率。
共享维度适应性Tucker分解压缩方法具体是:
假设网络一共有l层,需要1个核张量,个转换矩阵,设定di表示第i层的张量维度,为了共享的核张量维度的对应,一共用ld个转换矩阵,其中d=max{di},i=1,2,…,l;
如果某层维度较小,只需要通过将第i层对应的变换矩阵置为整个利用式5的前向传播过程,变成如下形式:将第i层进行维度缩减:
式5的前向传播过程中,一共用了ld个转换矩阵,对于维度自适应调整的Tucker分解压缩方法由于每层的核张量不同,一共需要个转换矩阵。这两种方法不同还在于核张量的梯度计算过程上。
通过式6计算得到核张量的梯度:
其中的表示为损失函数对共享的核张量的梯度,表示为损失函数对某一层的核张量的梯度。我们在核张量大小维度相等的情况下对比共享适应性Tucker分解压缩方法和适应性Tucker分解压缩方法网络性能,实验结果如图5所示:
从实验结果可以看到,共享适应性Tucker分解压缩方法的参数量比适应性Tucker分解压缩方法要少很多,同时网络性能并没有过多下降。当张量的阶数高达7阶时,共享适应性Tucker分解压缩方法的效果甚至超过了适应性Tucker分解压缩方法,此时参数量只有4800个。
共享适应性Tucker分解压缩方法可视为循环神经网络的一种变形。由于循环神经网络是处理时间序列的一种工具,同时网络的参数对于每一个时间序列而言是共享的。所以共享适应性Tucker分解压缩方法相当于卷积网络的循环形式,是一种少量牺牲网络准确率而大幅提高压缩率的方法。
共享适应性Tucker分解压缩方法的输入为:训练数据集X和训练标记Y;输出为:和每层的核张量和转换矩阵;算法步骤如下:
1)采用适应性维度调整方法,使得权重张量的各维度大小尽可能平衡,由变换出针对每一层定义为相对应层的核张量和转移矩阵;
2)从X选择一个小样本量做前向传播;
3)对于每一层由经过mode乘法(式5)得到然后得到每一层的输出;
4)利用传统的前向传播算法计算损失函数值L,利用现有的网络反向传播算法计算得到适应性维度调整后的权重张量的梯度在利用式3和式4得到可学习核张量和转换矩阵的梯度
5)循环迭代直到网络收敛。
以下分析本发明方法的压缩率:假设网络有l层,令 表示第i层的权重张量和核张量。显然有相同数量的参数,故对于适应性Tucker分解压缩方法,压缩率主要比较网络压缩前后的参数量多少,计算公式如式7:
对于共享适应性Tucker分解压缩方法,由于每一层的核张量是共享的,同时d=di,i=1,2,…,l.故对于共享适应性Tucker分解压缩方法,压缩率计算公式如式8:
为了进一步提高压缩倍率,我们也同样采用量化和哈夫曼编码操作。经过本发明方法进行压缩之后,参数取值的统计直方图如图6所示:
从图6我们可以看出,对于两种方法,几乎大部分的权重都分布在-3到3这个区间,整体的分布曲线近似一个拉布拉斯分布。据此,我们采用参考文献[6]的方法,也把量化结合到本发明算法里面,具体量化公式如式9所示:
其中,Q是量化的类别数,b表示量化的区间,floor函数为下取整函数。由于原始网络的权重是用单精度float型数表示,需要32个比特,我们通过哈夫曼编码,可以进一步提高压缩率,假设经过哈夫曼编码之后,平均编码长度为这样最终的压缩率计算公式如式10所示:
以下将验证本发明算法的网络性能和压缩率。具体采用文献[17]记载的Adam优化算法,测试了3个数据集:MNIST,CIFAR10,SVHN,三个数据集的初始的学习率分别为0.01、0.003、0.003。每经过10到15个迭代组学习率缩小三倍,网络的初始化方法则采用了文献[18]和文献[19]记载的初始化方法。
MNIST数据集是一个包含60000个训练样本和10000个测试样本的数据集,该数据集被广泛应用于检测机器学习算法的性能。和文献[6]、[9]、[11]一样,测试本发明算法的性能主要针对两种网络结构:LeNet-5,LeNet-300-100。
采用式7、式8)计算得到适应性Tucker分解压缩方法和共享适应性Tucker分解压缩方法的原始压缩率。用式9,式10计算得到经过量化和哈夫曼编码之后的最终压缩率。表1对比了本发明方法和现有最优的三个压缩算法(文献[6]、[9]、[11])的性能。由于本发明方法是结构化的压缩方法,不需要记录非零元素的坐标和位置,这样能够充分的利用存储空间,所以,在表1中本发明方法的压缩率等于计算压缩率,而现有的三种方法的压缩率都是略小于计算压缩率。同时,在量化过程具体实施中,对于LeNet-5网络结构,本发明采用Q=512,b=3,最终网络的错误率为0.94%,而压缩率为691倍。对于LeNet-300-100网络结构,本发明采用Q=1500,b=5,最终网络的错误率为1.91%,而压缩率为233倍。b的选择主要参照于压缩后参数的统计直方图分布。
表1 MNIST数据集算法性能与压缩率比较
为了验证本发明算法的泛化能力,我们在SVHN、CIFAR-10两个数据集做了压缩实验。SVHN是一个较大的数据集,从现实世界照片中扣出的数字图片,一共有604388张训练图片,26032张测试图片,CIFAR10数据集有60000张训练图片,这两个数据集图片的像素都是32×32。这个实验我们主要和文献[20],[21],[12]做比较,为了保证公平性,我们采用和他们相同的网络结构去训练。结果表明,本发明算法效果远远超过以上现有算法,在没有使用量化和哈夫曼编码去进一步提高本发明压缩率的情况下,实验结果如表2所示。
表2 SVHN、CIFAR10数据集算法性能与压缩率比较
本发明中,我们提出了两种新的算法,适应性Tucker分解压缩方法和共享适应性Tucker分解压缩方法去压缩深度神经网络。本发明与现有的分解压缩算法不同,本发明通过适应性的维度调整,将张量的阶数和维度做了平衡转化,之后再经过Tucker分解实现压缩,不是通过新增很多新层去实现Tucker分解,而是通过可学习的核张量和变换矩阵实现。而且,本发明算法并不需要记录非零元素的指引和坐标,通过本发明发明结合量化和编码,网络性能并不会有太大的损失。本发明算法在几个数据集上都取得了最好的效果,例如在LeNet-5和LeNet-300-100上压缩了691倍和233倍。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (4)

1.一种基于维度自适应调整的Tucker分解的深度网络压缩方法,针对深度网络的权重,通过适应调整张量各维度的大小,生成新的任意阶张量,再通过核张量和变换矩阵实现张量分解,达到在网络性能损失小的前提下实现深度网络的高倍数压缩;包括维度自适应调整过程和维度适应的权重张量分解过程:
1)深度网络全连接层权重其中s和t分别表示输入单元个数和输出单元个数,是dw维的权重张量,每个维度的大小分别是通过维度自适应调整过程,针对深度神经网络的每一层权重张量进行维度变换(reshape)操作,获得深度神经网络维度适应的权重张量
2)维度适应的权重张量分解过程,即对神经网络利用新的前向传播和反向传播过程进行张量分解和张量融合;具体执行如下操作:
21)由深度神经网络每层的核张量和对应的变换矩阵M通过Tucker分解的逆运算,得到维度适应的权重张量对维度适应的权重张量进行维度变换(reshape)的逆变换操作,得到原始网络的权重张量
22)利用进行前向传播,通过式1重构深度神经网络每层的乘法个数随着层的核张量改变:
其中,其中表示核张量,k表示核张量的各维度大小,参数可学习;在训练过程中,首先经过对的mode乘法得到再通过调整维度大小得到由此重构
23)根据损失函数值L,采用反向传播算法求得核张量和变换矩阵对应的梯度,再利用现有的优化算法更新核张量和变换矩阵;包括如下操作:
231)通过推导得到新的反向传播算法,利用该反向传播算法得到每层的核张量和变换矩阵M的梯度;利用式3和式4得到变换矩阵和核张量的梯度:
其中,为损失函数对第i个变换矩阵的Mi梯度;为损失函数对共享的核张量的梯度;表示为损失函数对某一层的核张量的梯度;
232)再利用优化算法更新每层的核张量和变换矩阵M;
3)重复步骤2),直到网络收敛到设置的损失函数值,由此达到深度网络压缩的目的。
2.如权利要求1所述深度网络压缩方法,其特征是,reshape操作包括阶数相同的形式和阶数不同的形式,使得张量的每个维度大小分布较为平衡,从而得到维度适应的权重张量。
3.如权利要求1所述深度网络压缩方法,其特征是,优选地,当每层的核张量共享同一个核张量,表示为时,称为共享的维度适应性调整Tucker分解压缩方法;此时,步骤231)利用(式3)、(式4)和(式6)得到变换矩阵和核张量的梯度:
其中,为损失函数对共享的核张量的梯度;表示为损失函数对某一层的核张量的梯度。
4.如权利要求1所述深度网络压缩方法,其特征是,步骤232)所述优化算法为SGD优化算法或ADAM优化算法。
CN201710645965.XA 2017-08-01 2017-08-01 基于维度自适应的Tucker分解的深度网络压缩方法 Active CN107516129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710645965.XA CN107516129B (zh) 2017-08-01 2017-08-01 基于维度自适应的Tucker分解的深度网络压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710645965.XA CN107516129B (zh) 2017-08-01 2017-08-01 基于维度自适应的Tucker分解的深度网络压缩方法

Publications (2)

Publication Number Publication Date
CN107516129A true CN107516129A (zh) 2017-12-26
CN107516129B CN107516129B (zh) 2020-06-02

Family

ID=60722900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710645965.XA Active CN107516129B (zh) 2017-08-01 2017-08-01 基于维度自适应的Tucker分解的深度网络压缩方法

Country Status (1)

Country Link
CN (1) CN107516129B (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108805286A (zh) * 2018-06-12 2018-11-13 上海交通大学 基于高阶残留量化的高性能网络加速方法
CN109190758A (zh) * 2018-09-04 2019-01-11 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN109255438A (zh) * 2018-09-17 2019-01-22 地平线(上海)人工智能技术有限公司 调整张量数据的方法和装置
CN109302614A (zh) * 2018-10-08 2019-02-01 南京信息工程大学 一种基于三阶张量自编码网络的视频压缩方法
CN109325530A (zh) * 2018-09-07 2019-02-12 中国科学院自动化研究所 基于少量无标签数据的深度卷积神经网络的压缩方法
CN109344921A (zh) * 2019-01-03 2019-02-15 湖南极点智能科技有限公司 一种基于深度神经网络模型的图像识别方法、装置及设备
CN109409518A (zh) * 2018-10-11 2019-03-01 北京旷视科技有限公司 神经网络模型处理方法、装置及终端
CN109740734A (zh) * 2018-12-29 2019-05-10 北京工业大学 一种优化卷积神经网络中神经元空间排布的方法
CN109741833A (zh) * 2018-12-29 2019-05-10 东软集团股份有限公司 一种数据处理的方法和装置
CN109921799A (zh) * 2019-02-20 2019-06-21 重庆邮电大学 一种基于聚能量字典学习的张量压缩方法
CN110059796A (zh) * 2018-01-19 2019-07-26 杭州海康威视数字技术股份有限公司 卷积神经网络的生成方法及装置
CN110070583A (zh) * 2019-04-17 2019-07-30 清华大学 基于张量分解和深度学习的信号压缩与恢复方法及系统
CN110188773A (zh) * 2019-05-24 2019-08-30 北京迈格威科技有限公司 特征提取方法、图像处理方法及装置
CN110580525A (zh) * 2019-06-03 2019-12-17 北京邮电大学 神经网络压缩方法及系统
CN110633801A (zh) * 2018-05-30 2019-12-31 北京三星通信技术研究有限公司 一种深度学习模型的优化处理方法、装置和存储介质
CN110647973A (zh) * 2018-06-27 2020-01-03 北京中科寒武纪科技有限公司 运算方法及相关方法和产品
CN110929849A (zh) * 2019-11-22 2020-03-27 迪爱斯信息技术股份有限公司 一种神经网络模型的压缩方法和装置
CN111505706A (zh) * 2020-04-28 2020-08-07 长江大学 基于深度T-Net网络的微地震P波初至拾取方法及装置
RU2734579C1 (ru) * 2019-12-30 2020-10-20 Автономная некоммерческая образовательная организация высшего образования "Сколковский институт науки и технологий" Система сжатия искусственных нейронных сетей на основе итеративного применения тензорных аппроксимаций
CN112488312A (zh) * 2020-12-07 2021-03-12 江苏自动化研究所 一种基于张量的自动编码机的构建方法
CN112989992A (zh) * 2021-03-09 2021-06-18 北京百度网讯科技有限公司 目标检测方法、装置、路侧设备和云控平台
CN115146226A (zh) * 2022-08-31 2022-10-04 北京大学 基于张量压缩方法的流数据处理方法、装置及设备
CN117319655A (zh) * 2023-11-28 2023-12-29 苏州元脑智能科技有限公司 一种图像压缩处理方法、系统、装置及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211409A1 (ko) * 2021-03-31 2022-10-06 현대자동차주식회사 특징맵 축소를 이용하는 머신 비전 데이터 코딩 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160019454A1 (en) * 2014-07-18 2016-01-21 James LaRue J Patrick's Ladder A Machine Learning Enhancement Tool
CN105844653A (zh) * 2016-04-18 2016-08-10 深圳先进技术研究院 一种多层卷积神经网络优化系统及方法
CN106127297A (zh) * 2016-06-02 2016-11-16 中国科学院自动化研究所 基于张量分解的深度卷积神经网络的加速与压缩方法
CN106326985A (zh) * 2016-08-18 2017-01-11 北京旷视科技有限公司 神经网络训练方法和装置及数据处理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160019454A1 (en) * 2014-07-18 2016-01-21 James LaRue J Patrick's Ladder A Machine Learning Enhancement Tool
CN105844653A (zh) * 2016-04-18 2016-08-10 深圳先进技术研究院 一种多层卷积神经网络优化系统及方法
CN106127297A (zh) * 2016-06-02 2016-11-16 中国科学院自动化研究所 基于张量分解的深度卷积神经网络的加速与压缩方法
CN106326985A (zh) * 2016-08-18 2017-01-11 北京旷视科技有限公司 神经网络训练方法和装置及数据处理方法和装置

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059796A (zh) * 2018-01-19 2019-07-26 杭州海康威视数字技术股份有限公司 卷积神经网络的生成方法及装置
CN110633801A (zh) * 2018-05-30 2019-12-31 北京三星通信技术研究有限公司 一种深度学习模型的优化处理方法、装置和存储介质
CN108805286A (zh) * 2018-06-12 2018-11-13 上海交通大学 基于高阶残留量化的高性能网络加速方法
CN110647973A (zh) * 2018-06-27 2020-01-03 北京中科寒武纪科技有限公司 运算方法及相关方法和产品
CN109190758A (zh) * 2018-09-04 2019-01-11 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN109190758B (zh) * 2018-09-04 2021-06-15 地平线(上海)人工智能技术有限公司 用于展开卷积神经网络的张量数据的方法和装置
CN109325530A (zh) * 2018-09-07 2019-02-12 中国科学院自动化研究所 基于少量无标签数据的深度卷积神经网络的压缩方法
CN109325530B (zh) * 2018-09-07 2021-05-04 中国科学院自动化研究所 一种图像分类方法、存储装置和处理装置
CN109255438A (zh) * 2018-09-17 2019-01-22 地平线(上海)人工智能技术有限公司 调整张量数据的方法和装置
CN109302614B (zh) * 2018-10-08 2022-01-18 南京信息工程大学 一种基于三阶张量自编码网络的视频压缩方法
CN109302614A (zh) * 2018-10-08 2019-02-01 南京信息工程大学 一种基于三阶张量自编码网络的视频压缩方法
CN109409518B (zh) * 2018-10-11 2021-05-04 北京旷视科技有限公司 神经网络模型处理方法、装置及终端
CN109409518A (zh) * 2018-10-11 2019-03-01 北京旷视科技有限公司 神经网络模型处理方法、装置及终端
CN109740734A (zh) * 2018-12-29 2019-05-10 北京工业大学 一种优化卷积神经网络中神经元空间排布的方法
CN109741833A (zh) * 2018-12-29 2019-05-10 东软集团股份有限公司 一种数据处理的方法和装置
CN109740734B (zh) * 2018-12-29 2020-12-04 北京工业大学 一种利用优化神经元空间排布的卷积神经网络的图像分类方法
CN109344921A (zh) * 2019-01-03 2019-02-15 湖南极点智能科技有限公司 一种基于深度神经网络模型的图像识别方法、装置及设备
CN109344921B (zh) * 2019-01-03 2019-04-23 湖南极点智能科技有限公司 一种基于深度神经网络模型的图像识别方法、装置及设备
CN109921799A (zh) * 2019-02-20 2019-06-21 重庆邮电大学 一种基于聚能量字典学习的张量压缩方法
CN110070583A (zh) * 2019-04-17 2019-07-30 清华大学 基于张量分解和深度学习的信号压缩与恢复方法及系统
CN110188773B (zh) * 2019-05-24 2021-06-22 北京迈格威科技有限公司 图像处理方法及装置
CN110188773A (zh) * 2019-05-24 2019-08-30 北京迈格威科技有限公司 特征提取方法、图像处理方法及装置
CN110580525A (zh) * 2019-06-03 2019-12-17 北京邮电大学 神经网络压缩方法及系统
CN110580525B (zh) * 2019-06-03 2021-05-11 北京邮电大学 适用于资源受限的设备的神经网络压缩方法及系统
CN110929849A (zh) * 2019-11-22 2020-03-27 迪爱斯信息技术股份有限公司 一种神经网络模型的压缩方法和装置
CN110929849B (zh) * 2019-11-22 2023-09-01 迪爱斯信息技术股份有限公司 一种基于神经网络模型压缩的视频检测方法和装置
RU2734579C1 (ru) * 2019-12-30 2020-10-20 Автономная некоммерческая образовательная организация высшего образования "Сколковский институт науки и технологий" Система сжатия искусственных нейронных сетей на основе итеративного применения тензорных аппроксимаций
CN111505706B (zh) * 2020-04-28 2023-04-18 长江大学 基于深度T-Net网络的微地震P波初至拾取方法及装置
CN111505706A (zh) * 2020-04-28 2020-08-07 长江大学 基于深度T-Net网络的微地震P波初至拾取方法及装置
CN112488312A (zh) * 2020-12-07 2021-03-12 江苏自动化研究所 一种基于张量的自动编码机的构建方法
CN112989992A (zh) * 2021-03-09 2021-06-18 北京百度网讯科技有限公司 目标检测方法、装置、路侧设备和云控平台
CN112989992B (zh) * 2021-03-09 2023-12-15 阿波罗智联(北京)科技有限公司 目标检测方法、装置、路侧设备和云控平台
CN115146226B (zh) * 2022-08-31 2022-12-06 北京大学 基于张量压缩方法的流数据处理方法、装置及设备
CN115146226A (zh) * 2022-08-31 2022-10-04 北京大学 基于张量压缩方法的流数据处理方法、装置及设备
CN117319655A (zh) * 2023-11-28 2023-12-29 苏州元脑智能科技有限公司 一种图像压缩处理方法、系统、装置及介质
CN117319655B (zh) * 2023-11-28 2024-02-23 苏州元脑智能科技有限公司 一种图像压缩处理方法、系统、装置及介质

Also Published As

Publication number Publication date
CN107516129B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
CN107516129A (zh) 基于维度自适应的Tucker分解的深度网络压缩方法
CN109657156B (zh) 一种基于循环生成对抗网络的个性化推荐方法
CN113221969A (zh) 一种基于物联网感知的双特征融合的语义分割系统及方法
JP2019032808A (ja) 機械学習方法および装置
CN108985317A (zh) 一种基于可分离卷积和注意力机制的图像分类方法
CN110517329A (zh) 一种基于语义分析的深度学习图像压缩方法
CN108446766A (zh) 一种快速训练堆栈自编码深度神经网络的方法
CN108415888A (zh) 用于神经网络语言模型的压缩方法和系统
CN109934336A (zh) 基于最优结构搜索的神经网络动态加速平台设计方法及神经网络动态加速平台
CN112183742A (zh) 基于渐进式量化和Hessian信息的神经网络混合量化方法
CN114677548B (zh) 基于阻变存储器的神经网络图像分类系统及方法
Wang et al. Compressing 3DCNNs based on tensor train decomposition
CN109523016B (zh) 面向嵌入式系统的多值量化深度神经网络压缩方法及系统
CN114970853A (zh) 一种跨范围量化的卷积神经网络压缩方法
Ko et al. Design and analysis of a neural network inference engine based on adaptive weight compression
CN105260736A (zh) 基于归一化非负稀疏编码器的图像快速特征表示方法
CN114140641A (zh) 面向图像分类的多参数自适应异构并行计算方法
Qi et al. Learning low resource consumption cnn through pruning and quantization
CN110083734A (zh) 基于自编码网络和鲁棒核哈希的半监督图像检索方法
CN112070019B (zh) 一种人脸识别方法、装置、电子设备和存储介质
CN112528168A (zh) 基于可形变自注意力机制的社交网络文本情感分析方法
CN110378466B (zh) 基于神经网络差分的量化方法及系统
CN109389218A (zh) 数据压缩方法及压缩装置
CN115905546A (zh) 基于阻变存储器的图卷积网络文献识别装置与方法
CN116384471A (zh) 模型剪枝方法、装置、计算机设备、存储介质和程序产品

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant