基于深度神经网络最小方差梯度量化压缩及图像处理方法转让专利

申请号 : CN201911029711.0

文献号 : CN110992432B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 符芳诚周跃崔斌聂小楠

申请人 : 北京大学

摘要 :

本发明公布了一种基于深度神经网络最小方差梯度量化压缩及图像处理方法,针对包含类别标签的有监督数据,采用深度神经网络中对梯度进行非均匀量化的网络压缩,使用韦伯分布族建模梯度分布,再通过搜索最优量化点求解量化方差最小化,使得量化误差最小,提高深度神经网络模型的收敛速度;该神经网络压缩方法用于图像分类处理,可提高图像处理效率。

权利要求 :

1.一种基于深度神经网络最小方差梯度量化压缩优化方法,针对包含类别标签的有监督数据,采用深度神经网络中对梯度进行非均匀量化的网络压缩,使用韦伯分布族建模梯度分布,再通过搜索最优量化点求解量化方差最小化,使得量化误差最小,提高深度神经网络模型的收敛速度;包括以下步骤:

1)将深度神经网络的训练集数据分批输入架构有深度神经网络模型的多个工作计算机上;

2)多个工作计算机分别利用本地的训练集数据对深度神经网络模型进行训练,并计算得出模型参数的训练梯度值;

3)使用以下方法对梯度值进行压缩:

31)首先建立梯度分布符合韦伯分布情况下插值参数k‑CV表,确定在不同的韦伯分布参数k情况下,CV函数的函数值,在第一次训练迭代前计算一次并常驻内存,迭代时直接调用; Γ为伽马函数;

32)计算梯度分布的均值μ和标准差σ,并求出真实梯度下的CV值:CV=σ/μ;

33)使用二分查找法查找31)中建立的k‑CV表,确定与真实梯度分布下的CV值最接近的表中的CV值,参数k和梯度分布函数;

34)计算量化点区间;

求解量化点 其中,M=3σ;λ和k为步骤33)中的韦伯分布参数,λ=μ/Γ(1+1/k);量化点区间分别为{‑||g||∞,‑s,0,s,||g||∞},其中||g||∞代表梯度分布的∞‑范数,即梯度分布元素的绝对值的最大值;

35)按照以下方法循环计算梯度分布各元素的量化之后的梯度值:其中,gi表示原梯度元素值, 表示量化之后的元素值,[st,st+1]表示步骤34)中求解的量化点区间;

4)每个工作计算机将量化之后的梯度值通过网络传递给参数服务器;参数服务器得出最终梯度值,并传输给每个工作计算机;

5)工作计算机收到最终梯度值后,对模型参数进行更新;

6)完成一轮迭代,并重复步骤2)~5)步进入下一次迭代,直到迭代停止,由此得到模型参数并训练好的深度神经网络模型;

7)将待处理的数据集输入工作计算机中;

8)工作计算机将输入的数据集填入步骤6)得到的训练好的深度神经网络模型中进行计算,输出即为处理结果;

通过上述步骤,实现基于深度神经网络最小方差梯度量化压缩优化并采用优化的深度神经网络进行数据处理。

2.如权利要求1所述基于深度神经网络最小方差梯度量化压缩优化方法,其特征是,所述包含类别标签的有监督数据为用于做图像分类的图像数据;将所述基于深度神经网络最小方差梯度量化压缩优化方法应用于图像分类处理。

3.如权利要求2所述基于深度神经网络最小方差梯度量化压缩优化方法,其特征是,步骤1)具体将用于做图像分类的图像训练集数据分批输入多个工作计算机;多个工作计算机分别利用本地的图像训练集对深度神经网络模型进行训练;模型参数包括:卷积层的卷积核参数、全连接层的权重和偏置。

4.如权利要求2所述基于深度神经网络最小方差梯度量化压缩优化方法,其特征是,步骤6)得到训练好的图像分类模型,将待分类的图像数据集输入训练好的图像分类模型中,按照机器学习方法进行计算,得到图像的类别概率;再根据类别概率识别得到该图像的类别。

5.如权利要求1所述基于深度神经网络最小方差梯度量化压缩优化方法,其特征是,步骤31)中,参数k取值为0.1

6.如权利要求1所述基于深度神经网络最小方差梯度量化压缩优化方法,其特征是,步骤5)具体采用随机梯度下降方法对模型参数进行更新。

