基于高斯分布估计选取深度网络参数稀疏阈值的方法与流程

文档序号:21729884发布日期:2020-08-05 01:23阅读:738来源:国知局
基于高斯分布估计选取深度网络参数稀疏阈值的方法与流程

本发明涉及深度学习和分布式训练技术领域,特别是涉及基于高斯分布估计选取深度网络参数稀疏阈值的方法。



背景技术:

深度神经网络(deepneuralnetworks,dnns)近年在计算机视觉和自然语言处理等任务上不断刷新已有最佳性能,成为最受关注的研究方向之一。dnns虽然具有显著性能,但由于参数量巨大、存储成本和计算成本过高,仍面临着有效部署到硬件受限的嵌入式或移动边缘设备等问题。相关研究表明,dnns模型本身存在大量对性能影响甚微的冗余参数,不论是训练还是推理过程,通过稀疏压缩相关不重要的参数可实现模型压缩,加快模型计算速度且不影响性能,这为模型压缩提供了理论依据。对dnns的稀疏压缩包括两方面:用于训练加速的梯度参数稀疏通信和用于推理加速的参数剪枝压缩过程。前者为解决dnns分布式训练中各节点大量梯度交换的通信瓶颈,从而对梯度参数稀疏;后者为解决大规模dnns部署在移动边缘设备上面临的计算及存储资源受限的问题,从而对权值参数稀疏,两者都是在训练过程中完成。梯度稀疏通信通过选出重要梯度先进行参数更新,剩余不重要梯度进行本地累加到下次迭代。权值参数剪枝稀疏同样是选出对性能影响较大的参数保留,影响较小的其余参数置零。

目前两者主流选取方法是top-k阈值选择方法,即每次训练迭代通过预设百分比动态筛选出重要的梯度或权值参数,将每层网络中梯度或权值升序排序,基于预设百分比选出对应阈值,进而判定重要参数。然而,大规模网络每层参数量可达到百万甚至千万级别,此类方法在对大量数据排序时,将需要大量排序时间。对于梯度稀疏有文献提出先随机采样0.1%梯度排序,用样本阈值代替整体阈值,这种方法随机性较大,稀疏率不能得达到保证。另外,有文献提出层级选择方法,即随机采样0.1%~1%梯度的阈值选出重要梯度,若达不到预定压缩比,则采用选出的梯度执行更精确的阈值选择,从而保证压缩率。

综上可知,当前阈值选取技术都需要排序或者随机采样,而这些过程在对大数处理时耗时巨大,计算复杂度高,导致整体训练时间冗长,且硬件实现极为困难,加速效益甚微,且排序过程将导致复杂的访问控制逻辑,导致稀疏压缩计算过程变冗长,最终导致压缩的整体效果达不到预期。

因此,如何快速、简单有效且对硬件实现友好地选取dnns参数稀疏阈值是本领域技术人员亟需解决的问题。



技术实现要素:

本发明的目的是针对现有技术中存在的技术缺陷,而提供一种基于高斯分布估计选取深度网络参数稀疏阈值的方法。

为实现本发明的目的所采用的技术方案是:

一种基于高斯分布估计选取深度网络参数稀疏阈值的方法,包括步骤:

s1.对dnns分布式训练的超参数设置,包括训练数据集θ、小批量尺寸b和节点数目n;

s2.当前工作节点node读取小批量为b的训练数据d到内存;

s3.判断是否为首次迭代,若是则初始化dnns模型参数wt-1、本地延时梯度以及全局动量累加vt,然后进入步骤s4,否则直接进入步骤s4;

s4.当前工作节点node将训练数据d输入网络执行前向推理过程,将正向输出与标签数据对比得到损失误差loss并对其执行反向传播,逐层计算每个参数梯度其中k和t分别为节点索引和迭代次数;

s5.将上次迭代产生的本地延时梯度与本次新产生的参数梯度进行累加,生成新的

s6.对dnns模型的卷积层、全连接层和批归一化层的权值和梯度参数先验假设为高斯分布,求取其特征参数μ和σ的最大似然估计,进而由预设稀疏率ρ得到目标阈值υ并获取掩码maskl,其中l为层索引;

s7.采用游程编码对根据maskl选出top-k选出的重要的稀疏梯度编码,然后基于all-reduce分布式训练框架与其他节点nodes通信传输及交换各节点剪进行聚合平均,得出平均梯度多个节点进行步骤1~7相同的操作;

s8.采用全局动量分布式随机梯度下降算法,使模型更新考虑到全局收敛信息,加速训练的收敛速度;

s9.判断当前节点node是否还存在未训练数据,若是则执行新一轮迭代,同时迭代计数器iter自增;否则表示训练完成,将输出训练好的模型及参数。

本发明通过高斯分布最大似然估计,大大加速了稀疏压缩处理,整体过程十分便于硬件实现;解决了目前排序方法对内存设备频繁通信、过度占用和复杂的访存控制逻辑等问题,达到高性能、低功耗目的,适用于各深度网络压缩训练硬件加速系统。

附图说明

图1是本发明基于高斯分布估计选取深度网络参数稀疏阈值的方法的流程框图;

图2是本发明提供的alexnet网络conv层和fc层的梯度分布统计图;

图3是本发明提供的高斯分布估计选取特定比例梯度原理示意图;

图4是本发明提供的高斯分布估计与传统排序方法结果对比图。

具体实施方式

以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

