基于Tucker算法的深度卷积神经网络压缩方法技术

技术编号:22502590 阅读:49 留言:0更新日期:2019-11-09 02:44
本发明专利技术涉及基于Tucker算法的深度卷积神经网络压缩方法,包括:A.获得深度卷积神经网络模型;B.使用EVBMF算法依次估计所述深度卷积神经网络模型中每一个隐藏层参数的分解秩;C.根据深度卷积神经网络模型中隐藏层的参数张量和对应的分解秩,通过Tucker算法依次分解每一个参数张量,产生多个低秩子张量;D.通过所述的低秩子张量生成新的隐藏层,并将深度卷积神经网络模型中原有的隐藏层替换为所述新的隐藏层,生成新的深度卷积神经网络模型。本发明专利技术基于Tucker算法的深度卷积神经网络压缩方法,能够大幅度提高压缩倍数,并且有效减少了压缩时间和系统开销。

Deep convolution neural network compression method based on Tucker algorithm

The invention relates to a deep convolution neural network compression method based on Tucker algorithm, which includes: A. obtaining the deep convolution neural network model; B. estimating the decomposition rank of each hidden layer parameter in the deep convolution neural network model in turn by using evbmf algorithm; C. according to the parameter tensor and corresponding decomposition rank of the hidden layer in the deep convolution neural network model, successively by Tucker algorithm Decompose each parameter tensor to generate multiple low rank sub tensors; D. generate a new hidden layer through the low rank sub tensors, and replace the original hidden layer in the depth convolution neural network model with the new hidden layer to generate a new depth convolution neural network model. The deep convolution neural network compression method based on Tucker algorithm can greatly improve the compression multiple, and effectively reduce the compression time and system overhead.