7.如权利要求1所述基于深度神经网络最小方差梯度量化压缩优化方法,其特征是,步骤34)中,通过如下公式计算得到量化点的值:其中, 为量化点的值;Γ为伽马函数;M=3σ。

8.如权利要求1所述基于深度神经网络最小方差梯度量化压缩优化方法,其特征是,深度神经网络具体采用ResNet34或VGG19模型。

9.如权利要求1所述基于深度神经网络最小方差梯度量化压缩优化方法,其特征是,训练数据集采用CIFAR10、CIFAR100或ImageNet图像数据集。

说明书 :

基于深度神经网络最小方差梯度量化压缩及图像处理方法

技术领域

[0001] 本发明属于信息处理技术领域,涉及深度学习及图像处理技术,尤其涉及一种基于深度神经网络领域最小方差梯度量化压缩优化方法及基于压缩优化的图像处理方法。

背景技术

[0002] 在图像处理技术领域,深度学习(Deep Learning,DL)给机器学习带来了革命性的变化,并在各种复杂任务上取得了显著的改进。近年来,随着图像处理大数据量的惊人增
长,许多研究人员致力于以分布式方式训练深度神经网络(DNNs)。在分布式训练下,普遍采
用数据并行随机梯度下降(SGD)的方法进行训练,训练实例分散在每个worker上,每个
worker基于自己的数据训练梯度,然后使用all reduce或参数服务器的方式聚合所有梯度
更新模型参数,更新后的参数发送回下一次迭代的所有worker。分布式深度学习虽然减少
了计算时间,但数据并行性需要相当大的通信开销。为此,基于gpu的大规模分布式深度学
习中降低通信开销的研究日益受到关注。在这个方向上,梯度量化是一种众所周知的方法,
通过将梯度量化为更少的比特数可以用来降低处理过程的通信成本。
[0003] 近年以来,DNNs领域显著的梯度量化工作是TernGrad和QSGD(①Wen,W.;Xu,C.;Yan,F.;Wu,C.;Wang,Y.;Chen,Y.;and Li,H.2017.Terngrad:Ternary gradients to 
reduce communication in distributed deep learning.In Advances in neural 
information processing systems,1509–1519.;②Alistarh,D.;Grubic,D.;Li,J.;
Tomioka,R.;and Vojnovic,M.2017.Qsgd:Communication‑efficient sgd via gradient 
quantization and encoding.In Advances in Neural Information Processing 
Systems,1709–1720.)。Terngrad利用无偏性证明了梯度量化方法的收敛性。然而,它只考
虑一个很少的量化级别n=2。在实际应用中,需要获得理想的收敛性,例如梯度裁剪和不量
化最后一个全连接层,但这会损害压缩比。上述方法还使用了更多的量化级别,考虑了量化
级别和收敛性之间的权衡,但该方法只关注了均匀量化。因此,现有方法大多采用均匀量化
机制,对梯度值进行均匀量化。这样的方案可导致较大的量化方差,在实际应用中减慢收敛
速度,使得图像处理效率不高。

发明内容

