当前位置: 首页 > article >正文

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


http://www.kler.cn/news/307859.html

相关文章:

  • 【Linux】ICMP
  • 【开端】docker基线漏洞修复
  • React-Hooks-Form 集成 Zod 校验库
  • go get -u @latest没有更新依赖模块
  • 如何通过深度学习实践来理解深度学习的核心概念
  • Ubuntu 24.04中安装virtualenv
  • QT + WebAssembly + Vue环境搭建
  • JS面试真题 part4
  • 【Spring框架精讲】进阶指南:企业级Java应用的核心框架(Spring5)
  • NX二次开发—批量导出点工具
  • html限制仅有一个音/视频可播放
  • 阿里云社区领积分自动打卡Selenium IDE脚本
  • How to see if openAI (node js) createModeration response “flagged“ is true
  • 代码随想录算法训练营第五十八天 | 拓扑排序精讲-软件构建
  • Arduino IDE离线配置第三方库文件-ESP32开发板
  • 8.JMeter+Ant(基于工具的实现接口自动化,命令行方式)
  • 常见的限流算法
  • 【C/C++】程序的构建(编译)过程概述
  • 【C++】函数重载
  • Python使用pymysql返回字典类型的数据
  • yum本地源配置
  • 基于 SpringBoot 的车辆充电桩管理系统
  • 医药|基于springboot的医药管理系统设计与实现(附项目源码+论文+数据库)
  • JAVA算法数据结构第一节稀疏矩阵
  • ADB ROOT开启流程
  • C# AutoResetEvent ManualResetEvent Mutex 对比
  • 54.【C语言】 字符函数和字符串函数(strncpy,strncat,strncmp函数)
  • ip映射域名,一般用于mysql和redis的固定映射,方便快捷打包
  • python基本数据类型简记
  • vue3 组合式API defineEmits() 与 emits 组件选项