Page 144 - 《软件学报》2021年第11期
P. 144

3470                                Journal of Software  软件学报 Vol.32, No.11, November 2021

                 Chollet [28] 在 Inception-V3 基础上提出了 Xception,卷积核更紧凑,提高了网络的计算效率.Google 公司的 Howard
                    [4]
                 等人 利用计算和存储更小的深度分割卷积替换原始的卷积滤波.Zhang 等人                        [29] 使用组卷积和通道重排设计紧
                 凑神经网络模型.在 2015 年,Hinton 等人      [30] 首次提出了知识蒸馏的压缩方法,利用复杂的教师网络学习先验知
                 识来指导小型的学生网络.
                    •   张量分解加速神经网络的研究
                             [6]
                    Denil 等人 发现,在神经网络中,模型参数有很大的冗余性.并使用一部分的特征参数来预测剩余的参数,
                 证明了神经网络的可压缩性.Rigamonti 等人         [31] 提出了不可分离滤波器近似为可分离的线性组合的方法.Denton
                 等人 [32] 根据卷积滤波中存在的冗余性,使用低秩近似和滤波聚类的方法减少所需的计算量,来加速卷积网络评
                 估速度.Jaderberg 等人 [33] 将卷积滤波使用水平滤波和垂直滤波来替换,达到去除神经网络冗余性以及加速神经
                 网络的目的.Lebedev 等人    [34] 提出对卷积滤波使用 CP 分解去除模型冗余性,以此加速 CNN.Kim 等人                [35] 对卷积
                 滤波使用 Tucker 分解,并使用变分贝叶斯来选择秩.Girshick           [36] 在目标检测神经网络中使用了 SVD 分解方法加
                 速全连接层.Tai 等人    [37] 提出引入批量正则化,从头训练低秩约束的 CNN.温伟等人               [38] 提出了强力正则化项,使更
                 多的卷积核分布在低秩空间.
                    •   AutoML
                    Automated machine  learning(AutoML)的目的是自动地发掘并构造相关的特征,使得模型可以有最优的表
                 现 [39] .与传统的机器学习相比,AutoML 可以极大地减少人工调整网络中超参数的工作量,并获得更高的准确率
                 和泛化性能.AutoML 研究通过强化学习           [40] 、进化算法 [41] 以及梯度方法  [42] 等来做神经网络架构和超参数优化.
                 He 等人 [43] 使用强化学习的方法自动化压缩加速神经网络.Liu 等人               [44] 提出一种新颖的元学习方法,用于对非常
                 深的神经网络进行自动通道修剪.
                    受上述工作的启发,本文结合 AutoML 和张量分解加速神经网络设计了两种自动化张量分解的加速神经网
                 络方法.该方法能够在 CNN 加速中自动化压缩加速 CNN,并得到最优性能的加速压缩模型,避免了人为因素对
                 性能的影响.

                 2    基于张量分解的神经网络加速

                    现有主流深度学习平台 CNN 中的卷积操作均是以矩阵方式计算完成的,而卷积核的大小均通过人工凭借
                 经验指定,这就难免网络计算过程中存在冗余的参数.在张量分解加速神经网络中,主要使用 CP 分解                                    [34] 与
                 Tucker 分解 [35] 加速卷积层.总体来说,可以分为两步:使用张量分解的方法分解并替换原始神经网络权重;通过
                 反向传播的微调方法降低分解对神经网络精度的影响.
                 2.1   CP分解加速卷积层

                    CNN 中,卷积操作在整个网络中时间消耗占比较大,对卷积层分解能有效提升整个网络的运行效率.假设输
                 入数据 X 为 3 阶张量,尺寸大小是 I×J×S,使用卷积核 K 进行卷积操作,最终输出张量 Y,卷积操作如公式(1)所示.
                                                  x δ+  y δ+  S
                                            Y (, , )x yt  = ∑∑ ∑ K (i x α  −+  , j y α  − +  , , )s t  X  ( ,, )i j s  (1)
                                                  ix δ  =−  j y δ = −  s= 1
                    卷积核 K 是大小为 d×d×S×T 的四维张量,维度 d 和 d 是空间维度,对应输入张量中的宽和高(I 和 J)卷积,S
                 是输入维度大小,T 是输出维度大小,其中,α=(d−1)÷2.四阶张量的 CP 分解如图 1 所示.

                                                 c 1          c 2              c r
                                               d 1
                                                      b 1   d 2     b 2      d r    b r
                                                           +            + ...  +
                                      X
                                                    a 1          a 2              a r
                                           Fig.1    CP decomposition of four-order tensors
                                                  图 1   四阶张量的 CP 分解
   139   140   141   142   143   144   145   146   147   148   149