在修改机器学习算法以使它们对硬件更友好同时还维持准确度方面,研究界一直有相关的研究工作;其中尤其值得关注的焦点是在减少计算量、数据传输和存储要求方面。 A 降低精度 CPU 和 GPU 等可编程平台的默认大小通常是 32 或 64 位的浮点数表示。尽管这仍然是训练方面的情况,但在推理过程中,使用定点数表示(fixed-point representation)是可能的,这可以减少位宽(bitwidth),从而降低能源消耗和设备尺寸,并且还能增加吞吐量。当把权重和特征推至更低的位宽时,为了保持准确度,通常还需要再训练(retraining)。 在人工设计的方法中,位宽可以在不影响准确度的条件下大幅降低到 16 位以下。比如,在使用 HOG 的物体检测中,每 36 维特征向量仅需要每维度 9 位,而 SVM 的每个权重仅使用 4 位 [49];对于使用可变形组件模型(DPM/deformable parts model)[55] 的物体检测而言,每个特征向量仅需要 11 位,每个 SVM 权重仅需要 5 位 [51]。 类似地,对于 DNN 推理,加速器支持 16 位定点数是很常见的 [46,48]。在探索位宽对准确度的影响上有一些显著的研究工作 [52]。事实上,有报道称最新一款用于 DNN 的商业硬件支持 8 位整型运算 [53]。因为位宽可能会随层变化,研究者已经在探索使用这种位宽减少来实现硬件优化——相比于一个 16 位的定点的实现,他们得到了 2.56 倍的节能 [54] 或 2.24 倍的吞吐量增长 [55]。通过给网络进行更大的修改,有可能将权重 [56] 或权重及激活(activation)[57,58] 的位宽降低到 1 位,而在准确度上有所损失。硬件上 1 位权重的影响在 [59] 中有所探索。 B 稀疏性(Sparsity) 对于 SVM 分类,其权重可以被投射到一个基础上,从而使得结果得到的权重是稀疏的,乘法数量减少了 2 倍 [51](图 11)。对于特征提取而言,输入图像可以通过预处理被做得稀疏,可以实现 24% 的功耗减少 [49]。
图 11:基础投射(basis projection)后的稀疏权重 [51] 对于 DNN 而言,MAC 和权重的数量的减少可以通过一个被称为剪枝(pruning)的过程来移除权重而实现。[60] 首先探索了这个方面,其中对输出有最小影响的权重被移除了。在 [61] 中,剪枝被用在了现代 DNN 上来移除小权重。但是,移除权重并不一定会实现更低的功耗。因此,在 [62] 中,权重的移除方式是基于一个能量模型(energy model),从而可以直接最小化能量消耗。 [48, 51, 63, 64] 提出的专用硬件利用了稀疏权重来提升速度或减少能量消耗。在 Eyeriss [48] 中,处理元件被设计成:当输入为 0 时,直接跳过读取和 MAC,最后实现了 45% 的节能。在 [51] 中,通过使用专用硬件来规避(avoid)稀疏权重,能量和存储成本分别被减少了 43% 和 34%。 C. 压缩 数据的传输和存储在能耗和成本方面都是一个很重要的因素。特征提取可以得到稀疏的数据(比如 HOG 中的梯度和 DNN 中的 ReLU),而在分类中所使用的权重也可以通过剪枝稀疏化。这样所得到的结果是:压缩可以利用数据统计来减少数据传输和存储的成本。 研究者已经探索利用了多种形式的轻量级压缩来减少数据传输。无损压缩可以被用于减少流入和流出芯片的数据传输 [11, 54, 64]。在 [65] 中,简单游程长度编码(simple run-length coding)减少了多达 1.9 倍的带宽,这是在理论上的熵限制的 5%-10%。向量量化(vector quantization)等有损压缩也可被用于特征向量 [51] 和权重 [8, 12, 66],这样使得它们可以以较低的成本而存储在芯片上。一般而言,压缩/解压的成本是在几千 kgates 的量级上,具有最小的能量开销。在有损压缩的情况下,估计其对表现的准确度的影响是很重要的。 七、混合信号电路中的机会 (责任编辑:本港台直播) |