Page 445 - 《软件学报》2024年第6期
P. 445

朱光辉 等: 基于自引导进化策略的高效自动化数据增强算法                                                    3021



                 3.   if t < T w  then
                 4.     从分布    N(0,I n ) 中独立采样搜索方向{δ 1 , δ 2 , …, δ Ns }
                 5.   else
                 6.     从队列     Q  中读取梯度矩阵    G ∈ R n×k  , 并将矩阵进行  QR  分解生成梯度子空间    L G  和正交补空间   L ⊥
                                                                                                   G
                 7.     根据公式     (5) 采样搜索方向{δ 1 , δ 2 , …, δ Ns }并且归一化
                 8.   end if
                 9.   for each worker i=1, 2, 3, …, m do
                 10.    将搜索方向     δ 1 , δ 2 , …, δ N 分配给  m  个工作节点
                                           s
                 11.    计算本次迭代所有搜索方向的策略评估值, 其中一次对偶实验使用的数据增强策略分别为:
                                                    
                                                    Π t,i,+ = M(W t +νδ i )
                                                    
                                                                    ,
                                                    
                                                     Π t,i,− = M(W t −νδ i )
                      其中,      i ∈ {1,2,...,N s }
                                      W t  转换成为最终的数据增强策略
                 12.    使用固定架构的子模型          M sub  在使用数据增强策略     Π t,i,+  和  Π t,i,−  的增强数据上分别进行训练, 然后得到
                 验证集准确率     F(Π t,i,+ ) 和  F(Π t,i,− ) 作为评估值
                 13.   end for
                 14.   收集  m  个节点的所有评估值       F(Π t,i,+ ) 和   F(Π t,i,− ) , 并使用  max{F(Π t,i,+ ),F(Π t,i,− )} 对方向  δ i  进行降序排序, 其
                   δ i  表示第
                 中        i 个最大的收益方向,      i ∈ {1,2,...,b}
                                          ˆ
                 15.   通过公式    (12) 估计梯度  ∇F v ( ∏ t )
                 16.  通过梯度上升法来更新下一次策略向量               W t+1 :
                                                              ˆ
                                                    W t+1 = W t +η∇F v (Π t ).
                                 ˆ
                 17.   将估计梯度    ∇F v ( ∏ t ) 压入队列  Q
                 18.   如果  t≥T w , 需要根据自引导进化策略调整公式         (5) 中的  α 值
                 19.    if t % T U  == 0 then
                 20.     将当前的策略向量值         W t+ 转换成数据增强策略      Π t+1
                                              1
                 21.   for each worker i=1, 2, 3, …, m do
                                                                      ∏
                                                                    (i)
                 22.     在子模型     M sub  上评估数据增强策略     Π t+1  获得评估值  F (  t+1 )
                 23.   end for
                 24.   收集  m  个工作节点的评估值, 计算评估均值:
                                                           1  m ∑
                                                                 (i)
                                                      F(Π t+1 ) =  F (Π t+1 ).
                                                           m
                                     Π t+1  更新到堆容器  H  中     i=1
                 25.   将   F(Π t+1 ) 和策略
                 26.   t = t+1
                 27.  end while
                 28. return H Π
                    然后, 算法将策略向量                                 Π t  , 随后使用该数据增强策略      Π t  在原始训练数据集
                 D train  上进行数据增强得到增强数据集       Π t (D train ) . 策略评估阶段需要使用子模型  M sub  对增强的数据集进行训练并
                 评估, 一般采取验证集准确率作为评估值返回给增强随机搜索算法. 最终, 增强随机搜索算法根据多个噪声样本点

                 的评估值对算法的步长和观测样本点策略向量                W t  进行更新.
                                                         ˆ
                    在每一次迭代过程时, 算法需要将估计的梯度                ∇F v ( ∏ t ) 存入到一个容量为  k 的队列容器  Q, 经过固定的预热
                 迭代次数   T w  后, 算法需要从队列    Q  中取出  k 个最近的历史评估梯度, 形成一个梯度矩阵             G t ∈ R n×k  , 然后生成梯度
                                             ⊥
                 子空间   L G  和其对应的正交补空间     L  , 根据公式   (5) 去采样搜索方向{δ 1 , δ 2 ,   ... , δ Ns }并且归一化. 评估完每个搜索
                                             G
   440   441   442   443   444   445   446   447   448   449   450