Page 187 - 《软件学报》2025年第5期
P. 187

杨尚东 等: 基于分组对比学习的序贯感知技能发现                                                        2087



                 算法  1. GCSSD  算法 (训练).
                                     T train = {T 1 ,...,T I }  , 初始化技能表征网络参数   、策略网络参数   , 训练轨迹回放缓存
                 输入: 训练任务分布集合                                           η              θ
                 B train  , 分组技能轨迹回放缓存  B = {B 1 ,B 2 ,...,B K }  ;
                                    η 、策略网络参数   .
                                                  θ
                 输出: 技能表征网络参数
                 1. 对各任务, 根据  π ran (a | s,⃗ g) 采样得到运动轨迹  τ i  和奖励轨迹  ρ i  , 通过计算得到   K  种技能, 初始化  z train = {z 1 ,...,z K } ,
                 以及每个任务类型      T i  对应的技能执行顺序.
                      e = 0,...,E   do
                 2. For
                                                                                                 ,
                 3.  采样任务   T i  , 根据   T i  技能顺序   i 1 ,...,i N  , 用   π θ (a | s,⃗ g,⃗z i ) 采样轨迹   τ 存入   B train  , 其中  ⃗z i = (z i 1  ,z i 2  ,...,z i N  ) i 1 ,...,i N ∈
                    {1,...,K} .
                                             1  2  N
                 4.  if   τ i  是成功轨迹, 则将  τ i  分为   (τ ,τ ,...,τ ) , 分别存入   B 中的   } i 1 ,...,i N ∈ {1,...K} .
                                                                                ,
                                             i  i  i               {B i 1  ,B i 2  ,...,B i N
                 5.   从  B train  中取轨迹数据, 用公式  (2) 计算  L θ  并更新  π θ  .
                 6.  if   e % Freq = 0  and   ∀k ∈ 1,...,K, |B k | ⩾ M
                 7.   从  B 的   K  个缓存中各取  M  条分组轨迹数据, 用公式     (1) 计算   L η  并更新  e η  .
                 8.   更新  z train = {z 1 ,z 2 ,...,z K } , 其中  z k = ¯z k k = 1,...,K  .
                                                   ,
                 9. End
                    在  GCSSD  中, 策略测试如算法     2  所示.

                 算法  2. GCSSD  算法 (测试).
                                     T test = {T 1 ,...,T J }  , 训练完成的技能表征网络参数   、策略网络参数   , 测试回放缓存
                                                                                           θ
                                                                            η
                 输入: 训练任务分布集合
                 B test = {{B 1,1 ,...,B 1,N },...,{B J,1 ,...,B J,N }}  ;
                 输出: 测试结果.
                 1. For   e = 0,...,E   do
                 2.  采样任务   T j  , 用  π θ (a | s,⃗ g,⃗z j ) 采样  τ j  .
                                             1    N                (B j,1 ,...,B j,N ) .
                 3.  if   τ j  是成功轨迹, 则将  τ j  分为  (τ ,...,τ ) , 分别存入   B test  中的
                                             j
                                                  j
                 4.  if   e % Freq = 0  and   ∀n ∈ 1,...,N,|B j,n | ⩾ M
                 5.   从  {B j,1 ,...,B j,N } 中各取  M  条分段轨迹, 用公式  (3) 计算并更新技能表征  ⃗z j  .
                 6. End

                 4   实验及结果分析

                    在本节中, 我们通过两个不同场景下的仿真实验来验证所提出的                      GCSSD  方法的可行性, 并与其他相关的强
                 化学习方法进行比较. 首先, 我们给出了实验的仿真场景, 并介绍其相关设置; 随后, 我们介绍了用于对比的基线方
                 法, 以及  GCSSD  的参数设定; 最后, 结合实验结果和仿真特性分析             GCSSD  的优势.

                 4.1   实验平台
                    在本文中, 我们使用一个离散动作空间任务网格世界和一个连续动作空间任务质点控制测试所提出的
                 GCSSD  算法. 在离散任务中, 我们用在策略的强化学习算法作为基线进行比较, 在连续任务中, 我们采用离策略的
                 强化学习算法作为基线进行比较. 下面将会对两个实验平台进行阐述.

                 4.1.1    网格世界
                    本文设计了一种面向稀疏奖励下的多目标导向强化学习的网格世界, 在这个任务中, 智能体在每个状态可选
                 “上”“下”“左”“右”这   4  个动作, 如图  4  所示.
   182   183   184   185   186   187   188   189   190   191   192