Page 51 - 《软件学报》2024年第4期
P. 51
陈奕宇 等: 元强化学习研究综述 1629
表 3 基于记忆和推断的元策略学习算法小结
算法名称 技术特点 源码
RL 2[51] 采用记忆神经网络自动跨任务适应 https://github.com/lucaslingle/pytorch_rl2
SNAIL [75] 结合时序卷积和软注意力机制的深度记忆元学习结构 https://github.com/eambutu/snail-pytorch
CMRL [77] 对比 RL2 能并发采样, 从而提升训练速度 −
PEARL [32] 面向单任务、简化的任务推断模块 https://github.com/katerakelly/oyster
ML-GP [78] 使用高斯过程和变分推断建模任务隐变量 −
CAVIA [79] 结合 MAML 算法和任务上下文的编码器 https://github.com/lmzintgraf/cavia
TESP [80] https://github.com/llan-ml/tesp
APE [82] PEARL 的温度系数自适应调节方法 −
MQL [33] 基于多任务目标训练历史编码器 https://github.com/amazon-science/meta-q-learning
PD-VF [83] 利用预测环境累积奖励监督训练任务隐变量模块 https://github.com/rraileanu/
policy-dynamics-value-functions
VariBAD [34] 利用变分自动编码器训练任务特征推断模块 https://github.com/lmzintgraf/varibad
HiP-BMDP [84] 将场景定义为隐参数 BMDP https://github.com/facebookresearch/mtrl
3.1.3 基于对比学习的方法
对比学习(contrastive learning)是一种自监督学习方法, 用于在没有标签的情况下, 通过让模型对比相似
或不同的数据来学习数据集的特征. 一般来说, 对比学习的目标是学习一个编码器 f, 使得对任意数据 x 有:
−
+
Dist(f(x),f(x ))<<Dist(f(x),f(x )) (10)
+
−
其中, x 是和锚点 x 相似的正样本, x 是和 x 不相似的负样本, Dist(⋅)是特征距离度量函数. 对比学习的实现难点
在于如何构造正负样本, 为实现上述目标, Oord 等人提出了 InfoNCE 损失函数 [85] :
exp( ( , xx + ))
f
L NCE = − E log (11)
f xx
i ∑ exp( ( , ))
i
+
−
其中, x i ∈X, X 中非正样本 x 的样本均视为负样本 x . Oord 等人证明了最小化 InfoNCE 损失函数能最大化锚点
x 和正样本 x 互信息的下界.
+
强化学习方面, Srinivas 等人基于动量对比学习算法 MoCo [86] 构建了强化学习的无监督表征学习方法
CURL [87] , 其中, 正样本由对锚点图像应用常见图像扩充方法得到, 其他样本均为负样本.
在元强化学习中, Fu 等人认为, 同一任务不同时刻的任务特征应当相近, 不同任务的任务特征相对疏远,
而这一假定可用于构造对比学习的正负样本集 [88] . Fu 等人基于 MoCo [86] 和 CURL [87] 构建了 CCM 算法, 算法对
比学习流程如图 9 所示. 其中, 采样轨迹按任务分类存储在经验池中, 并在对比训练中将同任务特征作为正样
本; 为使任务特征能更好地反映任务信息, CCM 还基于信息增益单独训练用于探索的智能体, 其内在奖励加
入了探索任务特征的信息增益, 且其训练梯度不回传到特征编码模块.
图 9 CCM [88] 的对比学习流程
Wang 等人提出了类似 CCM 的方法 TCL, 其中, 正负样本按采样轨迹划分而不是任务类型 [89] . Mu 等人发
现有限且复杂的元训练环境会使 InfoNCE 中的互信息的界限松弛并导致过低估计, 并设计了互信息分解优化
方法 DOMINO 以解决该问题 [90] . Raghu 等人发现, 若将深度网络模型分为特征提取层和线性分类层两部分,