0

0

单GPU实现20Hz在线决策,最新基于序列生成模型的高效轨迹规划方法解读

王林

王林

发布时间:2023-04-13 10:43:02

|

1955人浏览过

|

来源于51CTO.COM

转载

之前我们介绍了基于 transformer 和扩散模型(diffussion model)的序列建模(sequence modelling)方法在强化学习,特别是离线连续控制领域的应用。这其中 trajectory transformer(tt)和 diffusser 属于基于模型的规划型算法,它们展现出了非常高精度的轨迹预测已经很好的灵活性,但是相对来说决策延迟也比较高。尤其是 tt 将每个维度独立离散化作为序列中的符号,这使得整个序列变得非常长,而且序列生成的耗时会随着状态和动作的维度提升快速升高。

为了让轨迹生成模型能被达到实用级别的决策速度,我们在和 Diffusser 平行(有重叠但是应该稍晚)的时候开始了高效轨迹生成与决策的项目。我们首先想到的是用连续空间内的 Transformer+Mixture of Gaussian 而非离散分布来拟合整个轨迹分布。虽然不排除实现上的问题,但是这种思路下我们没能获得一个比较稳定的生成模型。随后我们尝试了 Variational Autoencoder(VAE),并且取得了一定的突破。不过 VAE 的重建(reconstruction)精度不是特别理想,使得下游的控制表现和 TT 相差比较大。在几轮迭代之后,我们最终选定了 VQ-VAE 作为轨迹生成的基础模型,最终得到了一个能高效采样和规划,并且在高维度控制任务上表现远超其它基于模型方法的新算法,我们称为 Trajectory Autoencoding Planner(TAP)。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

  • 项目主页:https://sites.google.com/view/latentplan
  • 论文主页:https://arxiv.org/abs/2208.10291

规划效率与高维下的表现

在单个 GPU 下,TAP 能轻松以 20Hz 的决策效率进行在线决策,在低维度的 D4RL 任务中下决策延迟只有 TT 的 1% 左右。更重要的是随着任务状态和动作维度 D 的增加,TT 的理论决策延迟会以三次方增长图片,Diffusser 理论上会线性增长图片  ,而 TAP 的决策速度则不受维度影响 图片。而在智能体的决策表现方面,随着动作维度增高,TAP 相对于其它方法的表现出现了提升,相对于基于模型方法(如 TT)的提升尤为明显。

决策延迟对决策和控制任务的重要性是非常明显的,像 MuZero 这样的算法虽然在模拟环境中表现优异,但是面对现实世界中需要实时快速响应的任务,过高的决策延迟就会成为它部署的一大困难。此外,在拥有模拟环境的前提下,决策速度慢也会导致类似的算法的测试成本偏高,同时被运用在在线强化学习中的成本也会比较高。

此外,我们认为让序列生成建模方法能顺利扩展到维度较高的任务上也是 TAP 一个很重要的贡献。现实世界中我们希望强化学习能最终解决的问题其实大都有较高的状态和动作维度。比如对于自动驾驶来说,各路传感器的输入哪怕经过各种感知层面的预处理也不太可能小于 100。复杂的机器人控制往往也有很高的动作空间,人类的所有关节自由度大概是 240 左右,也就对应了至少 240 维的动作空间,一个和人一样灵活的机器人也需要同样高维的动作空间。

图片

四组维度逐渐升高的任务

图片

决策延迟和相对模型表现随着任务维度增长的变化

方法概述

首先,训练 VQ-VAE 的自编码器 (autoencoders) 部分,这里和原本 VQ-VAE 有两个不同。第一个不同是编码器和解码器都是基于 Causal Transformer,而不是 CNN。第二个不同则是我们学习了一个条件概率分布,被建模的可能的轨迹都必须从当前状态 图片出发。自编码器学习一个从当前状态 图片开始的轨迹和隐编码(latent codes)之间的双向映射。这些隐编码和原本轨迹一样按时间顺序排列,每个隐编码会被对应到实际 图片步轨迹。因为我们使用了 Causal Transformer,时间排位靠后的隐编码 (如 图片) 不会将信息传到排位靠前的序列(如 图片),这使得 TAP 可以通过前 N 个隐编码部分解码出长度为 NL 的轨迹,这在后续用它进行规划时是非常有用的。

图片

随后我们会用另一个 GPT-2 式的 Transformer 来建模这些隐编码的条件概率分布 图片

