Page 14 - 《软件学报》2020年第9期
P. 14

葛道辉  等:轻量级神经网络架构综述                                                               2635


         够更加容易的移植到嵌入式设备上.
             虽然二值神经网络极大地减少了计算量和模型大小,但是其精度有待提高.由于二值权重网络的权重只有
         1 和−1 两种状态,而一般神经网络训练得到的权重往往是均值为 0 的正态分布,导致原始精度的权重与量化后
         的权重存在较大的误差.Li 和 Zhang 等人为了解决这个问题,在二值权重网络的基础上提出了三值权重网络
         (TWN) [37] .与二值权重网络相比,三值权重网络增加了 0 这种状态,即权重存在−1,0 和 1 这 3 种量化状态.同时,
         由于状态的增加,模型的表达能力得到增强,以常用的 3×3 大小的卷积核为例,二值权重网络的 3×3 卷积核存在
         2 3×3 =512 种状态,而三值权重网络存在 3      3×3 =19683 种状态;在模型的压缩方面,由于存在三值权重网络存在 3 种
         状态,因此压缩能力是二值权重网络的一半,但是从压缩模型角度来看已经足够;在网络的计算上,新增加的 0 状
         态不需要额外的计算,因此三值权重网络与二值权重网络所需的计算量相同.从以上 3 个方面来看,三值权重网
         络在与二值权重网络在运算量基本相同的条件下,能够显著提高了网络的准确率.
             Leng 等人将网络的低比特量化问题建模为离散约束优化问题,再将原问题分解为若干子问题,并通过交替
         求解子问题对网络进行量化,并取得了很好的效果                  [38] .Hu 等人提出一种基于哈希来训练二值神经网络的算法,
         通过哈希算法来训练二值网络            [39] .Wang 等人提出一种在激活函数和权重上先后量化网络的方法                  [40] .Frederick
         等人提出一种同时进行剪枝和量化的网络裁剪架构,充分利用了两类方法的优势                             [41] .
             •   低秩分解
             卷积层的卷积核 W∈R      w×h×c×n 是一个 4D 的张量,低秩分解的方法主要是将卷积核进行分解以减少冗余,低秩
         分解的关键在于如何对卷积核的参数进行排列,以及要在哪个维度上进行秩的约束.
             Denton 研究了多种低秩分解策略,例如二维矩阵的 SVD 分解、三维张量的二维展开以及基于聚类分解
         等 [42] .Zhang 采用广义奇异值分解策略,在分类精度轻微下降的情况下,实现了 4 倍的加速效果                      [43] .将一个四维的
         卷积核形状转换成(w×h×c)×n,然后将其分解为两部分,如图 10 所示:一部分为 d 个大小为 w×h×c 的卷积核,另一
         部分为 n 个 1×1×d 的卷积核,其中,d<n.在卷积核的数量上施加低质约束,原来的 n 个卷积核可以看作是 d 个大
                                                    [1]
         小为 w×h×c 的卷积核的线性组合.用这种方法在 VGG 上实验,理论上可以获得 3 倍的速度提升,top-5 error 仅
         仅增加 1.66%.类似的,也可以在特征的输入通道数 c 上施加低秩约束,将卷积核形状变为 c×(w×h×n),然后分解为
         c 个 1×1×d 的卷积核和 d 个大小为 w×h×n 的卷积核.两种方法只是施加约束的维度不同,是对称的分解操作.
         Lebedev 等人提出一种基于 CP 分解对卷积网络中的卷积核进行压缩的方法                      [44] .Kim 等人提出一种基于 tucker
         分解的卷积核分解方法,同样可以有很好的压缩效果                   [45] .







                                 (a)                                    (b)
                                Fig.10    Low-rank decomposition of convolution kernels
                                       图 10   将卷积核进行低秩分解操作
             •   知识蒸馏
             不同于其他的压缩或加速的方法,知识蒸馏是创建一个“学生”网络,然后让其去拟合“教师”网络分布的方
         法,使得小型网络能够学习到大型网络的知识.一般来说,“教师”网络是一个较大的网络,而“学生”网络是一个轻
         量级的网络.利用网络之间的知识传递,而不是直接训练一个轻量级网络.
             Hinton 首先提出了知识蒸馏的概念,让小网络在学习分类目标的同时,也尽量拟合大网络对不同类别的软
         分类结果    [46] ,如图 11 所示.Romero 等人在 Hinton 的基础上提出 Fitnet   [47] ,网络的深度比宽度更加重要,因此在
         Fitnet 中使用了更深但是更窄的网络当作“学生”网络;并且不单只考虑最终分类层的知识提取,也考虑中间层特
         征的拟 合.基于这个 概念,甚至能 够取 得比原 始网 络更好 的分 类结果.Zagoruyko 等人提出 了 Attention
   9   10   11   12   13   14   15   16   17   18   19