Page 147 - 《软件学报》2021年第11期
P. 147
宋冰冰 等:自动化张量分解加速卷积神经网络 3473
Tucker 分解加速卷积层流程如图 5 所示.
• Step 1:对原神经网络的卷积核进行 Tucker 分解,分解成一个四阶的 core 张量和两个因子矩阵;
• Step 2:将分解后的因子矩阵增加缺少的维度,组合成新卷积核的参数;
• Step 3:将新卷积核的参数赋值给新的卷积核;
• Step 4:使用新的 3 层小卷积操作来代替原神经网络卷积层操作.
输入
输入 Step 1 Step 2 Step 3
(s×r 3) Conv
(s×r 3) (1×1×s×r 3) (1×1×s×r 3)
...
Tucker ... 增加 ... 参数 ...
分解 维度 赋值
Conv Conv
(d×d×s×t)
(d×d×r 3×r 4) (d×d×r 3×r 4) (d×d×r 3×r 4)
输出 Conv
(t×r 4)
(t×r 4) (1×1×r 4×t) (1×1×r 4×t)
输出
替换卷积核
Step 4
Fig.5 Tucker decomposition accelerate convolution layer
图 5 Tucker 分解加速卷积层
如图 6 所示,有 3 步卷积操作来替换初始的卷积操作:在第 1 步的卷积核中,卷积核大小为 1×1×S×R 3 ,第 2
步的卷积核大小为 D×D×R 3 ×R 4 ,第 3 步的卷积核大小为 1×1×R 4 ×T.使用 Tucker 分解近似替换后的总卷积核参数
为 S×R 3 +D×D×R 3 ×R 4 +R 4 ×T,初始的卷积核参数为 D×D×S×T,当 R 3 ,R 4 满足 S×R 3 +D×D×R 3 ×R 4 +R 4 ×T<D×D×S×T 时,
我们就达到了减少卷积核参数的目的,加速 CNN 和减少神经网络模型参数.
S I R 3 W R 4 T
(1) (2) X X
S D R 4 (3)
J H D Y Y
Fig.6 Convolution layer after Tucker decomposition
图 6 Tucker 分解后卷积层
2.3 微调卷积神经网络
在张量分解加速 CNN 中,张量分解是对全连接层和卷积层的近似分解并且会压缩网络模型参数,这样造成
了模型的精度下降.因此需要使用训练数据集对张量分解加速的 CNN 进行微调,恢复 CNN 的精度.在本文中,
使用反向传播的方法对压缩后的 CNN 进行微调,恢复 CNN 的精度.
3 自动化加速卷积神经网络
在张量分解加速神经网络研究领域,如何选择最优秩(精度下降最少、加速效果最好),一直都是张量分解加
速神经网络的关注点.受 AutoML 的研究启发,本文基于张量分解加速 CNN 提出了两种 AutoACNN(自动化加速
卷积神经网络 auto acceleration CNN)算法,该算法能在给定压缩后网络模型的容忍精度下(允许加速后模型精
度损失多少),求最优加速压缩神经网络模型.
3.1 基于参数估计的自动化加速卷积神经网络
基于参数估计的自动化加速卷积神经网络算法的总体思路是:先估计卷积核的总参数,使其逼近最优加速