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 分解