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