不论是权值参数剪枝还是梯度稀疏通信过程,考虑到训练过程中dnns权值参数和对应梯度是近似高斯分布,本发明提供基于高斯分布进行网络参数的高斯分布特征参数均值μ和标准差σ的最大似然估计,计算复杂度为o(n),相比于计算复杂度为o(nlog2n)的传统排序技术在对百万级以上参数选取top-k的加速效果明显。

同时,基于硬件实现数据流架构计算,避免类似排序过程对内存设备频繁的通信和复杂的访存控制逻辑,达到高性能、低功耗目的,适用于各深度网络压缩训练硬件加速系统。

如图1所示,一种基于高斯分布估计选取深度网络参数稀疏阈值的方法,包括步骤:

步骤s1:对dnns分布式训练的超参数设置,包括训练数据集θ、小批量尺寸b和节点数目n;

步骤s2:当前工作节点node读取小批量为b的训练数据d到内存;

步骤s3:判断是否为首次迭代,若是则初始化dnns模型参数wt-1、本地延时梯度以及全局动量累加vt;

步骤s4:当前工作节点node将训练数据d输入网络执行前向推理过程,将正向输出与标签数据对比得到损失误差loss并对其执行反向传播,逐层计算每个参数梯度其中k和t分别为节点索引和迭代次数;

步骤s5:将上次迭代产生的本地延时梯度与本次新产生的参数梯度进行累加,生成新的然后选取稀疏压缩阈值,对新的进行梯度稀疏压缩处理;

其中,基于高斯分布估计选取稀疏压缩阈值操作的具体步骤如下:

步骤s6:本发明提供的高斯分布估计稀疏阈值策略是通过对dnns模型的卷积层(convolutionallayers,conv)、全连接层(fullyconnectedlayers,fc)和批归一化层(batchnormalization,bn)等的权值和梯度参数先验假设为高斯分布,求取其特征参数μ和σ的最大似然估计,进而由预设稀疏率ρ得到目标阈值。

步骤s61:遍历网络每个conv、fc和bn层,将每层的梯度参数平坦化处理降维后得到一维张量。

若在硬件实现过程中,则可根据数据流的输入,逐次进行后续处理。假设conv、fc和bn层中权值、梯度属于离散型随机变量,那么参数将符合高斯分布,实际参数确实具有高斯分布特性,由最大似然估计可求出特征参数均值μ和标准差σ,如公式(1)。假设样本期望和方差分别为e(x)和d(x)则σ计算方式证明如公式(2),得出本发明提供的算法计算复杂度为o(n);

步骤s62:根据高斯函数的面积特性利用μ、σ和ρ得到曲线围成面积为ρ和1-ρ的分界点,如图3所示,ρ=99%的情况,根据top-k阈值选取方法,假设横坐标轴为参数大小x,则本地延迟的梯度区域为x∈(μ-x1-ρ·σ,μ+x1-ρ·σ),而进行稀疏通信压缩的目标梯度区域为x∈(-∞,x1-ρ·σ]∪[x1-ρ·σ,+∞),则分界点x1-ρ即为所求阈值υ=μ+2.575829σ。

在较特殊的应用场景可通过加修正项υ+ε实现阈值修正,一般情况下ε=0;

步骤s63:由步骤s62得到的阈值υ获取掩码maskl←|wt-1,l|≥υl,maskl是与每层梯度参数等大同形状的0-1张量,其中l为层索引;

步骤s64:根据maskl选出top-k重要的稀疏梯度以及更新本地累加梯度然后进行步骤s7;

步骤s7:采用游程编码对top-k重要稀疏梯度进行编码,然后基于all-reduce分布式训练框架与其他节点nodes通信传输及交换各节点剪进行聚合平均,得出平均梯度多个节点进行步骤1~7相同的操作;

步骤s8:采用全局动量分布式随机梯度下降算法,使模型更新考虑到全局收敛信息,加速训练的收敛速度。具体而言,包括全局动量累加过程vt+1=m·vt+ugt,用新的全局动量进行各参数更新过程:wt+1=wt-η·vt+1,其中m和η分别是动量和学习率参数;

步骤s9:判断当前节点node是否还存在未训练数据,若是则执行新一轮迭代,同时迭代计数器iter自增;否则表示训练完成,将输出训练好的模型及参数。

若是对dnns模型的权值进行剪枝压缩训练过程,在对重要权值选取过程类似步骤s6,需要在模型从头训练开始时,按高斯分布产生随机数初始化网络的参数,通过本发明的过程提高压缩训练的速度,十分便于硬件实现。图2为本发明提供的基于经典alexnet模型训练过程中梯度参数的分布情况统计,可得出各层的梯度参数近似按照高斯分布。

本发明提供的基于cpu对高斯分布估计(红)与传统全排序(紫)、抽样排序(蓝)和层级选择方法(率)结果对比结果,如图4所示。左图为在ρ=99%情况下,与传统全排序相比,本发明的高斯估计最高达到18×加速,而抽样排序和层级选择分别最高达到13×和5×;右图为各种技术稀疏率的误差曲线,可以得出高斯分布估计获得与传统全排序一样精准的阈值,而另外两种方法因随机抽样导致阈值在最佳状态波动变化不够准确。

本发明还提供了标准偏差查找表供用户根据不同需求查找使用,如表1所示。

表1

本发明提供基于计算复杂度为o(n)高斯分布最大似然估计选取稀疏阈值,相比于复杂度为o(nlog2n)的传统排序技术加速效果明显。同时,方便基于硬件实现数据流架构计算,避免硬件内存的限制和复杂的访存控制逻辑,适用于各深度网络压缩训练硬件加速系统。

以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1