CN105184369A - 用于深度学习模型的矩阵压缩方法和装置 - Google Patents

用于深度学习模型的矩阵压缩方法和装置 Download PDF

Info

Publication number
CN105184369A
CN105184369A CN201510566639.0A CN201510566639A CN105184369A CN 105184369 A CN105184369 A CN 105184369A CN 201510566639 A CN201510566639 A CN 201510566639A CN 105184369 A CN105184369 A CN 105184369A
Authority
CN
China
Prior art keywords
matrix
linear layer
weight matrix
learning model
degree
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.)
Pending
Application number
CN201510566639.0A
Other languages
English (en)
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.)
Hangzhou Langhe Technology Co Ltd
Original Assignee
Hangzhou Langhe Technology Co Ltd
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 Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN201510566639.0A priority Critical patent/CN105184369A/zh
Publication of CN105184369A publication Critical patent/CN105184369A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明的实施方式提供了一种用于深度学习模型的矩阵压缩方法和装置,其中所述深度学习模型的最后一层线性层连接M个隐节点和N个分类节点,所述最后一层线性层对应有权重矩阵W。所述方法包括:步骤S101:根据所述权重矩阵W的元素的绝对值,计算K值;以及步骤S102:将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵P,所述第二线性层的权重矩阵为K*N的矩阵Q,所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。

Description

