arXiv苹果公司新论文“Self-Play”方法训练车辆道路merge的策略

arXiv苹果公司新论文“Self-Play”方法训练车辆道路merge的策略

image

附赠自动驾驶学习资料和量产经验:链接

苹果于2020年1月28日上传arXiv新论文“Towards Learning Multi-agent Negotiations via Self-Play“。

image

摘要: 做出复杂、鲁棒和安全的串行决策是智能系统的核心。这一点对复杂的多代理环境下规划尤为重要,这时候代理需要预测其他代理的意图和未来可能采取的行动。传统方法将问题表述为马尔可夫决策过程(Markov Decision Process),但解决方案通常依赖于各种假设,并且在遇到极端情况时会变得脆弱。相反,通过同时探索、交互和从环境中学习,深度强化学习(Deep RL)在寻找策略方面非常有效。利用强大的Deep RL范例,证明了自我博弈(self play)的迭代过程可以逐步创建更多不同的环境,从而学习复杂而强大的多代理策略(multi-agent policies)。在具有挑战性的交通汇聚多代理仿真中,代理必须彼此进行交互和协商,以便在路上路下成功地合并。从简单环境开始,随着训练的进行,向代理“ 池(zoo)”迭代添加越来越多样化的代理来增加其复杂性。定性地发现通过自我博弈,策略会自动学习有趣的行为,例如防御性驾驶、超车、让路以及用信号灯向其他代理传达意图。此外从数量上看,合并动作的成功率从63%显着提高到98%以上。


image

如图以上是一个交通合并场景:绿色和红色车辆想要找到一个间隙合并进去,而一些蓝色车辆想要合并出来。 为了做出可靠的决策,车辆与道路上其他车辆进行协商至关重要。

强化学习由一种用于解决MDP的算法组成,其中代理通过执行不同的动作(action)反复与随机环境交互。 策略梯度法(policy gradient)直接优化策略参数,是一种流行的连续控制算法。他们通过找到策略函数参数的梯度来直接优化预期平均奖励(reward)函数。一种广泛使用的架构,称为行动者-批评者(actor-critic),将动作替换为批评者函数,也可以通过时间差分来学习该动作,并指导行动者或策略函数的训练。

临近策略优化(PPO,Proximal Policy Optimization )是一种在线策略梯度方法,它使用随机梯度下降来最小化新的替代(surrogate)目标函数。 与传统的策略梯度算法相比,后者通常对每个数据样本执行一次梯度更新,而PPO能够以更低的样本复杂度获得更稳定的结果。

PPO优化目标是:

image

其中rt(θ) 是新旧策略的概率比,At 是估计的优势函数(advantage function)。在线无模型的策略优化算法(如PPO)不使用经验重播缓存(experience replay buffer),因此在收集经验同时减少梯度更新方差是有益的。

image

首先描述一下模拟环境,如图以上显示了多代理的拉链合并(zipper merge)RL环境,其中代理从(A,B,C)位置之一开始,目标是到达(D,E,F)目的地之一。在每个场景(episode)的开头随机选择起点和终点位置。环境的活动空间包括了加速、转向和拐弯信号。

拉链合并,也称为双重合并(double merge),通常被认为是自主代理极具挑战性的场景。因为左车道的一些代理打算向右合并,而大多数右车道上的代理需要向左合并。信号和微妙的线索被用来协商谁先走和哪个空档被填补。规划还必须在短时间内短距内完成。

为了捕获真实道路的几何形状,使用卫星图像作为参考,并使用带注释的基于折线描述的车道来近似匹配道路的不同车道和不同曲率(图中的白线)。仿真的离散时间单位为100毫秒,帧频10 Hz。

使用离散时间运动学自行车模型来模拟环境中的车辆动力学,道路网络由直的、弯曲的和折线车道的2D图组成。 直线车道由左和右边界线建模。弯曲车道是用有指定车道宽度的Clothoids建模。 最后,任意形状的车道通过单独的左右车道边界线建模。

最简单的代理,也称智能驾驶模型(IDM,intelligent driving models),它使用自适应巡航控制(ACC)从指定车道开始执行车道保持(lane- keeping):相对于前面车辆,相应地减速和加速。 在此基础上,通过差距接受度(gap acceptance )方法添加变道(lane change)功能,从而以更安全的方式进行合并。 改变期望和起始速度和加速度,以创建不同IDM代理群(彼此驾驶有所不同)。 为了区分IDM代理,将正在学习控制的代理/车辆称为自车(ego vehicle)。