图片

在决策时,我们可以通过在隐变量空间内进行优化寻找最好的未来轨迹,而不是在原动作空间进行优化。一个非常简单但也能起效的方法就是直接从隐编码的分布中进行采样,然后选取表现最好的轨迹,如下图:

有道智云AI开放平台
有道智云AI开放平台

有道智云AI开放平台

下载

图片

在选择最优轨迹的时候参考的目标分数 (objective score) 会同时考虑轨迹的预期收益(奖励加最后一步的估值)和这条轨迹本身的可行性或者说概率。如下面这个公式,其中 图片是一个远大于最高 return 的数,当轨迹的概率高于一个阈值图片 ,评判这条轨迹的标准会是它的预期收益(红色高亮),否则这条轨迹的概率本身将会是主导部分(蓝色高亮)。也就是说 TAP 会在大于阈值的轨迹中选择一条预期收益最高的。

图片

虽然采样数量足够大了以后直接采样在预测序列较短的时候效果也可以很好,在限制采样数量和规划所需的总时间的前提下,用更好的优化器还是会带来更好的表现。以下两个动图展示了当要预测未来 144 步以后用直接采样和 beam search 产生的轨迹的区别。这些轨迹被按最后的目标分数排序,在最上层最前面的轨迹分数越高,在被叠在后面的轨迹分数越低。另外分数低的轨迹同时透明度也会越低。

在图中我们可以看到直接采样产生的轨迹很多动态都不太稳定也不太符合物理规律,尤其是背景里比较淡的轨迹几乎都是飘着走的。这些都是概率比较低的轨迹,在最终选择方案的时候会被剔除。在最前排的轨迹看起来动态要更真实一些,但是相对应的表现就比较差,似乎要摔倒了。而相比之下,beam search 在展开下一个隐变量的时候就会动态考虑轨迹的概率,使得概率很低的分支会被提前终结,这样产生的候选轨迹就都集中在表现较好而且可能性比较大的轨迹周围了。

图片

直接采样

图片

Beam search

实验结果

在没有更高级的估值以及策略提升的情况下,仅仅依靠预测精度的优势,在低维度的任务上 TAP 就取得了和其它离线强化学习相当的表现:

图片

gym locomotion control

在高维的任务上,TAP 取得了远超其它基于模型的方法的表现,同时也胜过了常见的无模型方法。这里其实有两个还未有解答的开放性问题。首先是为什么此前基于模型的方法在这些高维度的离线强化学习任务中表现较差,其次是为什么 TAP 在这些任务上表现又能反超很多无模型方法。我们的一个假设是因为在高维问题上进行策略优化又要考虑防止策略偏离行为策略太多是非常困难的。当学习了一个模型,模型本身的误差可能还会放大这种困难。而 TAP 将优化空间搬到了一个很小的离散隐变量空间,这使得整个优化过程的鲁棒性更强了。

图片

adroit robotic hand control

一些切片研究

对于 TAP 里面的诸多设计,我们也在 gym locomotion control 的任务上做了一系列切片研究。首先是每个隐编码实际对应的轨迹的步数图片(黄色柱状图),事实证明让一个隐变量对应多步状态转移不光有计算上的优势,在最后模型表现上也有提升。通过调节搜索的目标函数中触发低概率轨迹惩罚的阈值 图片(红色柱状图),我们也确认了目标函数中两个部分确实都对模型最后表现是有帮助的。另外一点就是向未来规划的步数(planning horizon,蓝色柱状图)对模型表现的影响反而不大,在部署后的搜索中哪怕只展开一个隐变量最后智能体的表现也只会降低 10% 左右。

最后我们尝试了直接采样的情况下 TAP 的表现(绿色柱状图)。注意这里的采样的样本数量是 2048 而上面的动图里只有 256,而且上面的动图是生成了未来 144 步的规划,但是实际我们的基础模型指挥规划 15 步。结论是直接采样在样本数量足够的情况下,且规划路径不长,那么直接采样也能获得和 beam search 相近的表现。但是这是从学到的隐变量条件分布中采样的情况,如果直接从隐编码中直接等概率采样,那最后还是会比完整的 TAP 模型差很多。

图片

切片研究的结果

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

16

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

23

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

75

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

95

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

218

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

420

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

168

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

222

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

33

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 4.9万人学习

Go 教程
Go 教程

共32课时 | 6.1万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号