robomimic基础教程(三)——自带算法

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: Implicit Reinforcement without Interaction at Scale for Learning Control from Offline Robot Manipulation Data

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

相关推荐
AIAdvocate几秒前
Pandas_数据结构详解
数据结构·python·pandas
小言从不摸鱼2 分钟前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
AI科研视界24 分钟前
ChatGPT+2:修订初始AI安全性和超级智能假设
人工智能·chatgpt
jiao0000126 分钟前
数据结构——队列
c语言·数据结构·算法
霍格沃兹测试开发学社测试人社区27 分钟前
人工智能 | 基于ChatGPT开发人工智能服务平台
软件测试·人工智能·测试开发·chatgpt
小R资源1 小时前
3款免费的GPT类工具
人工智能·gpt·chatgpt·ai作画·ai模型·国内免费
迷迭所归处1 小时前
C++ —— 关于vector
开发语言·c++·算法
FreakStudio2 小时前
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
python·嵌入式·面向对象·电子diy
leon6252 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林2 小时前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先