强化学习框架可学习上述拉链合并环境中的协商策略。 核心是,这里学习算法是PPO策略梯度算法的分布式形式,其中并行模拟多个环境以收集经验。 首先在包括基于规则的IDM代理的环境训练一个深层RL代理,之后用之前学习过的RL代理替换部分代理来启动自我博弈。 随着自我博弈的训练,反复向训练代理群添加更多具有更新参数的RL代理。

image

如图是策略函数的体系结构图。 输入分为两种类型: 第一个是场景自上而下的栅格化图像,自车位于中央;第二个是相对于自车的其他车辆相对距离、速度和加速度的低维精确测量。 这些输入通过卷积层和全连接层传递,产生三个动作:转向、加速和转向信号。

策略函数是“端到端”的,因为绕过了传统的轨迹规划和反馈控制。 策略有两个输入流,它们通过后期融合在第三层的全连接(FC3)层进行组合。 这两个流互补,栅格化提供了空间上下文,但离散且有损。 低维度的相对测量精度很高,但不能捕获道路信息。 三层卷积神经网络用于处理栅格化流。 CNN层的处理输入通道,感受野大小为4,步幅为2。

奖励函数或成本函数对于指导搜索所需的最佳策略至关重要。 将碰撞定义为两辆车边框的相交。 当车辆质心远离任何车道中心线的距离超过0.75车道宽度时,车辆就算越界。

image

如图所示是一组代理混合集进行自我博弈训练的场景。 基于规则的IDM代理以蓝色表示,而RL代理以红色表示。 绿色的自我代理也是RL代理。 自我代理和RL代理共享相同的政策,但他们的输入表示标准化为世界的中心(请参见图中的白色箭头)。 对于每个场景,IDM代理和RL代理混合使用不同的策略参数。

image

如图是算法介绍,其中公式2即PPO目标优化函数,而代理群分布的表2如下:

image


下面展示了一些仿真的实验结果:

先是定量结果

image

然后是定性结果

image

转向加等侯合并

超车和找间隙

image

让路

防守

image

失败例子:其他车追尾

image

紧急刹车

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/534212.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

0169. 多数元素

Problem: 169. 多数元素 文章目录 思路解题方法复杂度Code 思路 利用哈希表计数,遍历一遍数组此时时间复杂度为 O ( n ) O(n) O(n),空间复杂度为 O ( n ) O(n) O(n)。 参考K神学会摩尔投票法 这个方法思想很简单,就是模拟投票,且…

嵌入式热门发展方向有哪些?

嵌入式热门发展方向有哪些? 现在越来越多的计算机、电子、通信、自动化等相关专业跨行学习嵌入式,嵌入式开发作为未来职业发展的方向,不论从薪资待遇还是发展前景来看,都非常不错。 在嵌入式领域,有多个热门发展方向&#xff0…

JVM常用参数一

jvm启动参数 JVM(Java虚拟机)的启动参数是在启动JVM时可以设置的一些命令行参数。这些参数用于指定JVM的运行环境、内存分配、垃圾回收器以及其他选项。以下是一些常见的JVM启动参数: -Xms:设置JVM的初始堆大小。 -Xmx&#xff1…

VueRouter使用,界面切换

一、安装 vue-router3,4分别对应vue2,3.。我现在用的是vue2, npm install vue-router3二、使用 ①首先在component路径下提前写好需要渲染的组件。 ②在App.vue中使用router声明路由。其中router-link的to指明渲染哪一个组件。router-view…

企业鸿蒙原生应用元服务备案实操基本材料要求

一、要提前准备的主要材料包括 域名,服务器,包名,公钥,MD5值,法人身份证正反两面,邮箱,手机号2个。 域名是备案过的,应为要求域名能打开,还要悬挂备案号。 操作时要提前沟…