用于深度学习模型的矩阵压缩方法和装置
技术领域
本发明的实施方式涉及计算机领域,更具体地,本发明的实施方式涉及用于深度学习模型的矩阵压缩方法和装置。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
深度学习模型被越来越广泛地应用于数据分析中,其通过对不同层的节点之间的线性层和非线性层,对数据进行映射、运算等处理,并在处理中对模型进行训练、修正、更新,从而最终提升分类或预测的准确性。在深度学习模型中,通常最后一层线性层是连接隐节点与输出的分类节点的处理层。假设隐节点数目为M,分类节点数目为N,则最后一层线性层的权重矩阵为M*N。在实际处理过程中,N是一个较大的数目,导致深度学习模型的参数量会随着N的增加而增加,运算量非常大。
为了减少运算量,采用了基于SVD矩阵分解技术的模型压缩方法,在该方法中,通常会对最后一层线性层的权重矩阵M*N进行奇异值(SVD)分解,分解为由M*K和K*N的两个矩阵相乘来近似表示该权重矩阵,即拆分成两个线性层结构。在深度学习模型中,权重矩阵表示节点之间连接边的反馈影响程度,而通常权重矩阵中很多元素值接近于0,反映了很多节点之间并没有强的反馈关系。然而,基于SVD矩阵分解技术的模型压缩方法将这些接近于0的元素与具有强反馈关系的元素按照类似的方式进行处理,运算量仍然很大。此外,基于SVD矩阵分解技术的模型压缩方法也没有考虑如何选择K,来优化运算结果,同时减少运算量。
发明内容
因现有技术中的深度学习模型中,模型压缩方法仍然将接近于0的矩阵元素与具有强反馈关系的矩阵元素按照类似的方式进行处理,运算量仍然很大。此外,这些模型压缩方法也没有考虑如何选择K,来优化运算结果,同时减少运算量。
因此在现有技术中,用于深度学习模型的矩阵压缩方法和装置运算量很大,效率低下,所获得的模型准确率较低,这是非常令人烦恼的过程。
为此,非常需要一种改进的用于深度学习模型的矩阵压缩方法和装置,以便有效压缩矩阵,减少运算量,提高数据处理的效率,实现深度学习模型的优化,从而提高深度学习模型的准确性和可靠性。
在本上下文中,本发明的实施方式期望提供一种用于深度学习模型的矩阵压缩方法和装置。
在本发明实施方式的第一方面中,提供了一种用于深度学习模型的矩阵压缩方法,其中所述深度学习模型的最后一层线性层连接M个隐节点和N个分类节点,所述最后一层线性层的权重矩阵 W = w 11 w 1 N ... w M 1 w M N , 所述方法包括:步骤S101:根据所述权重矩阵W的元素的绝对值,计算K值;以及步骤S102:将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵 P = p 11 p 1 K ... p M 1 p M K , 所述第二线性层的权重矩阵为K*N的矩阵 Q = q 11 q 1 N ... q K 1 q K N , 所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。
根据本发明的第二方面,提供了一种用于深度学习模型的矩阵压缩装置,其中所述深度学习模型的最后一层线性层连接M个隐节点和N个分类节点,所述最后一层线性层的权重矩阵 W = w 11 w 1 N ... w M 1 w M N , 所述装置包括:K值计算模块,适于根据所述权重矩阵W的元素的绝对值,计算K值;以及压缩模块,适于将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵 P = p 11 p 1 K ... p M 1 p M K , 所述第二线性层的权重矩阵为K*N的矩阵 Q = q 11 q 1 N ... q K 1 q K N , 所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。
根据本发明的上述实施方式中的用于深度学习模型的矩阵压缩装置,其中所述K值计算模块包括:元素统计模块,适于统计所述权重矩阵W的元素wij的绝对值小于预设稀疏截断因子w截断的元素个数N稀疏;K值计算子模块,适于根据N稀疏,计算K值。
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,还包括稀疏截断因子计算模块,该模块适于:通过等式w截断=k12+μ计算所述稀疏截断因子w截断,其中k1为正的常数,σ2为所述权重矩阵的元素的方差,μ为所述权重矩阵的元素的均值。
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,其中所述K值计算子模块适于:通过等式K=k2*(M*N-N稀疏)/(M+N),计算K值,其中k2为正的常数。
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,还包括:第一优化模块,适于对所述矩阵P和所述矩阵Q进行优化处理。
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,其中所述第一优化模块适于:采用随机梯度下降算法对所述矩阵P和所述矩阵Q进行优化处理,包括:赋值模块,适于对所述矩阵P和所述矩阵Q的元素赋予服从高斯分布的随机初始值,其中所述矩阵P和所述矩阵Q的元素的随机初始值的均值均为0、且方差均为1;W预测计算模块,适于计算W预测=P*Q,且损失函数误差计算模块,适于根据W预测和wij,计算损失函数误差Loss;梯度方向信息计算模块,适于根据所述损失函数误差Loss,计算所述矩阵P和所述矩阵Q的梯度方向信息;更新模块,适于根据所述矩阵P和所述矩阵Q的梯度方向信息,更新所述矩阵P和所述矩阵Q。
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,其中所述损失函数误差计算模块适于:通过以下等式计算损失函数误差Loss:Loss=Loss1+λLoss2,λ为正的常数,
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,其中所述梯度方向信息计算模块适于:通过以下等式计算所述矩阵P的梯度方向信息: 且|wij预测|<w截断且wij预测≥w截断且wij预测≤-w截断;通过以下等式计算所述矩阵Q的梯度方向信息: 且|wij预测|<w截断且wij预测≥w截断且wij预测≤-w截断
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,其中所述更新模块适于:将所述矩阵P和所述矩阵Q分别更新为: p i k = p i k + l r * ▿ p i k L o s s ; q k j = p k j + l r * ▿ p k j L o s s ; 其中lr为常数。
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,还包括:迭代模块,适于:触发所述W预测计算模块计算W预测=P*Q,且触发所述损失函数误差计算模块根据W预测和wij计算损失函数误差Loss、触发所述梯度方向信息计算模块根据所述损失函数误差Loss计算所述矩阵P和所述矩阵Q的梯度方向信息、触发所述更新模块根据所述矩阵P和所述矩阵Q的梯度方向信息更新所述矩阵P和所述矩阵Q;当所述损失函数误差Loss小于预先设定的误差收敛值时,所述迭代模块停止迭代,获得优化后的所述第一线性层的权重矩阵P’和优化后的所述第二线性层的权重矩阵Q’;分解模块,适于将所述权重矩阵W分解为所述第一线性层和所述第二线性层。
根据本发明的上述任一实施方式中的用于深度学习模型的矩阵压缩装置,还包括:第二优化模块,适于通过深度神经网模型训练的反向处理过程对所述权重矩阵P’和所述权重矩阵Q’进行迭代优化处理,以获得第二优化后的权重矩阵P”和第二优化后的权重矩阵Q”,分别作为所述第一线性层和所述第二线性层的权重矩阵。
根据本发明实施方式的用于深度学习模型的矩阵压缩方法和装置,通过根据权重矩阵W的元素的绝对值来计算K值,能够根据权重矩阵W的自身特征自适应地选择扩展中间节点的个数,即K值,而非人工选择中间节点的个数,从而能够显著优化深度学习模型的参数,提高深度学习模型的可靠性和准确性;且通过计算权重矩阵W的稀疏截断因子w截断并统计权重矩阵W的元素wij的绝对值小于所述稀疏截断因子w截断的元素个数N稀疏,来计算K值,考虑了权重矩阵W的稀疏性,有效地压缩了深度学习模型,减少了运算量,提高了运算效率,同时保证深度学习模型的准确性和可靠性。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的用于深度学习模型的矩阵压缩方法的流程示意图;
图2示意性地示出了根据本发明实施方式的用于深度学习模型的矩阵压缩装置的示意图;
图3示意性地示出了根据本发明另一实施方式的用于深度学习模型的矩阵压缩装置的示意图;以及
图4示意性地示出了根据本发明另一实施方式的用于深度学习模型的矩阵压缩的程序产品。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种用于深度学习模型的矩阵压缩方法和装置。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,在深度学习模型中,最后一层线性层连接M个隐节点和N个分类节点,且权重矩阵为W。通过根据权重矩阵W的元素的绝对值来计算K值,能够根据权重矩阵W的自身特征自适应地选择扩展中间节点的个数,即K值,而非人工选择中间节点的个数,从而能够显著优化深度学习模型的参数,提高深度学习模型的可靠性和准确性;且通过计算权重矩阵W的稀疏截断因子w截断并统计权重矩阵W的元素wij的绝对值小于所述稀疏截断因子w截断的元素个数N稀疏,来计算K值,考虑了权重矩阵W的稀疏性,有效地压缩了深度学习模型,减少了运算量,提高了运算效率,同时保证深度学习模型的准确性和可靠性。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面参考图1来描述根据本发明示例性实施方式的用于深度学习模型的矩阵压缩方法方法。
图1示意性地示出了根据本发明实施方式的用于深度学习模型的矩阵压缩方法100的流程示意图。其中所述深度学习模型的最后一层线性层连接M个隐节点和N个分类节点,所述最后一层线性层的权重矩阵 W = w 11 w 1 N ... w M 1 w M N .
如图1所示,该方法100可以包括:步骤S101:根据所述权重矩阵W的元素的绝对值,计算K值。
通过根据权重矩阵W的元素的绝对值来计算K值,能够根据权重矩阵W的自身特征自适应地选择扩展中间节点的个数,即K值,而非人工选择中间节点的个数,从而能够显著优化深度学习模型的参数,提高深度学习模型的可靠性和准确性。
在一些可能的实施方式中,所述步骤S101包括:步骤S101a:统计所述权重矩阵W的元素wij的绝对值小于预设稀疏截断因子w截断的元素个数N稀疏;步骤S101b:根据N稀疏,计算K值。
如前所述,在深度学习模型中,通常权重矩阵中很多元素值较小,甚至接近于0,反映了很多节点之间并没有强的反馈关系。根据本发明的示例性实施例,方法100通过统计权重矩阵W的元素wij的绝对值小于预设稀疏截断因子w截断的元素个数N稀疏,来计算K值,由于一般而言,绝对值接近于0的权重矩阵W的元素wij数目越多,该权重矩阵W就越稀疏,因此上述处理考虑了权重矩阵W的稀疏性,有效地压缩了深度学习模型,减少了运算量,提高了运算效率,同时保证深度学习模型的准确性和可靠性。
在一些可能的实施方式中,步骤101a包括:通过等式w截断=k12+μ计算所述稀疏截断因子w截断,其中k1为正的常数。在一些可能的实施方式中,其中,σ2为所述权重矩阵的元素的方差,μ为所述权重矩阵的元素的均值;权重矩阵W的方差σ2是衡量权重矩阵W中元素的离散程度的参数,均值μ是反映权重矩阵W中元素的集中趋势的参数,因此,通过根据权重矩阵W的方差σ2和均值μ来计算K值,能够根据权重矩阵W的自身特征更准确地自适应选择扩展中间节点的个数,从而进一步优化深度学习模型的参数,提高深度学习模型的可靠性和准确性。可选地,稀疏截断因子w截断也可以根据权重矩阵W的其他参数值而预先设定,还可以根据实验结果选择预设的常数作为稀疏截断因子w截断
在一些可能的实施方式中,步骤S101b包括:通过等式K=k2*(M*N-N稀疏)/(M+N),计算K值,其中k2为正的常数。可选的,也可以通过其他的公式,使用N稀疏来计算K值,只要N稀疏与K值成反向变化关系,就可以一定程度上满足本发明的技术原理:即N稀疏越大,表明权重矩阵的元素绝对值中接近于0的数目越多,该权重矩阵相对而言就越稀疏,那么K值就可以越小,从而可以在符合该权重矩阵稀疏特性的情况下,对权重矩阵进行更大程度的压缩。
如图1所示,方法100还包括:步骤S102:将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵 P = p 11 p 1 K ... p M 1 p M K , 所述第二线性层的权重矩阵为K*N的矩阵 Q = q 11 q 1 N ... q K 1 q K N , 所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。
在一些可能的实施方式中,方法100还包括:步骤S103:对所述矩阵P和所述矩阵Q进行优化处理。
在一些可能的实施方式中,所述步骤S103包括:采用随机梯度下降算法对所述矩阵P和所述矩阵Q进行优化处理,包括:
步骤S103a:对所述矩阵P和所述矩阵Q的元素赋予服从高斯分布的随机初始值,其中所述矩阵P和所述矩阵Q的元素的随机初始值的均值均为0、且方差均为1;
步骤S103b:计算W预测=P*Q,且步骤S103c:根据W预测和wij,计算损失函数误差Loss;步骤S103d:根据所述损失函数误差Loss,计算所述矩阵P和所述矩阵Q的梯度方向信息;
步骤S103e:根据所述矩阵P和所述矩阵Q的梯度方向信息,更新所述矩阵P和所述矩阵Q。
在一些可能的实施方式中,步骤S103c包括:通过以下等式计算损失函数误差Loss:
Loss=Loss1+λLoss2,λ为正的常数,
在一些可能的实施方式中,步骤S103d包括:通过以下等式计算所述矩阵P的梯度方向信息:
且|wij预测|<w截断
且wij预测≥w截断
且wij预测≤-w截断
通过以下等式计算所述矩阵Q的梯度方向信息:
且|wij预测|<w截断
且wij预测≥w截断
且wij预测≤-w截断
在一些可能的实施方式中,步骤S103e包括:将所述矩阵P和所述矩阵Q分别更新为:
p i k = p i k + l r * ▿ p i k L o s s ;
q k j = p k j + l r * ▿ p k j L o s s ; 其中lr为常数。
在一些可能的实施方式中,方法100还包括:重复步骤S103b至步骤S103e;当所述损失函数误差Loss小于预先设定的误差收敛值时,停止迭代,获得优化后的所述第一线性层的权重矩阵P’和优化后的所述第二线性层的权重矩阵Q’;将所述权重矩阵W分解为所述第一线性层和所述第二线性层。可选地,误差收敛值可根据需要、基于计算时间、计算量、可能允许的准确度要求等因素来设定。
在一些可能的实施方式中,方法100还包括:步骤S104:通过深度神经网模型训练的反向处理过程对所述权重矩阵P’和所述权重矩阵Q’进行迭代优化处理,以获得第二优化后的权重矩阵P”和第二优化后的权重矩阵Q”,分别作为所述第一线性层和所述第二线性层的权重矩阵。通过反向处理过程,对权重矩阵P’和所述权重矩阵Q’进行迭代优化处理,进一步提高了深度学习模型的准确性和可靠性。
这样,根据本发明实施方式的用于深度学习模型的矩阵压缩方法,通过根据权重矩阵W的元素的绝对值来计算K值,能够根据权重矩阵W的自身特征自适应地选择扩展中间节点的个数,即K值,而非人工选择中间节点的个数,从而能够显著优化深度学习模型的参数,提高深度学习模型的可靠性和准确性;且通过统计权重矩阵W的元素wij的绝对值小于预设稀疏截断因子w截断的元素个数N稀疏,来计算K值,考虑了权重矩阵W的稀疏性,有效地压缩了深度学习模型,减少了运算量,提高了运算效率,同时保证深度学习模型的准确性和可靠性。
示例性设备
在介绍了本发明示例性实施方式的方法之后,接下来,参考图2,对本发明示例性实施方式的用于深度学习模型的矩阵压缩装置进行描述。
图2示意性地示出了根据本发明实施方式的用于深度学习模型的矩阵压缩200的示意图,其中所述深度学习模型的最后一层线性层连接M个隐节点和N个分类节点,所述最后一层线性层的权重矩阵 W = w 11 w 1 N ... w M 1 w M N .
如图2所示,该装置200可以包括:K值计算模块201和压缩模块202。
在装置200中,所述K值计算模块201适于:根据所述权重矩阵W的元素的绝对值,计算K值。
通过根据权重矩阵W的元素的绝对值来计算K值,装置200能够根据权重矩阵W的自身特征自适应地选择扩展中间节点的个数,即K值,而非人工选择中间节点的个数,从而能够显著优化深度学习模型的参数,提高深度学习模型的可靠性和准确性。
在一些可能的实施方式中,所述K值计算模块201包括:元素统计模块201a,适于统计所述权重矩阵W的元素wij的绝对值小于预设稀疏截断因子w截断的元素个数N稀疏;K值计算子模块201b,适于根据N稀疏,计算K值。
如前所述,在深度学习模型中,通常权重矩阵中很多元素值较小,甚至接近于0,反映了很多节点之间并没有强的反馈关系。根据本发明的示例性实施例,装置200通过由元素统计模块201a统计权重矩阵W的元素wij的绝对值小于预设稀疏截断因子w截断的元素个数N稀疏,且由K值计算子模块201b来计算K值,考虑了权重矩阵W的稀疏性,有效地压缩了深度学习模型,减少了运算量,提高了运算效率,同时保证深度学习模型的准确性和可靠性。
在一些可能的实施方式中,其中元素统计模块201a适于:通过等式w截断=k12+μ计算所述稀疏截断因子w截断,其中k1为正的常数。在一些可能的实施方式中,其中,σ2为所述权重矩阵的元素的方差,μ为所述权重矩阵的元素的均值;权重矩阵W的方差σ2是衡量权重矩阵W中元素的离散程度的参数,均值μ是反映权重矩阵W中元素的集中趋势的参数,因此,元素统计模块201a通过根据权重矩阵W的方差σ2和均值μ来计算K值,能够根据权重矩阵W的自身特征更准确地自适应选择扩展中间节点的个数,从而进一步优化深度学习模型的参数,提高深度学习模型的可靠性和准确性。可选地,稀疏截断因子w截断也可以根据权重矩阵W的其他参数值而预先设定,还可以根据实验结果选择预设的常数作为稀疏截断因子w截断
在一些可能的实施方式中,其中K值计算子模块201b适于:通过等式K=k2*(M*N-N稀疏)/(M+N),计算K值,其中k2为正的常数;可选的,也可以通过其他的公式,使用N稀疏来计算K值,只要N稀疏与K值成反向变化关系,就可以一定程度上满足本发明的技术原理。
如图2所示,装置200还包括:压缩模块202,适于将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵 P = p 11 p 1 K ... p M 1 p M K , 所述第二线性层的权重矩阵为K*N的矩阵 Q = q 11 q 1 N ... q K 1 q K N , 所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。
在一些可能的实施方式中,装置200还包括:第一优化模块203,适于对所述矩阵P和所述矩阵Q进行优化处理。
在一些可能的实施方式中,第一优化模块203适于:采用随机梯度下降算法对所述矩阵P和所述矩阵Q进行优化处理,包括:
赋值模块203a,适于对所述矩阵P和所述矩阵Q的元素赋予服从高斯分布的随机初始值,其中所述矩阵P和所述矩阵Q的元素的随机初始值的均值均为0、且方差均为1;
W预测计算模块203b,适于计算W预测=P*Q,且
损失函数误差计算模块203c,适于根据W预测和wij,计算损失函数误差Loss;
梯度方向信息计算模块203d,适于根据所述损失函数误差Loss,计算所述矩阵P和所述矩阵Q的梯度方向信息;
更新模块203e,适于根据所述矩阵P和所述矩阵Q的梯度方向信息,更新所述矩阵P和所述矩阵Q。
在一些可能的实施方式中,损失函数误差计算模块203c适于:通过以下等式计算损失函数误差Loss:
Loss=Loss1+λLoss2,λ为正的常数,
在一些可能的实施方式中,梯度方向信息计算模块203d适于:通过以下等式计算所述矩阵P的梯度方向信息:
且|wij预测|<w截断
且wij预测≥w截断
且wij预测≤-w截断
通过以下等式计算所述矩阵Q的梯度方向信息:
且|wij预测|<w截断
且wij预测≥w截断
且wij预测≤-w截断
在一些可能的实施方式中,更新模块203e适于:将所述矩阵P和所述矩阵Q分别更新为:
p i k = p i k + l r * ▿ p i k L o s s ;
q k j = p k j + l r * ▿ p k j L o s s ; 其中lr为常数。
在一些可能的实施方式中,装置200还包括:迭代模块204,适于触发所述W预测计算模块计算W预测=P*Q,且触发所述损失函数误差计算模块根据W预测和wij计算损失函数误差Loss、触发所述梯度方向信息计算模块根据所述损失函数误差Loss计算所述矩阵P和所述矩阵Q的梯度方向信息、触发所述更新模块根据所述矩阵P和所述矩阵Q的梯度方向信息更新所述矩阵P和所述矩阵Q;当所述损失函数误差Loss小于预先设定的误差收敛值时,所述迭代模块停止迭代,获得优化后的所述第一线性层的权重矩阵P’和优化后的所述第二线性层的权重矩阵Q’;以及分解模块205,适于将所述权重矩阵W分解为所述第一线性层和所述第二线性层。可选地,误差收敛值可根据需要、基于计算时间、计算量、可能允许的准确度要求等因素来设定。
在一些可能的实施方式中,装置200还包括:第二优化模块206,适于通过深度神经网模型训练的反向处理过程对所述权重矩阵P’和所述权重矩阵Q’进行迭代优化处理,以获得第二优化后的权重矩阵P”和第二优化后的权重矩阵Q”,分别作为所述第一线性层和所述第二线性层的权重矩阵。通过反向处理过程,对权重矩阵P’和所述权重矩阵Q’进行迭代优化处理,进一步提高了深度学习模型的准确性和可靠性。
这样,根据本发明实施方式的用于深度学习模型的矩阵压缩装置,通过根据权重矩阵W的元素的绝对值来计算K值,能够根据权重矩阵W的自身特征自适应地选择扩展中间节点的个数,即K值,而非人工选择中间节点的个数,从而能够显著优化深度学习模型的参数,提高深度学习模型的可靠性和准确性;且通过统计权重矩阵W的元素wij的绝对值小于预设稀疏截断因子w截断的元素个数N稀疏,来计算K值,考虑了权重矩阵W的稀疏性,有效地压缩了深度学习模型,减少了运算量,提高了运算效率,同时保证深度学习模型的准确性和可靠性。
示例性设备
在介绍了本发明示例性实施方式的方法和***之后,接下来,介绍根据本发明的另一示例性实施方式的用于深度学习模型的矩阵压缩装置。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,根据本发明的用于深度学习模型的矩阵压缩装置可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于深度学习模型的矩阵压缩方法中的步骤。例如,所述处理单元可以执行如图1中所示的步骤S101:根据所述权重矩阵W的元素的绝对值,计算K值;以及步骤S102:将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵 P = p 11 p 1 K ... p M 1 p M K , 所述第二线性层的权重矩阵为K*N的矩阵 Q = q 11 q 1 N ... q K 1 q K N , 所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。
下面参照图3来描述根据本发明的这种实施方式的用于深度学习模型的矩阵压缩装置10。图3显示的用于深度学习模型的矩阵压缩装置10仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,用于深度学习模型的矩阵压缩装置10以通用计算设备的形式表现。用于深度学习模型的矩阵压缩装置10的组件可以包括但不限于:上述至少一个处理单元16、上述至少一个存储单元28、连接不同***组件(包括存储单元28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、***总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元28可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32,还可以进一步只读存储器(ROM)34。
存储单元28还可以包括具有一组(至少一个)程序模块42的程序/实用工具40,这样的程序模块42包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
用于深度学习模型的矩阵压缩装置10也可以与一个或多个外部设备14(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得联系人能与用于深度学习模型的矩阵压缩装置10交互的设备通信,和/或与使得该用于深度学习模型的矩阵压缩装置10能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,用于深度学习模型的矩阵压缩装置10还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与用于深度学习模型的矩阵压缩装置10的其它模块通信。应当明白,尽管图中未示出,可以结合用于深度学习模型的矩阵压缩装置10使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
示例性程序产品
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在***上运行时,所述程序代码用于使所述***执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的用于深度学习模型的矩阵压缩方法中的步骤,例如,所述***可以执行如图1中所示的步骤S101:根据所述权重矩阵W的元素的绝对值,计算K值;以及步骤S102:将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵 P = p 11 p 1 K ... p M 1 p M K , 所述第二线性层的权重矩阵为K*N的矩阵 Q = q 11 q 1 N ... q K 1 q K N , 所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图4所示,描述了根据本发明的实施方式的用于深度学习模型的矩阵压缩的程序产品90,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在联系人计算设备上执行、部分地在联系人设备上执行、作为一个独立的软件包执行、部分在联系人计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到联系人计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于深度学习模型的矩阵压缩的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (12)

1.一种用于深度学习模型的矩阵压缩方法,其中所述深度学习模型的最后一层线性层连接M个隐节点和N个分类节点,所述最后一层线性层的权重矩阵 W = w 11 w 1 N ... w M 1 w M N , 所述方法包括:
步骤S101:根据所述权重矩阵W的元素的绝对值,计算K值;以及
步骤S102:将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵 P = p 11 p 1 K ... p M 1 p M K , 所述第二线性层的权重矩阵为K*N的矩阵 Q = q 11 q 1 N ... q K 1 q K N , 所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。
2.根据权利要求1所述的方法,其中所述步骤S101包括:
步骤S101a:统计所述权重矩阵W的元素wij的绝对值小于预设稀疏截断因子w截断的元素个数N稀疏
步骤S101b:根据N稀疏,计算K值。
3.根据权利要求2所述的方法,其中所述步骤101a包括:
通过等式w截断=k12+μ计算所述稀疏截断因子w截断,其中k1为正的常数,σ2为所述权重矩阵的元素的方差,μ为所述权重矩阵的元素的均值。
4.根据权利要求3所述的方法,其中所述步骤S101b包括:
通过等式K=k2*(M*N-N稀疏)/(M+N),计算K值,其中k2为正的常数。
5.根据权利要求4所述的方法,还包括:
步骤S103:对所述矩阵P和所述矩阵Q进行优化处理。
6.根据权利要求5所述的方法,其中所述步骤S103包括:采用随机梯度下降算法对所述矩阵P和所述矩阵Q进行优化处理,包括:
步骤S103a:对所述矩阵P和所述矩阵Q的元素赋予服从高斯分布的随机初始值,其中所述矩阵P和所述矩阵Q的元素的随机初始值的均值均为0、且方差均为1;
步骤S103b:计算W预测=P*Q,且
步骤S103c:根据W预测和wij,计算损失函数误差Loss;
步骤S103d:根据所述损失函数误差Loss,计算所述矩阵P和所述矩阵Q的梯度方向信息;
步骤S103e:根据所述矩阵P和所述矩阵Q的梯度方向信息,更新所述矩阵P和所述矩阵Q。
7.根据权利要求6所述的方法,其中步骤S103c包括:
通过以下等式计算损失函数误差Loss:
Loss=Loss1+λLoss2,λ为正的常数,
8.根据权利要求7所述的方法,其中步骤S103d包括:
通过以下等式计算所述矩阵P的梯度方向信息:
通过以下等式计算所述矩阵Q的梯度方向信息:
9.根据权利要求8所述的方法,其中步骤S103e包括:
将所述矩阵P和所述矩阵Q分别更新为:
p i k = p i k + l r * ▿ p i k L o s s ; q k j = p k j + l r * ▿ p k j L o s s ; 其中lr为常数。
10.根据权利要求6所述的方法,还包括:
重复步骤S103b至步骤S103e;
当所述损失函数误差Loss小于预先设定的误差收敛值时,停止迭代,获得优化后的所述第一线性层的权重矩阵P’和优化后的所述第二线性层的权重矩阵Q’;
将所述权重矩阵W分解为所述第一线性层和所述第二线性层。
11.根据权利要求10所述的方法,还包括:
步骤S104:通过深度神经网模型训练的反向处理过程对所述权重矩阵P’和所述权重矩阵Q’进行迭代优化处理,以获得第二优化后的权重矩阵P”和第二优化后的权重矩阵Q”,分别作为所述第一线性层和所述第二线性层的权重矩阵。
12.一种用于深度学习模型的矩阵压缩装置,其中所述深度学习模型的最后一层线性层连接M个隐节点和N个分类节点,所述最后一层线性层的权重矩阵 W = w 11 w 1 N ... w M 1 w M N , 所述装置包括:
K值计算模块,适于根据所述权重矩阵的元素的绝对值,计算K值;以及
压缩模块,适于将所述最后一层线性层分解为第一线性层和第二线性层,其中所述第一线性层的权重矩阵为M*K的矩阵 P = p 11 p 1 K ... p M 1 p M K , 所述第二线性层的权重矩阵为K*N的矩阵 Q = q 11 q 1 N ... q K 1 q K N , 所述第一线性层的输出为所述第二线性层的输入,且M*N>K*(M+N),以将所述权重矩阵W压缩。
CN201510566639.0A 2015-09-08 2015-09-08 用于深度学习模型的矩阵压缩方法和装置 Pending CN105184369A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510566639.0A CN105184369A (zh) 2015-09-08 2015-09-08 用于深度学习模型的矩阵压缩方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510566639.0A CN105184369A (zh) 2015-09-08 2015-09-08 用于深度学习模型的矩阵压缩方法和装置

Publications (1)

Publication Number Publication Date
CN105184369A true CN105184369A (zh) 2015-12-23

Family

ID=54906432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510566639.0A Pending CN105184369A (zh) 2015-09-08 2015-09-08 用于深度学习模型的矩阵压缩方法和装置

Country Status (1)

Country Link
CN (1) CN105184369A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038476A (zh) * 2016-02-03 2017-08-11 谷歌公司 经压缩的递归神经网络模型
CN107145940A (zh) * 2016-03-01 2017-09-08 谷歌公司 压缩的递归神经网络模型
CN107239825A (zh) * 2016-08-22 2017-10-10 北京深鉴智能科技有限公司 考虑负载均衡的深度神经网络压缩方法
WO2017185257A1 (zh) * 2016-04-27 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行Adam梯度下降训练算法的装置及方法
CN108628807A (zh) * 2017-03-20 2018-10-09 北京百度网讯科技有限公司 浮点数矩阵的处理方法、装置、设备及计算机可读存储介质
CN108764487A (zh) * 2018-05-29 2018-11-06 北京百度网讯科技有限公司 用于生成模型的方法和装置、用于识别信息的方法和装置
CN109086819A (zh) * 2018-07-26 2018-12-25 北京京东尚科信息技术有限公司 caffemodel模型压缩方法、***、设备及介质
CN110119745A (zh) * 2019-04-03 2019-08-13 平安科技(深圳)有限公司 深度学习模型的压缩方法、装置、计算机设备及存储介质
CN112308197A (zh) * 2019-07-26 2021-02-02 杭州海康威视数字技术股份有限公司 一种卷积神经网络的压缩方法、装置及电子设备
CN107038476B (zh) * 2016-02-03 2024-08-02 谷歌有限责任公司 经压缩的递归神经网络模型

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810503A (zh) * 2013-12-26 2014-05-21 西北工业大学 一种基于深度学习的自然图像中显著区域的检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810503A (zh) * 2013-12-26 2014-05-21 西北工业大学 一种基于深度学习的自然图像中显著区域的检测方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038476A (zh) * 2016-02-03 2017-08-11 谷歌公司 经压缩的递归神经网络模型
CN107038476B (zh) * 2016-02-03 2024-08-02 谷歌有限责任公司 经压缩的递归神经网络模型
US11948062B2 (en) 2016-02-03 2024-04-02 Google Llc Compressed recurrent neural network models
US10878319B2 (en) * 2016-02-03 2020-12-29 Google Llc Compressed recurrent neural network models
CN107145940B (zh) * 2016-03-01 2021-02-12 谷歌有限责任公司 压缩的递归神经网络模型
CN107145940A (zh) * 2016-03-01 2017-09-08 谷歌公司 压缩的递归神经网络模型
WO2017185257A1 (zh) * 2016-04-27 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行Adam梯度下降训练算法的装置及方法
CN107239825A (zh) * 2016-08-22 2017-10-10 北京深鉴智能科技有限公司 考虑负载均衡的深度神经网络压缩方法
CN107239825B (zh) * 2016-08-22 2021-04-09 赛灵思电子科技(北京)有限公司 考虑负载均衡的深度神经网络压缩方法
CN108628807A (zh) * 2017-03-20 2018-10-09 北京百度网讯科技有限公司 浮点数矩阵的处理方法、装置、设备及计算机可读存储介质
CN108628807B (zh) * 2017-03-20 2022-11-25 北京百度网讯科技有限公司 浮点数矩阵的处理方法、装置、设备及计算机可读存储介质
US11210608B2 (en) 2018-05-29 2021-12-28 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for generating model, method and apparatus for recognizing information
CN108764487A (zh) * 2018-05-29 2018-11-06 北京百度网讯科技有限公司 用于生成模型的方法和装置、用于识别信息的方法和装置
CN109086819B (zh) * 2018-07-26 2023-12-05 北京京东尚科信息技术有限公司 caffemodel模型压缩方法、***、设备及介质
CN109086819A (zh) * 2018-07-26 2018-12-25 北京京东尚科信息技术有限公司 caffemodel模型压缩方法、***、设备及介质
CN110119745A (zh) * 2019-04-03 2019-08-13 平安科技(深圳)有限公司 深度学习模型的压缩方法、装置、计算机设备及存储介质
CN110119745B (zh) * 2019-04-03 2024-05-10 平安科技(深圳)有限公司 深度学习模型的压缩方法、装置、计算机设备及存储介质
CN112308197A (zh) * 2019-07-26 2021-02-02 杭州海康威视数字技术股份有限公司 一种卷积神经网络的压缩方法、装置及电子设备
CN112308197B (zh) * 2019-07-26 2024-04-09 杭州海康威视数字技术股份有限公司 一种卷积神经网络的压缩方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN105184369A (zh) 用于深度学习模型的矩阵压缩方法和装置
CN110880036B (zh) 神经网络压缩方法、装置、计算机设备及存储介质
US11704541B2 (en) Graph neural network systems for generating structured representations of objects
JP6889270B2 (ja) ニューラルネットワークアーキテクチャの最適化
CN110023963A (zh) 使用神经网络处理文本序列
CN111414987B (zh) 神经网络的训练方法、训练装置和电子设备
CN111523640B (zh) 神经网络模型的训练方法和装置
CN111753983B (zh) 神经网络模型的定制化方法、***、设备和存储介质
CN110852438A (zh) 模型生成方法和装置
CN105719001A (zh) 使用散列的神经网络中的大规模分类
CN110674279A (zh) 基于人工智能的问答处理方法、装置、设备及存储介质
CN113988464B (zh) 基于图神经网络的网络链路属性关系预测方法及设备
WO2020230658A1 (ja) 特徴抽出装置及び状態推定システム
US11521097B2 (en) Sparse modeling for optimizing sensor placement
CN105761102A (zh) 一种预测用户购买商品行为的方法和装置
CN111737406B (zh) 文本检索方法、装置及设备、文本检索模型的训练方法
CN114897173A (zh) 基于变分量子线路确定PageRank的方法及装置
CN115427968A (zh) 边缘计算设备中的鲁棒人工智能推理
CN115329876A (zh) 一种设备故障处理方法、装置、计算机设备及存储介质
CN107168760B (zh) 语言的变量检测方法和装置
EP4290419A1 (en) Quantum computer operating system, quantum computer, and readable storage medium
CN115222046A (zh) 神经网络结构搜索方法、装置、电子设备及存储介质
CN111090740B (zh) 一种用于对话***的知识图谱生成方法
CN110348581B (zh) 用户特征群中用户特征寻优方法、装置、介质及电子设备
CN111797220A (zh) 对话生成方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Chen Haibo

Inventor after: Li Xiaoyan

Inventor after: Liu Dong

Inventor after: Nie Yuan

Inventor before: Chen Haibo

Inventor before: Li Xiaoyan

COR Change of bibliographic data
RJ01 Rejection of invention patent application after publication

Application publication date: 20151223

RJ01 Rejection of invention patent application after publication