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

宋冰冰  等:自动化张量分解加速卷积神经网络                                                          3471


                    对卷积核 K 进行 CP 分解,如公式(2)所示.
                                                    R
                                                                    s
                                            K ( , , , ) t  =  K (i x α∑  x −+  ,) r  K ( j y α  y − +  , ) r  K ( ,) r  K t ( , ) r  (2)
                                                                    s
                                              ij s
                                                                        t
                                                    r= 1
                      x
                        y
                            t
                          s
                    K ,K ,K ,K 表示 CP 分解后因子矩阵,张量(矩阵)大小分别是 d 1 ×R,d 2 ×R,S×R,T×R.将公式(2)代入卷积操作公
                 式(1)中,得到 CP 分解替换原卷积公式(3).
                                          R    ⎛  x δ+    ⎛  y δ+    ⎛  S        ⎞  ⎞  ⎞
                                                                          s
                                   Y ( , , ) t ∑  xy  =  K ( , ) r ⎜  t t  ⎜  K (i x α  x −+  ,) r ⎜  K ( j y α  y  − +  , ) r ⎜ ⎜  K ( ,) r  X ( , , ) s ⎟ ∑  i j ⎟∑  ⎟  ⎟ ∑  ⎟  (3)
                                                                          s
                                         r=  1  ⎝  i x δ  =  −  j y δ  =  −  ⎝ ⎝  s=  1  ⎠  ⎠  ⎠
                    通过公式(3),CP 分解后,4 层小卷积操作如公式(4)~公式(7)所示.
                                                          S
                                                        =
                                                    s
                                                   Y (, , ) r ∑ K  s ( , ) r  X ( , , ) s             (4)
                                                                i j
                                                             s
                                                    ij
                                                         s= 1
                                                        y δ+
                                                 Y  sy  = ∑  K  y  Y  s                               (5)
                                                  (, , )iy r  ( j y α−+  , ) ( , , )r  i j r
                                                       jy δ=−
                                                        x δ+
                                                 Y  syx  = ∑  K  x  Y  sy                             (6)
                                                  (, , )x yr  (i x α−+  , ) ( , , )r  i yr
                                                       jx δ=−
                                                          R
                                                        =
                                                   Y (, , )x yt ∑  K ( , ) ( , , )t r  Y  syx         (7)
                                                             t
                                                                x y r
                                                         r= 1
                    CP 分解加速卷积层具体流程如图 2 所示(以分解 1 层卷积操作为例).
                    •   Step 1:对原神经网络的卷积核进行 CP 分解,分解成 4 个维度的因子矩阵形式.
                    •   Step 2:将分解后的因子矩阵增加缺少的维度,组合成新卷积核的参数.
                    •   Step 3:组合成新卷积核的参数赋值给新的卷积核.
                    •   Step 4:使用新生成的 4 层卷积操作来代替原神经网络卷积层操作.











                                        Fig.2    CP decomposition accelerate convolution layer
                                                  图 2   CP 分解加速卷积层

                    替换后的输出近似原输出 Y,如图 3 所示.
                    •   首先对输入 X 在输入通道上使用卷积核 Ks 卷积,卷积输出 Ys,将通道 S 降为 R,减少了输入通道,加快
                        卷积速度.
                    •   其次,对通道 S 卷积后的输入 Ys 使用 Ky 卷积,同理再进行 Kx 卷积,卷积后输出 Ysyx.不同于原始卷积,
                        原始卷积对空间维度宽高(xy)一起做卷积操作,这里是在通道数不变,分别对高(y)、宽(x)进行卷积.
                    •   最后,对 Ysyx 使用 Kt 卷积核完成通道数 R 到 T 的卷积,加上初始卷积层的偏执 b.
   140   141   142   143   144   145   146   147   148   149   150