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 分解的方法替换加速卷积层.
   141   142   143   144   145   146   147   148   149   150   151