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

3474                                Journal of Software  软件学报 Vol.32, No.11, November 2021

                 网络模型近似所需的总参数,然后在近似参数区间内分组查找各个卷积核最优秩选择,最终返回满足容忍精度
                 的最优压缩神经网络模型.
                    如图 7 与算法 1 所示,基于参数估计的自动化加速卷积神经网络算法总体分为 4 步.
                    •   Step 1:相关变量的计算与初始化,包括输入模型的容忍精度、得到原模型的相关参数以及相关变量的
                        计算.
                    •   Step 2:张量分解压缩神经网络.详细见第 2 节基于张量分解的神经网络加速.
                    •   Step 3:参数估计.参数估计是根据模型的容忍精度估计分解后 CNN 的总参数大小范围.在估计参数下
                        确定秩中,首先估计的参数按照原卷积核参数占比多少分配,确定每个层分解后的估计参数,然后根据
                        每个层的估计参数计算不同卷积核的分解秩,最后迭代更新的估计总参数.由公式(14)推出公式(15),得
                        到不同层的分解秩 Rank[i](其中,相关变量在算法步骤中定义):
                                      ⎧     L
                                      ⎪ PE =  S × ∑  [] i  Rank [] i
                                      ⎪     i= 1
                                      ⎪  Rank     Rank         Rank
                                      ⎪
                                      ⎨     [1]  =    [2]  =  ... =  [ ] L  ,Rank ∈N +               (14)
                                                     _
                                                                  _
                                           _
                                                                          [] i
                                      ⎪ NumW  [1]  NumW [2]   NumW  [ ] L
                                      ⎪          Num _W
                                       1 ⎪ ≤  Rank <   [] i
                                              [] i
                                      ⎪             S [] i
                                      ⎩
                                                ⎛    ⎛  ⎢  _W ⎥  ⎢  PE Num _W []i ⎥ ⎞  ⎞
                                                                    ×
                                      Rank =  max 1,min ⎢  ⎜  ⎜  ⎜  ⎜  Num  []i  , ⎥  ⎢ ⎢ ∑  _W S ⎥ ⎥ ⎟  ⎟  ⎟  ⎟  (15)
                                                                  L
                                          []i
                                                ⎜     ⎢   S []i  ⎦ ⎜  ⎥ ⎣  ⎢  Num  [] [ ]j  j  ⎥ ⎟  ⎟
                                                ⎝    ⎝          ⎣  j= 1       ⎦ ⎠  ⎠
                    •   Step4:分组查找.在近似参数区间内查找各个卷积核分解需要的秩:在估计的参数下,首先按照分组的
                        思想,将上层卷积核分解时选择的不同秩划分成不同的组,而后对每个组内求下一层卷积核的秩的组
                        合,并有序排列.如果有多层秩选择,继续向下分组.在其他层情况相同下,某一层分解后的参数越多,模
                        型的精度越高.在一个组内的,如果选择大的秩组合不能满足容忍精度,那么小的秩组合也就更不能满
                        足容忍精度.同理,小的秩组合能满足容忍精度,那么大的秩组合也就能满足容忍精度.以两层的分组查
                        找为例,如图 8 所示:如果秩组合[1,j]不能满足分解后的模型容忍精度,那么这个组内其他秩组合也就
                        不满足模型容忍精度,跳到下个组进行查找.当秩组合[1,j]的模型精度大于模型容忍精度时,存在秩组
                        合[1,i]的模型精度大于模型容忍精度,并且秩组合[1,i−1]的模型精度小于模型容忍精度,那么秩组合
                        [1,i]是组内最优秩组合.当[1,i]是第 1 组组内最优秩组合时,那么第 2 组的组内最优秩组合存在于第 2
                        组的 1~i 的区间中,那么第 2 组的查找区间为 1~i,以此类推.公式(16)是不同层的秩选择的限制条件,由
                        公式(16)推出公式(17),Max_Rank(i)表示第 i 层能选择的最大秩,那么从 1 到 Max_Rank[i]都是第 i 层秩
                        的选择方案:
                                           ⎧          Num _W []i
                                           ⎪ 1≤ Rank <  S
                                                  []i
                                           ⎪ ⎨           []i      ,Rank ∈N +                         (16)
                                                                      []i
                                           ⎪ ∑  L  ∑  L  Rank ×
                                           ⎪  S ≤  []i  []i  S ≤  [ ]i  PE
                                           ⎩ i=  1  i=  1
                                            ⎧   ⎛  Num _W    ⎛  PE ⎥  ⎞ ⎢  ⎞
                                            ⎪ min ⎜    []i  ,max 1, ⎢  ⎜  ⎥  ⎟  ⎟  ,                              i = 1
                                            ⎪   ⎜  ⎝  S []i  ⎜  ⎢  S []i ⎥ ⎣ ⎝  ⎦  ⎟  ⎠  ⎟  ⎠
                                            ⎪
                                            ⎪
                                Max _ Rank = ⎨  ⎛  ⎜         ⎛  PE −  i− 1 Rank × ∑  S  ⎥  ⎞ ⎢  ⎞  ⎟  (17)
                                         []i
                                            ⎪   ⎜  Num _W    ⎜  ⎜        []j  []j ⎟ ⎢  ⎥  ⎟  ⎟
                                            ⎪ min ⎜    []i  ,max 1, ⎢  j= 1    ⎥  ⎟  , i >  1
                                            ⎪   ⎜   S []i    ⎜  ⎜     S []i    ⎥  ⎟ ⎢  ⎟
                                            ⎪   ⎜            ⎜                 ⎥  ⎟ ⎢  ⎟  ⎟
                                            ⎩                ⎝  ⎣ ⎝            ⎦  ⎠  ⎠
   143   144   145   146   147   148   149   150   151   152   153