【技术实现步骤摘要】
基于Tucker算法的深度卷积神经网络压缩方法
本专利技术涉及深度神经网络
,具体讲是基于Tucker算法的深度卷积神经网络压缩方法。
技术介绍
近年来,以卷积神经网络为代表的深度学习技术在自然语言处理、自动驾驶、目标跟踪等领域取得了显著的成果。得益于信息时代中容易获得的数据集和计算性能不断提升的图像处理器(GPU),深度学习技术实现了超越传统计算机视觉技术的性能。为了能在现有数据中学习到更具泛化性的特征,卷积神经网络被设计得越来越复杂,网络的模型层数、参数数量、占用内存和硬盘储存等也随之增加。所以深度学习的实施难以离开高性能设备。另一方面,深度学习所具有的强大性能导致各个领域对实际部署神经网络的需求越来越大。例如移动互联网领域中将神经网络移植到手机、穿戴设备、嵌入式系统等低性能设备上。这些设备的计算性能和内存空间都远远不及高性能设备,导致卷积神经网络难以发挥出理论上的性能。所以卷积神经网络的实际部署需要一种高效的加速和压缩方法来降低计算和储存开销。在开发阶段,卷积神经网络经常被设计得过参数化,这样可以促进网络的训练能收敛到更合适的参数。但是在卷积神经网络训练完成后,大部分参数对最终结果的贡献都很小,所以存在冗余。另一方面,当一个执行复杂任务的卷积神经网络被微调到简单任务时,也会使大量参数失去原有作用。这些方面都表明卷积神经网络是一种计算效率较低的结构,所以在训练好的卷积神经网络中存在极大的可压缩的参数。卷积神经网络的压缩通常着眼于减少参数量和计算次数。目前常用的压缩方法有以下几种:逐层压缩:矩阵分解、张量分解、权值共享、稀疏连接等;模型整体压缩:知识蒸馏、模仿学习等;序列化:稀疏矩阵、霍夫曼编码等。其中的张量分解的使用量最多,因为它只需要卷积神经网络本身,而其他方法均需要数据集的支持。此外张量分解专门针对卷积神经网络的过参数化的特性,其基本思想是使用一系列低质子张量来近似原本的巨大的张量。这意味着张量分解可以很好的处理VGG模型(一种图像处理模型)这种明显过参数化的网络,特别是将其微调到简单任务的情况。目前已有的张量分解流程包括以下思路:迭代式Tucker分解(一种高阶的主成分分析方法,它将一个张量表示成一个核心(core)张量沿每一个mode乘上一个矩阵):从卷积神经网络的底部输入层开始,逐层地使用Tucker分解隐藏层。每次分解后都要微调网络整体参数。这种方法可以有效地压缩每一个隐藏层,但是将压缩方法变成了一种反复试错的操作,导致实际计算十分繁琐。并且在每次微调后,卷积神经网络整体的参数都发生了改变,这将影响后续层的分解效果。端对端式CP分解:首先使用CP分解所有隐藏层,然后只进行一次网络参数的微调。这种方法可以最大限度利用卷积神经网络本身的参数,不会被反复的微调所影响。实际运算中,CP分解会分解隐藏层的所有维度。而隐藏层的卷积核的部分典型尺寸为3×3,所以这个维度的分解难以压缩大量参数,并且计算量十分巨大。
技术实现思路
本专利技术提供了一种基于Tucker算法的深度卷积神经网络压缩方法,以实现更高的压缩倍数,以及提升压缩速度。本专利技术基于Tucker算法的深度卷积神经网络压缩方法,包括:A.获得深度卷积神经网络模型,例如可以为AlexNet、VGG或ResNet等深度卷积神经网络模型;B.使用EVBMF算法(经验变分贝叶斯矩阵分解,EmpiricalVariationalBayesMatrixFactorization)依次估计所述深度卷积神经网络模型中每一个隐藏层参数的分解秩;C.根据深度卷积神经网络模型中隐藏层的参数张量和对应的分解秩,通过Tucker算法依次分解每一个参数张量,产生多个低秩子张量;D.通过所述的低秩子张量生成新的隐藏层,并将深度卷积神经网络模型中原有的隐藏层替换为所述新的隐藏层,生成新的深度卷积神经网络模型。本专利技术的方法是以端对端的思想处理整个卷积神经网络,从而避免了传统迭代式分解中卷积神经网络参数会改变的问题,同时利用了Tucker算法可以处理特定维度的特性,避免了分解隐藏层的卷积核的问题。本专利技术的方法与现有的加速和压缩方法相比,能够有效地保留原始张量中的有效成分,去除噪声成分,所以在保持网络性能的情况下,网络的参数量具有更大的压缩倍数,因此最终能够获得更高的压缩倍数。具体的,步骤B包括:B1.依次遍历深度卷积神经网络模型的每一个卷积层,提取出每个卷积层的核参数K∈RD×D×S×T和偏置参数B∈RT,表示了核参数K是一个4维的张量,每一维的大小分别为D、D、S、T,其中R表示拓扑空间,D表示核维度,S表示输入维度,T表示输出维度,则对于输入张量X∈RH×W×S,则卷积层的输出张量Y为:其中,输出张量Y∈RH'×W'×T,H和W分别为输入张量X在空域中的长和宽,H'=H-D+1,W'=W-D+1,δ为一半的核维度,δ=(D-1)/2,i、j、s和t分别为计算时的中间变量,并且s∈S,t∈T,x和y分别为输出张量Y的空间坐标的中间变量,并且x∈H',y∈W';通过x、y和t依次在[1,H']、[1,W']和[1,T]中循环,计算得到当前的输出张量Y(x,y,t)。B2.所述核参数K按照输入维度S和输出维度T张开为矩阵K1∈R(D×D×T)×S和矩阵K2∈R(D×D×S)×T,通过EVBMF算法估计矩阵K1和矩阵K2分别对应的分解秩R3和R4;B3.在全连接层中核参数K∈RS×T,输入张量X∈RS,则全连接层的输出张量Y为:其中,输出张量Y∈RS。具体的,步骤C中所述通过Tucker算法依次分解每一个参数张量为:C1.通过(式3)依次分解每一个卷积层的核参数K:在通过(式3)生成的多个低秩子张量中,r3和r4分别为计算时的中间变量,R3和R4分别对应为所述矩阵K1和矩阵K2的分解秩,r3∈R3,r4∈R4,卷积层的核张量第一因子矩阵第二因子矩阵C2.将全连接层看作是核参数K∈RS×T的卷积层,通过Tucker算法分解核参数K为:其中全连接层的核张量具体的,步骤D包括:D1.依次遍历深度卷积神经网络模型的每个卷积层,并结合(式1)和(式3),将原有的卷积层替换为(式5)至(式7)的3个新生成的卷积层的叠加:其中,中间结果Z∈RH×W×T,中间结果Z'∈RH'×W'×T,(式6)表示常规卷积,其卷积核参数取自Tucker算法分解得到的所述卷积层的核张量C';(式5)和(式7)均表示卷积核为1×1的卷积运算,其卷积核参数取自Tucker算法分解得到的第一因子矩阵U(3)和第二因子矩阵U(4);D2.将全连接层看作是核参数K∈RS×T的卷积层,结合(式2)和(式4),将原有的全连接层替换为(式8)和(式9)2个新生成的全连接层的叠加:其中,中间结果(式8)和(式7)的核参数取自Tucker算法分解得到的低秩子张量C'U(3)和第二因子矩阵U(4);D3.所有卷积层和全连接层都被替换后,得到新的深度卷积神经网络模型。进一步的,步骤D之后再执行步骤E:使用深度卷积神经网络模型的原始训练数据对步骤D生成的新的深度卷积神经网络模型的参数进行微调。具体的,步骤E包括:E1.分别加载新的深度卷积神经网络模型和原始深度卷积神经网络模型的训练数据;E2.使用自适应动量估计(AdaptiveM本文档来自技高网
...