【从浅学到熟知Linux】进程状态与进程优先级(含进程R/S/T/t/D/X/Z状态介绍、僵尸进程、孤儿进程、使用top及renice调整进程优先级)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程及数据库等内容。 🎯每天努力一点点,技术变化看得见 文章目录 进程状态进程状态查看R运行状态(running)S睡眠状态(sleeping&a…

CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

电脑出现正在清理已完成100%,出现正在清理已完成0%,正在准备windows请不要关闭你的计算机,电脑出现dell图标,下方没有小的旋转圆圈

1.开机发现停留在dell图标。在正上方。和平时不一样。下方没有小的旋转圆圈 2.长按电源键5秒重启 3.电脑重启后。显示正在准备windows请不要关闭你的计算机 4.电脑自动重启 5.电脑出现正在清理已完成0%,等了大概十几分钟 6.电脑出现正在清理已完成100%,等…

图片尺寸在线怎么修改大小?利用图片在线处理工具解决

在社交媒体平台上分享照片是我们日常生活中常见的活动之一。有时,我们需要调整照片的尺寸以适应社交媒体平台的要求。在线修改图片尺寸的工具可以帮助我们快速调整照片的大小,确保其在社交媒体上显示完整且美观。 压缩图网站,点击“图片改大…

Operation is not supported on this platform.

.net core 中&#xff1a; Action<string> action this.DoSome; action.BeginInvoke("button1_Click", null,null);执行报错&#xff1a; System.PlatformNotSupportedException:“Operation is not supported on this platform.”原因&#xff1a; .NET C…

基于YOLOv8的光栅检测系统(Python源码+Pyqt6界面+数据集)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;基于YOLOv8的光栅检测系统&#xff0c;并阐述了整个数据制作和训练可视化过程&#xff0c;最后通过Pyside UI界面进行展示。 博主简介 AI小怪兽&#xff0c;YOLO骨灰级玩家&#xff0c;1&#xff09;YOLOv5、v7、…

网络IO模型以及实际应用

网络IO模型 本文主要介绍了几种不同的网络IO模型&#xff0c;以及实际应用中使用到的Reactor模型等。 我们常说的网络IO模型&#xff0c;主要包含阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO。 根据第一个阶段&#xff1a;是否需要阻塞&#xff0c;分为阻塞和非阻塞IO。…

BMS系统必要参数介绍

系统参数打印解释 (1)Battery Real Capacity:表示电池实际容量值&#xff08;额定容量值是出厂给的&#xff0c;SOH电池健康度计算也可以用实际值/额定值&#xff09; (2)Battery Remain Capacity&#xff1a;表示电池剩余容量值 (3)Battery SOC&#xff1a;电池剩余容量百分比…

头歌-机器学习 第12次实验 Adaboost算法

第1关&#xff1a;什么是集成学习 任务描述 本关任务&#xff1a;根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.什么是集成学习。 什么是集成学习 集成学习方法是一种常用的机器学习方法&#xff0c;分为b…

Unity 遮罩

编辑器版本 2017.2.3f1 学习Unity的三张遮罩方式 1. Mask 遮罩方式 首先&#xff0c;在界面上创建2个Image&#xff0c;一个命名Img_Mask,大小设置 400* 400&#xff0c; 一个命名Img_Show,大小设置500*500。 然后&#xff0c;给 Img_Mask添加Mask,选择Img_Mask,点击Add Com…

面试算法-170-二叉树的最大深度

题目 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 解 class Solution {public int maxDepth(TreeNod…

卷积运算及实现

本文介绍卷积运算及实现。 1.定义 线性时不变系统的输出是输入样本与系统的冲激响应的卷积。这里假设输入样本为x(n)&#xff0c;系统冲激响应为h(n)&#xff0c;系统输出为y(n)&#xff0c;则 线性卷积计算过程包含以下4个步骤&#xff1a; 1)折叠&#xff0c;关于l0&#…

The C programming language (second edition,KR) exercise(CHAPTER 2)

E x c e r c i s e 2 − 1 Excercise\quad 2-1 Excercise2−1&#xff1a;输出结果如图1和图2所示&#xff0c;这道练习题需要文章1和文章2的知识。 #include <stdio.h> #include <limits.h>float getFloat(char sign, unsigned char exp, unsigned mantissa); do…

抖音小店无货源怎么做?新型无货源玩法,帮商家躲避无货源处罚!

大家好&#xff0c;我是电商糖果 关于现在抖店的商家&#xff0c;是谈“无货源”色变&#xff0c;被平台罚怕了。 动不动就是扣分&#xff0c;扣2000的保证金&#xff0c;商家是苦不堪言。 又不舍得放弃抖音小店现在热度和风口。 糖果做抖音小店无货源有四年时间了&#xf…

WritableComparable排序案例实操

文章目录 WritableComparable排序概述第一个案例需求&#xff08;全排序&#xff09;代码实现结果分析 第二个案例需求&#xff08;二次排序&#xff09;问题分析和代码结果分析 第三个案例需求&#xff08;区内排序&#xff09;需求分析代码实现结果分析 WritableComparable排…