Page 146 - 《软件学报》2021年第11期
P. 146
3472 Journal of Software 软件学报 Vol.32, No.11, November 2021
S R R R T
(1) (2) (3) (4)
S R
d
d
Fig.3 Convolution layer after CP decomposition
图 3 CP 分解后卷积层
使用 CP 分解对卷积核的近似替换,卷积核参数从 X×Y×S×T 变为(S×R+X×R+Y×R+R×T).当 R=R 1 时,使得
R 1 (S+X+Y+T)=X×Y×S×T;当 R<R 1 时,使得网络参数降低,加快卷积操作效率.
2.2 Tucker分解加速卷积层
同理,对于 2D-卷积核 K 而言,K 是大小为 D×D×S×T 的四维张量,四阶张量的 CP 分解如图 4 所示.
Fig.4 Tucker decomposition of four-order tensors
图 4 四阶张量的 Tucker 分解
对卷积核 K 进行 Tucker 分解,如公式(8)所示.
3 R
R
R
1 R
2
4
3
=
K ( , , , ) t ∑∑ ∑ ∑ 4 C ( , , ,) U 1 (i x α −+ r 1 , ) U ( j y α 2 − + ,) U ( , s r 3 ) U ( ,) (8)
1 234 r
r r r
t
4 r
ij s
2 r
r = 1 1r = 2 1r = 3 1r = 4 1
4
1
C 是大小为 R 1 ×R 2 ×R 3 ×R 4 的核张量,U ~U 分别是大小 D×R 1 ,D×R 2 ,S×R 3 ,T×R 4 的因子矩阵.
在对卷积核进行 Tucker 分解时,不一定需要对所有的 mode 都进行分解,我们这里对卷积核分解不做
mode-1 和 mode-2 分解,如公式(9)所示.
R
3 R
4
=
3
4
K ( , , , ) t ∑∑ C (i x α −+ , j y α − + , ,) U ( , s r 3 ) U ( ,) (9)
r
4 r
t
ij s
34 r
r = 3 1r = 4 1
将 Tucker 分解后的公式(9)代入卷积操作公式(1)中,得到如下 Tucker 分解卷积替换公式(10).
R 4 ⎛ D D 3 R ⎛ S ⎞ ⎞
=
4
3
Y (, , ) ∑∑∑∑ ⎜ U ( , s r 3 ) X ( ,, ) s ⎟∑ i j C (i x α −+ , j y α − + , ,r ⎟ U ( , t r 4 ) (10)
⎜
3 4 ) ⎟
⎜
r
x yt
r = 41 ⎝ i= 1 j= 1 r = 3 1⎝ s= 1 ⎠ ⎠
X 是大小为 I×J×S 的输入张量,Y 表示经过卷积后的输出张量.将上式分开来得到如下 3 个步骤.
• Step 1:首先对输入张量 X 的输入通道进行卷积,将输入通道数 S 减少到 R 3 ,如公式(11)所示.
S
3
=
s
Y (, ,r 3 ) ∑ U ( , s r 3 ) X ( , , ) s (11)
i j
ij
s= 1
• Step 2:在输入通道数为 R 3 ,输出通道为 R 4 ,进行空间卷积(对宽和高卷积),如公式(12)所示,不同于原始
卷积在输入通道 S 和输出通道 T 进行卷积:
x α+ y α+ 3 R
sxy
Y (, ,x yr 3 ) = ∑∑ ∑ C (i x α −+ , j y α − + , ,r 3 4 ) ( , , )r Y s i j 3 r (12)
ix α =− j y α = − r =
3 1
• Step 3:最后,将通道数 R 3 卷积输出为 T,使输出通道与初始卷积核的输出通道一致,如公式(13)所示.
R 4
4
=
Y (, , ) ∑ U ( , t r Y sxy (13)
3 r
x yt
x y
r = 4 ) ( , , )
4 1
最后,如果有偏置 b,再加上偏置 b,这样就完成了使用 Tucker 分解的方法替换加速卷积层.