【技术保护点】
1.基于Tucker算法的深度卷积神经网络压缩方法,其特征包括:A.获得深度卷积神经网络模型;B.使用EVBMF算法依次估计所述深度卷积神经网络模型中每一个隐藏层参数的分解秩;C.根据深度卷积神经网络模型中隐藏层的参数张量和对应的分解秩,通过Tucker算法依次分解每一个参数张量,产生多个低秩子张量;D.通过所述的低秩子张量生成新的隐藏层,并将深度卷积神经网络模型中原有的隐藏层替换为所述新的隐藏层,生成新的深度卷积神经网络模型。

【技术特征摘要】
1.基于Tucker算法的深度卷积神经网络压缩方法,其特征包括:A.获得深度卷积神经网络模型;B.使用EVBMF算法依次估计所述深度卷积神经网络模型中每一个隐藏层参数的分解秩;C.根据深度卷积神经网络模型中隐藏层的参数张量和对应的分解秩,通过Tucker算法依次分解每一个参数张量,产生多个低秩子张量;D.通过所述的低秩子张量生成新的隐藏层,并将深度卷积神经网络模型中原有的隐藏层替换为所述新的隐藏层,生成新的深度卷积神经网络模型。2.如权利要求1所述的基于Tucker算法的深度卷积神经网络压缩方法,其特征为:步骤B包括:B1.依次遍历深度卷积神经网络模型的每一个卷积层,提取出每个卷积层的核参数K∈RD×D×S×T和偏置参数B∈RT,其中R表示拓扑空间,D表示核维度,S表示输入维度,T表示输出维度,则对于输入张量X∈RH×W×S,则卷积层的输出张量Y为:其中,输出张量Y∈RH'×W'×T,H和W分别为输入张量X在空域中的长和宽,H'=H-D+1,W'=W-D+1,δ为一半的核维度,δ=(D-1)/2,i、j、s和t分别为计算时的中间变量,并且s∈S,t∈T,x和y分别为输出张量Y的空间坐标的中间变量,并且x∈H',y∈W';B2.将所述核参数K按照输入维度S和输出维度T张开为矩阵K1∈R(D×D×T)×S和矩阵K2∈R(D×D×S)×T,通过EVBMF算法估计矩阵K1和矩阵K2分别对应的分解秩R3和R4;B3.在全连接层中核参数K∈RS×T,输入张量X∈RS,则全连接层的输出张量Y为:其中,输出张量Y∈RS。3.如权利要求2所述的基于Tucker算法的深度卷积神经网络压缩方法,其特征为:步骤C中所述通过Tucker算法依次分解每一个参数张量为:C1.通过(式3)依次分解每一个卷积层的核参数K:在通过(式3)生成的多个低秩子张量中,r3和r4分别为计算时的中间变量,R3和R4分别对应为所述矩阵K1和矩阵K2的分解秩,r3∈R3,r4∈R4,卷积层的核张量第一因子矩阵第二因子矩阵C2.将全连...

【专利技术属性】
技术研发人员:袁国慧贺晨王卓然彭真明曲超范文澜赵浩浩张鹏年赵学功王慧何艳敏蒲恬周宇
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1