robomimic自带几个高质量的离线学习算法的实现,包括模仿学习和强化学习,并提供相关工具来辅助你轻松构建自己的学习算法。
一、模仿学习(Imitation Learning)
1. BC (Behavioral Cloning)
Vanilla Behavioral Cloning, 旨在通过监督学习方式,将观察(状态)映射为行动(动作),以模仿人类或其他专家的行为。这种方法的核心思想是将专家的示范数据用作训练集,让模型学习专家在特定环境下的行为决策方式。
算法位置:Implemented in the BC class in algo/bc.py
包含一些变体如 BC_GMM (stochastic GMM policy) and BC_VAE (stochastic VAE policy)。
PS:均在bc.py中可找到
2. BC-RNN
Behavioral Cloning with an RNN network,在BC基础上,结合循环神经网络(RNN,Recurrent Neural Networks)的一种模仿学习方法。它适用于序列数据或时间依赖性任务,能够利用历史状态信息来预测当前的动作,旨在处理具有时间关联的行为决策问题。
算法位置:Implemented in the BC_RNN and BC_RNN_GMM (recurrent GMM policy) classes in algo/bc.py
3. BC-Transformer
Behavioral Cloning with an Transformer network,将Transformer引入BC的一种先进模仿学习方法。与 BC-RNN 类似,BC-Transformer 旨在处理具有时间依赖性或序列特征的任务,但通过利用 Transformer的自注意力机制,它克服了RNN网络的一些局限性,如长序列处理中的梯度消失问题。
算法位置:Implemented in the BC_Transformer and BC_Transformer_GMM (transformer GMM policy) classes in algo/bc.py
4. HBC
Hierarchical Behavioral Cloning,是BC一种层次化扩展版本,通过引入层次结构(Hierarchy),将行为克隆任务分解为多个层次,适合处理复杂的多步任务或需要长时间规划的场景。相比于普通BC,HBC能够更好地处理复杂决策,尤其是在任务分解或多阶段决策中具有优势。
算法位置:Implemented in the HBC class in algo/hbc.py
二、离线强化学习(Offline Reinforcement Learning)
1. IRIS (Iterative Reweighted Policy Iteration with Sampling)
IRIS通过对Policy和价值函数进行迭代优化,最大化从Batch Data中学到的策略表现
核心思想:
Policy Iteration:IRIS 使用迭代加权政策优化,通过分阶段优化政策和价值函数来改进策略
Reweighting:在优化过程中,IRIS 通过对样本的权重进行动态调整,使得与当前策略最相关的状态和动作在训练过程中具有更高的权重
Sampling:IRIS 还在采样策略上进行改进,确保采样分布更加关注那些对策略表现提升最为关键的状态和动作
算法位置:Implemented in the IRIS class in algo/iris.py
2. BCQ (Batch-Constrained Q-learning)
Off-Policy Deep Reinforcement Learning without Exploration
BCQ解决了传统Q-learning在离线数据中的Distributional Shift问题
核心思想:
Batch Constraint:BCQ 通过约束学习的 Q 函数,使其只能选择与训练数据(批量数据)中类似的动作,避免从未见过的数据中推断出不合理的策略
Perturbation Model:BCQ 使用一个小的扰动模型,允许对动作进行微调,从而保证策略的探索性和稳定性
算法位置:Implemented in the BCQ class in algo/bcq.py
3. CQL (Conservative Q-Learning)
Conservative Q-Learning for Offline Reinforcement Learning
CQL目标是通过对Q值进行保守估计,防止策略选择未知的、可能次优的动作
核心思想:
Conservative Estimation:CQL 在优化Q函数时,主动压低对未观测到的状态-动作对的Q值估计,从而确保策略不会倾向于选择离线数据中未见过的动作
Penalizing Actions Outside the Batch:CQL 会对不在离线数据中的动作进行惩罚,从而使得策略更加集中在已知的安全动作上
算法位置:Implemented in the CQL class in algo/cql.py.
4. IQL (Implicit Q-Learning)
Offline Reinforcement Learning with Implicit Q-Learning
IQL采用了隐式策略优化方法,通过隐式Q函数估计避免显式的策略约束
核心思想:
Implicit Policy Optimization:IQL不直接学习策略,而是通过优化Q函数的目标,隐式地引导策略的更新
Advantage-Based Updating:IQL 通过只更新高于某一阈值的策略来减少错误策略更新的可能性
算法位置:Implemented in the IQL class in algo/iql.py.
5. TD3-BC
A Minimalist Approach to Offline Reinforcement Learning
TD3 是一种用于连续控制任务的强化学习算法,通过延迟更新和双重网络结构来减少过度估计和提高策略的稳定性
核心思想:
Behavioral Cloning:TD3-BC 结合了行为克隆技术,通过直接模仿离线数据中的策略行为,从而加速训练并避免离线数据带来的偏差问题
算法位置:Implemented in the TD3_BC class in algo/td3_bc.py