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

相关推荐
dwjf3217 分钟前
机器学习(三)-多项式线性回归
人工智能·机器学习·线性回归
数据小小爬虫8 分钟前
如何利用Python爬虫获取商品历史价格信息
开发语言·爬虫·python
风清云淡_A8 分钟前
【java基础系列】实现数字的首位交换算法
java·算法
涵涵子RUSH11 分钟前
合并K个升序链表(最优解)
算法·leetcode
葡萄爱13 分钟前
OpenCV图像分割
人工智能·opencv·计算机视觉
NiNg_1_23415 分钟前
Python的sklearn中的RandomForestRegressor使用详解
开发语言·python·sklearn
黑色叉腰丶大魔王19 分钟前
《基于 Python 的网页爬虫详细教程》
开发语言·爬虫·python
爱吃西瓜的小菜鸡20 分钟前
【C语言】矩阵乘法
c语言·学习·算法
向阳逐梦32 分钟前
基于STM32F4单片机实现ROS机器人主板
stm32·单片机·机器人
WANGWUSAN6638 分钟前
Python高频写法总结!
java·linux·开发语言·数据库·经验分享·python·编程