[0004] 为了克服上述现有技术的不足,本发明提供一种基于深度神经网络最小方差梯度量化压缩优化方法及基于压缩优化的图像处理(图像分类)方法,采用非均匀量化方法,以
合理的先验值逼近梯度分布,根据梯度的分布找到量化方差最小的最优量化点,利用分布
特性实现理论上的最优量化方差。在相同的压缩水平下,本发明方法能获得较低的量化方
差,且收敛速度快于均匀量化方法,与全精度训练算法具有相似的收敛性能,将上述神经网
络压缩方法用于图像分类处理,可提高图像处理效率。
[0005] 以下为本发明的术语及相应说明:
[0006] 梯度下降(GD):梯度下降是迭代法的一种,可以用于求解最小二乘问题。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用
T
的方法之一。假设目标函数f: 的输入是一个多维向量x=[x1,x2,…,xd] ,目标函数
f(x)有关x的梯度是一个由偏导数组成的向量 为了最小化f(x),可以通过梯度下降算
法来不断降低目标函数f的值: 其中η:学习率。
[0007] 随机梯度下降(SGD):随机梯度下降在计算下降最快的方向时随机选一个数据进行计算,而不是扫描全部训练数据集,这样就加快了迭代速度,比较适用于数据集较大的情
况。
[0008] 方差:概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。2
设X是一个随机变量,若E{[X‑E(X)] }存在,则称其为X的方差,记为D(X),即:D(X)=E{[X‑E
2
(X)]}。
[0009] 韦伯分布(Weibull distribution):韦伯分布是连续性的概率分布,它的累积分布函数是扩展的指数分布函数,其概率密度为:
[0010]
[0011] 其中,x是随机变量,λ>0是比例参数(scale parameter),k>0是形状参数(shape parameter)。
[0012] 伽马函数(Gamma Function):通常写成Γ(x),在实数域上伽马函数通常定义为:
[0013]
[0014] 使用伽马函数来表示韦伯分布的均值和方差分别如下:
[0015] 均值:E=λΓ(1+1/k),方差为: 而标准差是方差的算术平方根。
[0016] 本发明的技术方案是:
[0017] 一种基于深度神经网络最小方差梯度量化压缩优化方法MVQsgd,及将该压缩优化方法应用于图像处理的方法,可针对用于做图像分类的图像数据(一般是含有或部分含有
类别标签的有监督图像数据),采用深度神经网络中对梯度进行非均匀量化的网络压缩方
法MVQsgd:Minimum Variance Quantization stochastic gradient descent,使得量化误
差最小,提高深度神经网络模型的收敛速度,将上述神经网络压缩方法用于图像分类处理,
可提高图像处理效率。
[0018] 在本发明中使用韦伯分布族来建模梯度分布,尔后将搜索最优量化点(使量化方差最小化)作为一个优化问题来求解,并导出该问题的一般解。
[0019] 本发明的方法包括以下步骤:
[0020] 1)将深度神经网络的训练集数据(如用于做图像分类的图像)分批输入架构有深度神经网络模型的多个工作计算机上;
[0021] 2)多个工作计算机分别利用本地的图像训练集对深度神经网络模型进行训练,并计算得出模型参数(如卷积层的卷积核参数、全连接层的权重以及偏置等参数)的训练梯度
值;
[0022] 3)为降低梯度值传输通信开销,使用以下方法对梯度值进行压缩;
[0023] 31)首先建立梯度分布符合韦伯分布情况下插值参数k‑CV(k:shape parameter形状参数;CV:Coefficient of Variation变化系数,其值为该分布的标准差除以期望)表,确
定在不同的参数k(0.1of Variation变化系数)函数的函数值 便于对比计
算。此步骤在第一次训练迭代前计算一次并常驻内存即可,后续迭代时直接调用,不用重复
计算;
[0024] 32)对给定的梯度分布,计算均值μ和标准差σ,据此求出真实梯度下的CV值:CV=σ/μ;
[0025] 33)使用二分查找法查找31)中建立的k‑CV表,确定与真实梯度分布下的CV值最接近的表中的CV值,进而确定参数k以及梯度分布函数等;
[0026] 34)计算量化点。
[0027] 求解量化点 其中:M=3σ,σ为32)中求解出来的梯度分布标准差,λ和k为步骤33)中确定的韦伯分布参数,λ=μ/Γ(1+1/k)。据此,量化点区间分别为{‑||
g||∞,‑s,0,s,||g||∞},其中||g||∞代表梯度分布的∞‑范数,即梯度分布元素的绝对值的
最大值;
[0028] 35)按照以下方法循环计算梯度分布各元素的量化之后的梯度值,其中gi表示原梯度元素值, 表示量化之后的元素值,[st,st+1]表示34)中求解的量化点区间,
[0029]
[0030] 4)每个工作计算机将量化之后的梯度值通过网络传递给参数服务器。参数服务器使用平均值的方法得出最终的梯度值,并传输给每个工作计算机;
[0031] 5)工作计算机收到最终的梯度值后,按照随机梯度下降(SGD)的一般方法对模型参数进行更新;
[0032] 6)完成一轮迭代,并重复第2‑5步进入下一次迭代,直到达到停止条件(一般是误差小于特定值或者达到特定迭代轮数,如:交叉熵损失函数值<0.0001或迭代达到10000
次)。前6步为模型的训练过程,经过前6步的训练,得到了模型的最终参数并建立了最终的
图像分类模型。使用本模型对图像进行分类时,应按照以下步骤进行:
[0033] 7)将需要分类的图像(称之为:测试集)输入工作计算机中;
[0034] 8)工作计算机将输入的图像填入训练完成的最终模型中,按照机器学习的基本理论对模型进行运算,计算得出该图像分属某一类别的概率(如对于一个三分类的图像分类
问题:类别1:0.1、类别2:0.2、类别3:0.7);
[0035] 9)根据最终的类别概率确定该图像的类别(如上例中该图像应属于概率最大的类别3)。
[0036] 通过上述步骤,实现了基于深度神经网络最小方差梯度量化压缩的图像分类处理。
[0037] 与现有技术相比,本发明的有益效果是:
[0038] 本发明提供一种基于深度神经网络最小方差梯度量化压缩的图像处理(图像分类)方法,采用非均匀量化方法,以合理的先验值逼近梯度分布,根据梯度的分布找到量化
方差最小的最优量化点,利用分布特性实现理论上的最优量化方差。在相同的压缩水平下,
本发明方法能获得较低的量化方差,进而在训练时收敛速度快于均匀量化方法,与全精度
训练算法具有相似的收敛性能,将上述神经网络压缩方法用于图像分类处理,可提高图像
处理效率。

