关于人工智能:简单的特征值梯度剪枝CPU和ARM上带来45倍的训练加速-ECCV-2020

46次阅读

共计 2253 个字符,预计需要花费 6 分钟才能阅读完成。

论文通过 DBTD 办法计算过滤阈值,再联合随机剪枝算法对特征值梯度进行裁剪,稠密化特征值梯度,可能升高回传阶段的计算量,在 CPU 和 ARM 上的训练别离有 3.99 倍和 5.92 倍的减速成果

起源:晓飞的算法工程笔记 公众号

** 论文: Accelerating CNN Training by Pruning
Activation Gradients**

  • 论文地址:https://arxiv.org/abs/1908.00173

Introduction


  在训练过程中,特征值梯度的回传和权值梯度的计算占了大部分的计算耗费。因为这两个操作都是以特征值梯度作为输出,而且零梯度不会占用计算资源,所以稠密化特征值梯度能够升高回传阶段的计算耗费以及内存耗费。论文的指标在于高效地升高训练负载,从而在资源无限的平台进行大规模数据集的训练。
  论文假如特征值梯度遵从正态分布,基于此计算阈值 $\tau$,随后应用随机剪枝算法 (stochastic pruning) 将小于阈值的特征值梯度随机置为零或 $\pm \tau$。经实践推理和试验证实,这种办法不仅可能无效地稠密化特征值梯度,还能在减速训练的同时,不影响训练的收敛性。

General Dataflow


  卷积层通常蕴含 4 个阶段:推理、特征值梯度回传、权值梯度计算和权值更新。为了示意这些阶段的计算,论文定义了一些符号:

  卷积层的四个训练阶段的总结为:

  论文通过可视化发现,回传阶段的特征值梯度简直全是十分小的、接近于零的值,自然而然地想到将这些值去掉不会对权值更新阶段造成很大的影响,所以论文认为剪枝特征值梯度可能减速卷积层在训练时的计算。

Sparsification Algorithms


Distribution Based Threshold Determination (DBTD)

  剪枝操作最要害的步骤是决定抉择哪些元素进行打消,先前有钻研应用最小堆进行元素抉择,但这会带来较大的额定计算开销。为此,论文采纳简略的阈值过滤进行元素抉择。

  论文首先剖析了两种经典的卷积网络结构的特征值梯度散布:Conv-ReLU 构造和 Conv-BN-ReLU 构造:

  • 对于 Conv-ReLU 构造,输入的特征值梯度 $dO$ 是稠密的,但其散布是无规律的,而构造的输出特征值梯度 $dI$ 简直全是非零值。通过统计发现,$dI(\cdot)$ 的散布以零值对称散布,且密度随着梯度值的减少而降落。
  • 对于 Conv-BN-ReLU 构造,BN 层设置在卷积层与 ReLU 层两头,扭转了梯度的散布,且 $dO$ 的散布与 $dI$ 相似,。

  所以,上述的两种构造的梯度都可认为遵从零均值、方差为 $\sigma^2$ 的正态分布。对于 Conv-ReLu 构造,因为 ReLU 不会升高稠密性,$dO$ 可能继承 $dI$ 的稠密性,将 $dI$ 是作为 Conv-ReLU 构造中的剪枝指标梯度 $g$。而对于 Conv-BN-ReLU 构造,则将 $dO$ 作为剪枝指标 $g$。这样,两种构造的剪枝指标都可对立为正态分布。假如 $g$ 的数量为 $n$,能够计算梯度的绝对值的均值,并失去该均值的冀望为:

  这里的冀望为从散布中采样 $n$ 个点的冀望,而非散布的整体冀望,再定义以下公式

  将公式 2 代入公式 1 中,能够失去:

  从公式 3 能够看出 $\tilde{\sigma}$ 为参数 $\sigma$ 的无偏预计,靠近于实在的均值,且 $\tilde{\sigma}$ 的整体计算耗费是能够承受的。基于下面的剖析,论文联合正态分布的累积函数 $\Phi$、剪枝率 $p$ 和 $\tilde{\sigma}$ 计算阈值 $\tau$:

Stochastic Pruning

  剪枝大量值较小的梯度简直对权值的更新没有影响,但如果将这些值较小的梯度全副设为零,则会对特征值梯度的散布影响很大,进而影响梯度更新,造成重大的精度损失。参考 Stochastic Rounding 算法,论文采纳随机剪枝来解决这个问题。

  随机剪枝逻辑如算法 1 所示,对于小于阈值 $\tau$ 的梯度值,随机采样一个缩放权重来计算新阈值,再依据新阈值将梯度值置为零或 $\pm \tau$。

  随机剪枝的成果如图 2 所示,可能在放弃梯度散布的数学冀望的状况下进行剪枝,与以后的办法相比,论文提出的办法的长处如下:

  • Lower runtime cost:DBTD 的计算复杂度 $O(n)$ 小于 top- k 算法 $O(nlogk)$,且 DBTD 对硬件更敌对,可能在异构平台实现。
  • Lower memory footprint:随机裁剪能放弃收敛性,且不须要存储而外的内存。

  至此,Sparsification Algorithms 在梯度回传时的特征值梯度计算为:

Experimental Results


  在 CIFAR-10、CIFAR-100 以及 ImageNet 上进行准确率验证。

  在 CIFAR-10 和 ImageNet 上进行收敛性验证。

  在不同的设施上进行减速成果验证。

Conclustion


  论文通过 DBTD 办法计算过滤阈值,再联合随机剪枝算法对特征值梯度进行裁剪,稠密化特征值梯度,可能升高回传阶段的计算量,在 CPU 和 ARM 上的训练别离有 3.99 倍和 5.92 倍的减速成果。论文提出的特征值稠密化算法看似很简略,其实进行了充沛的实践推导以及试验验证,才失去最终正当的过滤办法,惟一惋惜的是没在 GPU 设施上进行试验验证。论文对算法的收敛性以及冀望有具体的实践验证,不过这里没有列出来,有趣味的能够去看看原文。



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

正文完
 0