CN107516129B - 基于维度自适应的Tucker分解的深度网络压缩方法 - Google Patents
基于维度自适应的Tucker分解的深度网络压缩方法 Download PDFInfo
- Publication number
- CN107516129B CN107516129B CN201710645965.XA CN201710645965A CN107516129B CN 107516129 B CN107516129 B CN 107516129B CN 201710645965 A CN201710645965 A CN 201710645965A CN 107516129 B CN107516129 B CN 107516129B
- Authority
- CN
- China
- Prior art keywords
- tensor
- dimension
- network
- layer
- compression
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 133
- 238000007906 compression Methods 0.000 title claims abstract description 102
- 230000006835 compression Effects 0.000 title claims abstract description 100
- 238000000354 decomposition reaction Methods 0.000 title claims abstract description 91
- 239000011159 matrix material Substances 0.000 claims abstract description 38
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000005457 optimization Methods 0.000 claims abstract description 11
- 230000003044 adaptive effect Effects 0.000 claims description 42
- 230000009466 transformation Effects 0.000 claims description 36
- 238000004422 calculation algorithm Methods 0.000 claims description 35
- 238000009826 distribution Methods 0.000 claims description 19
- 238000013528 artificial neural network Methods 0.000 claims description 16
- 238000012549 training Methods 0.000 claims description 10
- 230000006978 adaptation Effects 0.000 claims description 4
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 3
- 238000009795 derivation Methods 0.000 claims description 3
- 230000004927 fusion Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims 2
- 238000004513 sizing Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 13
- 238000013139 quantization Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 8
- 238000002474 experimental method Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006837 decompression Effects 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011423 initialization method Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, 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分解的深度网络压缩方法。
背景技术
由于近年来图像处理器(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分解的深度网络压缩方法,与现有的张量分解方法不同,本发明通过适应调整张量各维度的大小,生成一个新的任意阶张量,再通过可学习的核张量和转移矩阵去实现张量分解,由此达到网络优化压缩的目的。
为方便起见,本发明约定以下术语及记号表示:
本发明提供的技术方案是:
一种基于维度自适应调整的Tucker分解的深度网络压缩方法,针对深度网络的权重,通过适应调整张量各维度的大小,生成一个新的任意阶张量,再通过核张量和变换矩阵去实现张量分解,由于核张量和变换矩阵是可学习的,通过训练过程可以在网络性能损失很小的前提下实现深度网络的高倍数压缩。
在上述基于维度自适应调整的Tucker分解的深度网络压缩方法基础上,本发明还提供一种共享核的维度自适应调整的Tucker分解的深度网络压缩方法,该方法与上述方法的主要区别为:维度自适应调整的Tucker分解的深度网络压缩方法(也称为适应性Tucker分解压缩方法)中的每一层网络都有一个单独的核张量,核张量占了大部分存储空间;而共享核的维度自适应调整的Tucker分解的深度网络压缩方法对所有层只用一个核张量,从而进一步提高压缩倍数,两个方法总的流程相似,包括维度自适应调整过程和维度适应的权重张量分解过程;仅在前向传播算法和反向传播算法中有些区别,具体区别在步骤中叙述。以下为方法具体步骤:
2)维度适应的权重张量分解过程,即对神经网络利用本发明新的前向传播和反向传播过程进行张量分解和张量融合,具体执行如下操作:
21)由每层的核张量和对应的变换矩阵M通过Tucker分解的逆运算,得到维度适应的权重张量根据之前对应的维度变换reshape操作,对维度适应的权重张量做reshape的逆变换,得到原始网络的权重张量
对于适应性维度调整Tucker分解压缩方法,我们利用(式1)去重构每层的乘法个数是随着层的核张量而改变,而对于共享的维度适应性调整Tucker分解压缩方法,我们同样利用式1去重构由于每层的核张量是同一个张量,所以乘法的形式对每层来说是一样的,最终逐层计算直到最后一层得到损失函数值L;
其中,其中c表示核张量,k表示核张量的各维度大小,这两组参数都是可学习的,这些变量都需要存储,在训练过程中需要重构首先经过对的mode乘法,我们可以得到在通过调整维度大小可以得到接下来我们推导这两组参数的梯度运算公式。
包括如下操作:
231)利用本发明后文推导得到的反向传播算法得到各个可学习变量的梯度,变量包括每层的核张量和变换矩阵M。对于维度适应性调整Tucker分解压缩方法,我们利用(式3)和(式4)去得到变换矩阵和核张量的梯度,对于共享的维度适应性调整Tucker分解压缩方法,我们利用(式3)、(式4)和(式6)去得到变换矩阵和核张量的梯度;
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乘法,我们可以得到在通过调整维度大小可以得到接下来我们推导这两组参数的梯度运算公式。
(二)维度适应性调整
我们发现如果权重张量的各个维度分布比较平衡,神经网络能够更好的压缩且不会损失性能。在这部分我们将介绍我们的维度适应性调整。
对于卷积层来说,我们以卷积神经网络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分解压缩方法具体是:
通过式6计算得到核张量的梯度:
其中的表示为损失函数对共享的核张量的梯度,表示为损失函数对某一层的核张量的梯度。我们在核张量大小维度相等的情况下对比共享适应性Tucker分解压缩方法和适应性Tucker分解压缩方法网络性能,实验结果如图5所示:
从实验结果可以看到,共享适应性Tucker分解压缩方法的参数量比适应性Tucker分解压缩方法要少很多,同时网络性能并没有过多下降。当张量的阶数高达7阶时,共享适应性Tucker分解压缩方法的效果甚至超过了适应性Tucker分解压缩方法,此时参数量只有4800个。
共享适应性Tucker分解压缩方法可视为循环神经网络的一种变形。由于循环神经网络是处理时间序列的一种工具,同时网络的参数对于每一个时间序列而言是共享的。所以共享适应性Tucker分解压缩方法相当于卷积网络的循环形式,是一种少量牺牲网络准确率而大幅提高压缩率的方法。
2)从X选择一个小样本量做前向传播;
5)循环迭代直到网络收敛。
对于共享适应性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)深度网络卷积层权重为四维张量其中h表示卷积核的高度,w表示卷积核的宽度,s和t表示输入的通道和输出的通道数;深度网络全连接层权重为二维张量 其中s和t分别表示输入单元个数和输出单元个数;包括每一层权重张量,第i层的权重张量记为 是dw维的权重张量,每个维度的大小分别是通过维度自适应调整过程,针对深度神经网络的每一层权重张量进行维度变换操作,获得深度神经网络维度适应的权重张量
2)维度适应的权重张量分解过程,即对神经网络利用新的前向传播和反向传播过程进行张量分解和张量融合;具体执行如下操作:
231)通过推导得到新的反向传播算法,利用该反向传播算法得到每层的核张量和变换矩阵M的梯度;利用式3和式4得到变换矩阵和核张量的梯度:
232)再利用优化算法更新每层的核张量和变换矩阵M;
3)重复步骤2),直到网络收敛到设置的损失函数值,由此达到深度网络压缩的目的。
2.如权利要求1所述深度网络压缩的图像处理方法,其特征是,维度变换操作包括阶数相同的形式和阶数不同的形式,使得张量的每个维度大小分布较为平衡,从而得到维度适应的权重张量。
4.如权利要求1所述深度网络压缩的图像处理方法,其特征是,步骤232)所述优化算法为SGD优化算法或ADAM优化算法。
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 CN107516129A (zh) | 2017-12-26 |
CN107516129B true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022211409A1 (ko) * | 2021-03-31 | 2022-10-06 | 현대자동차주식회사 | 특징맵 축소를 이용하는 머신 비전 데이터 코딩 장치 및 방법 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059796B (zh) * | 2018-01-19 | 2021-09-21 | 杭州海康威视数字技术股份有限公司 | 卷积神经网络的生成方法及装置 |
CN110633801A (zh) * | 2018-05-30 | 2019-12-31 | 北京三星通信技术研究有限公司 | 一种深度学习模型的优化处理方法、装置和存储介质 |
CN108805286A (zh) * | 2018-06-12 | 2018-11-13 | 上海交通大学 | 基于高阶残留量化的高性能网络加速方法 |
CN110647973A (zh) * | 2018-06-27 | 2020-01-03 | 北京中科寒武纪科技有限公司 | 运算方法及相关方法和产品 |
CN109190758B (zh) * | 2018-09-04 | 2021-06-15 | 地平线(上海)人工智能技术有限公司 | 用于展开卷积神经网络的张量数据的方法和装置 |
CN109325530B (zh) * | 2018-09-07 | 2021-05-04 | 中国科学院自动化研究所 | 一种图像分类方法、存储装置和处理装置 |
CN109255438B (zh) * | 2018-09-17 | 2020-07-17 | 地平线(上海)人工智能技术有限公司 | 调整张量数据的方法和装置 |
CN109302614B (zh) * | 2018-10-08 | 2022-01-18 | 南京信息工程大学 | 一种基于三阶张量自编码网络的视频压缩方法 |
CN109409518B (zh) * | 2018-10-11 | 2021-05-04 | 北京旷视科技有限公司 | 神经网络模型处理方法、装置及终端 |
CN109740734B (zh) * | 2018-12-29 | 2020-12-04 | 北京工业大学 | 一种利用优化神经元空间排布的卷积神经网络的图像分类方法 |
CN109741833B (zh) * | 2018-12-29 | 2021-07-13 | 东软集团股份有限公司 | 一种数据处理的方法和装置 |
CN109344921B (zh) * | 2019-01-03 | 2019-04-23 | 湖南极点智能科技有限公司 | 一种基于深度神经网络模型的图像识别方法、装置及设备 |
CN109921799B (zh) * | 2019-02-20 | 2023-03-31 | 重庆邮电大学 | 一种基于聚能量字典学习的张量压缩方法 |
CN110070583A (zh) * | 2019-04-17 | 2019-07-30 | 清华大学 | 基于张量分解和深度学习的信号压缩与恢复方法及系统 |
CN110188773B (zh) * | 2019-05-24 | 2021-06-22 | 北京迈格威科技有限公司 | 图像处理方法及装置 |
CN110580525B (zh) * | 2019-06-03 | 2021-05-11 | 北京邮电大学 | 适用于资源受限的设备的神经网络压缩方法及系统 |
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波初至拾取方法及装置 |
CN112488312B (zh) * | 2020-12-07 | 2022-02-18 | 江苏自动化研究所 | 一种基于张量的网络交换数据的自动编码机的构建方法 |
CN112989992B (zh) * | 2021-03-09 | 2023-12-15 | 阿波罗智联(北京)科技有限公司 | 目标检测方法、装置、路侧设备和云控平台 |
CN115146226B (zh) * | 2022-08-31 | 2022-12-06 | 北京大学 | 基于张量压缩方法的流数据处理方法、装置及设备 |
CN117319655B (zh) * | 2023-11-28 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种图像压缩处理方法、系统、装置及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105844653A (zh) * | 2016-04-18 | 2016-08-10 | 深圳先进技术研究院 | 一种多层卷积神经网络优化系统及方法 |
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
CN106326985A (zh) * | 2016-08-18 | 2017-01-11 | 北京旷视科技有限公司 | 神经网络训练方法和装置及数据处理方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10242313B2 (en) * | 2014-07-18 | 2019-03-26 | James LaRue | Joint proximity association template for neural networks |
-
2017
- 2017-08-01 CN CN201710645965.XA patent/CN107516129B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022211409A1 (ko) * | 2021-03-31 | 2022-10-06 | 현대자동차주식회사 | 특징맵 축소를 이용하는 머신 비전 데이터 코딩 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN107516129A (zh) | 2017-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107516129B (zh) | 基于维度自适应的Tucker分解的深度网络压缩方法 | |
Yu et al. | On compressing deep models by low rank and sparse decomposition | |
Wang et al. | Towards evolutionary compression | |
Hu et al. | An image compression and encryption scheme based on deep learning | |
Boopathi et al. | An image compression approach using wavelet transform and modified self organizing map | |
US12046009B2 (en) | 3D point cloud encoding and decoding method, compression method and device based on graph dictionary learning | |
CN113595993A (zh) | 边缘计算下模型结构优化的车载感知设备联合学习方法 | |
CN110751265A (zh) | 一种轻量型神经网络构建方法、系统及电子设备 | |
CN107609637A (zh) | 一种结合数据表示与伪逆学习自编码器的提高模式识别精度的方法 | |
Lacey et al. | Stochastic layer-wise precision in deep neural networks | |
Ma et al. | A unified approximation framework for compressing and accelerating deep neural networks | |
CN114118406A (zh) | 一种卷积神经网络的量化压缩方法 | |
CN114742911A (zh) | 图像压缩感知重建方法、系统、设备及介质 | |
CN111340173A (zh) | 一种针对高维数据的生成对抗网络训练方法、系统及电子设备 | |
Saha et al. | Matrix compression via randomized low rank and low precision factorization | |
SairaBanu et al. | Parallel implementation of Singular Value Decomposition (SVD) in image compression using open Mp and sparse matrix representation | |
Chen et al. | Compressing fully connected layers using Kronecker tensor decomposition | |
CN114677545B (zh) | 一种基于相似性剪枝和高效模块的轻量化图像分类方法 | |
Cai et al. | Research on compression pruning methods based on deep learning | |
CN116384471A (zh) | 模型剪枝方法、装置、计算机设备、存储介质和程序产品 | |
CN113177627B (zh) | 优化系统、重新训练系统及其方法及处理器和可读介质 | |
Pragnesh et al. | Compression of convolution neural network using structured pruning | |
CN114332481A (zh) | 一种基于非负稀疏自编码器的盲端元提取与光谱解混方法 | |
CN113850733A (zh) | 基于变幂次单稳态自适应随机共振的彩色图像增强方法 | |
Kekre et al. | Vector quantized codebook optimization using modified genetic algorithm |
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 |