附图说明

[0039] 图1是本发明方法中的网络结构框图。
[0040] 图2是本发明提供方法的流程框图。
[0041] 图3是本发明实施例中三种分布的KL散度在ResNet34上的性能表现示意图;三种分布分别是韦伯分布、拉普拉斯分布、高斯分布。

具体实施方式

[0042] 下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
[0043] 本发明实施例提供的梯度非均匀量化算法可应用于图1所示的系统中,用户Client通过调用接口将计算任务发送给主节点Master,主节点Master通过与多个计算节点
Worker通信进而组成分布式机器学习系统。其中主节点Master提供数据和参数矩阵的分片
和分发,资源申请,管理和监控任务运行状态等功能;参数服务器Parameter Server负责存
储和更新参数,可以通过增加机器水平扩展,以容纳更多参数;计算节点Worker负责具体的
模型训练或者结果预测,包含一个或者多个任务Task,Task之间共享Worker的资源,所有计
算节点对当前拥有的数据集进行计算,并将计算结果返回主节点Master。主节点Master根
据所有计算节点的计算结果,更新全局变量并将全局变量向所有计算节点进行广播。各计
算节点收到全局变量以后根据全局变量完成对模型中相应维度进行参数更新。
[0044] 本发明实施例提供的系统计算步骤如下所示,具体见图2所示:
[0045] 步骤1,用户节点启动参数服务器及其它系统;
[0046] 步骤2,计算节点分别建立模型或通过网络通信从参数服务器拉取事先建立好的模型(如VGG19);
[0047] 步骤3,启动进程执行任务task;
[0048] 步骤4,将图像分类数据集(训练集)分批装载进各个计算节点;
[0049] 步骤5,计算节点Worker初始化模型参数或者从参数服务器拉取已初始化好的模型参数(如卷积层的卷积核参数、全连接层的权重以及偏置等参数);
[0050] 步骤6,按照深度学习以及人工神经网络基本理论,计算节点将图像输入模型之中,求解计算损失函数以及每个参数相对应的梯度值;
[0051] 步骤7,每个计算节点将步骤6求解出来的梯度值均通过网络传递给参数服务器,参数服务器按照平均值方法计算最终梯度值,并传递给各个计算节点;步骤8,重复步骤6、
7,直到达到停止条件(一般是误差小于特定值或者达到特定迭代轮数);
[0052] 步骤9,模型训练完成后,保存训练模型。
[0053] 按照以上的分布式深度学习基本步骤,本实施例说明的机器学习系统可运用于图像分类等训练任务中,具体来说,可以运用于CIFAR10、CIFAR100、ImageNet等图像数据集的
训练,以下选取CIFAR10数据集运用VGG19模型进行训练来说明具体运用方式。VGG19模型为
由文献(Very Deep Convolutional Networks for Large‑Scale Image Recognition,
Karen Simonyan and Andrew Zisserman,ICLR 2015)中提出的共19层的深度神经网络模
型。
[0054] 步骤1,将VGG19模型装载进参数服务器,启动训练任务,各个计算节点从读取CIFAR10数据集;
[0055] 步骤2,各计算节点对数据集分别进行训练,训练结束后生成梯度等参数信息,根据本文“发明内容”中“步骤A:梯度分布的拟合和步骤B:量化点的计算”的说明,首先拟合出
各个计算节点的梯度值大致分布情况,而后计算出需要的量化点,并将量化点矩阵作为最
终的梯度值传递给参数服务器进行计算。
[0056] 步骤3,参数服务器使用均值法计算出最终梯度值后,传递给各个计算节点更新模型参数,进行迭代训练。
[0057] 步骤4,使用训练好的VGG19模型,对图像进行分类,包括:
[0058] 步骤41,将待分类数据集(测试集)输入计算节点,计算节点将测试集输入VGG19模型之中;
[0059] 步骤42,VGG19模型根据输入的测试集计算分属每个图像类别的概率;
[0060] 步骤43,取最大的概率所在的类别作为该图像的分类类别,输入最终结果。
[0061] 梯度分布的拟合算法的伪代码如下:
[0062] 输入:梯度张量g
[0063] 输出:合适的梯度分布
[0064] A1.函数:初始化CV表(步进大小delta=0.001)
[0065]
[0066] A2.函数:查表(梯度表stat,CV表T)
[0067] 1:μ=stat表的均值,σ=stat表的标准差
[0068] 2:求出CV=σ/μ
[0069] 3:使用二分查找法查找表T中的元素使得(CV‑CV′)绝对值最小
[0070] 4:求出:λ′=μ/Γ(1+1/k′)
[0071] 5:返回
[0072] A3.如果CV表没有初始化,则执行函数A1:初始化CV表
[0073] A4.将梯度g按照桶大小为d分成t个桶:b1,b2,…,bt
[0074] A5.对于第i个桶(i为1到t)执行以下循环:
[0075] 所有正值梯度bi.pos_stat执行函数A2:查表,返回值为posi;
[0076] 所有负值梯度bi.neg_stat执行函数A2:查表,返回值为negi;
[0077] A6:得到k‑λ结果对:,,…,
[0078] B:量化点的计算(考虑实践应用,本发明着重讨论了n=4的量化点情况)
[0079] 根据公式求解得出n=4时的量化点值
[0080] 其中,M=3σ通过本发明所提供的非均匀梯度量化算法,降低了梯度压缩的方差,加快了模型收敛速度。
[0081] 下面从梯度压缩使用分布的合理性以及具体压缩效果与其它压缩方法进行对比的角度进行分析如下:
[0082] (一)使用韦伯分布的合理性分析实例。
[0083] 梯度的分布对获得最小方差至关重要,为了确保可实践性,在每一次迭代中可以计算梯度的一些统计信息如均值和标准差,然后据此用先验来估计梯度的分布。论文
(Bernstein,J.;Wang,Y.‑X.;Azizzadenesheli,K.;and Anandkumar,A.2018.Signsgd:
Compressed optimisation for nonconvex problems.In International Conference on 
Machine Learning,559–568.)指出:梯度的分布是单峰对称的。根据实际绘制了一些梯度
的经验分布,并注意到除了单峰对称外,梯度分布还符合中心趋势和长尾效应。为此,本发
明使用韦伯分布来建模梯度的分布。
[0084] 如附图3所示,为了验证本发明对梯度分布的分析,通过KL散度将梯度与拟合分布进行了实证比较。使用ResNet34在Cifar100数据集上分别使用韦伯分布、拉普拉斯分布、高
斯分布来建模梯度的KL散度。ResNet34是文献(Deep Residual Learning for Image 
Recognition,Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun,arXiv:1512.03385)
中提出的34层的深度残差神经网络模型。可以看出,在整个训练过程中韦伯分布总能获得
最小的KL散度值。事实上,拉普拉斯分布是韦伯分布的一个特例,它没有足够的复杂性来描
述梯度。而高斯分布由于与梯度分布有着显著差异,表现性能也较差。
[0085] (二)CV表的计算。
[0086] 为了提高计算效率,本发明事先维护一个不同k值情况下的CV表,其中0.1
[0087] 对于韦伯分布 来说,其均值为 其方差为: 其中Γ(·)为伽马函数:
[0088] 为此:
[0089] (三)量化的性能效果实例。
[0090] 本发明实例化了若干模型并进行了验证,在相同批大小以及初始学习率等参数配置下,分别使用本发明(MVQsgd)、QSGD、Terngrad以及无压缩(FP32)等方法,对CIFAR10、
CIFAR100、ImageNet数据集训练VGG19、ResNet34、ResNet50等,得到训练损失以及准确率如
下表如示。可以看出,因MVQsgd与QSGD和Terngrad相比能始终获得较低的方法,为此,训练
效率和准确率略低于无任何压缩的FP32,高于QSGD和Terngrad方法。
[0091] 表1本发明模型方法与现有模型的训练损失及准确率
[0092]
[0093] 需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是
可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求
书界定的范围为准。