【笔记】自动驾驶预测与决策规划_Part6_不确定性感知的决策过程

文章目录

  • 0. 前言
  • 1. 部分观测的马尔可夫决策过程
    • 1.1 POMDP的思想以及与MDP的联系
      • 1.1.1 MDP的过程回顾
      • 1.1.2 POMDP定义
      • 1.1.3 与MDP的联系及区别
        • POMDP 视角
        • MDP 视角
        • 决策次数对最优解的影响
    • 1.2 POMDP的3种常规解法
      • 1.2.1 连续状态的“Belief MDP”方法
        • 1. 信念状态的定义
        • 2. Belief MDP 的过程
        • 3. 问题的求解
        • 4. 值迭代的递推公式
        • 5. 维度爆炸问题
      • 1.2.2 有限前瞻深度策略
        • 1.方法概述
        • 2.求解步骤
        • 3.优化技巧
      • 1.2.3 在MDP中规划
        • 1.主要步骤
        • 2.优缺点
  • 2. EPSILON 系统解析
    • 2.1 自动驾驶决策规划现存问题
    • 2.2 系统概述
    • 2.3 问题描述
    • 2.4 整体流程
  • 3. MARC 解读—— Multipolicy and Risk-aware Contingency Planning for Autonomous Driving
  • 4. 参考链接

0. 前言

本文主要记录课程《自动驾驶预测与决策技术》的学习过程,难免会有很多纰漏,感谢指正。
课程链接:https://www.shenlanxueyuan.com/my/course/700
相关笔记链接:
Part1_自动驾驶决策规划简介
Part2_基于模型的预测方法
Part3_路径与轨迹规划
Part4_时空联合规划
Part5_决策过程

1. 部分观测的马尔可夫决策过程

1.1 POMDP的思想以及与MDP的联系

1.1.1 MDP的过程回顾

1.1.2 POMDP定义

请添加图片描述

1.1.3 与MDP的联系及区别

请添加图片描述
请添加图片描述

在这个“开门与老虎”例子中,解释了 POMDP 和 MDP 的区别与联系。

POMDP 视角

在这个图中,智能体面对两扇门,一扇门后有老虎,另一扇门是逃生的出口。问题在于,智能体无法直接观察门后是什么,必须通过“listen”(听老虎的声音)来推测老虎的位置。

  1. 状态(S0 和 S1):老虎可能在左边(S0),或者在右边(S1)。状态的变化依赖于智能体的行为。
  2. 动作集(A):智能体可以选择听(listen)或直接开左边门(open left)或右边门(open right)。
  3. 观察集:智能体不能直接知道老虎在哪里,但可以通过听老虎的声音获取部分信息。听到左边的声音意味着老虎可能在左边,听到右边的声音则相反。
  4. 观察概率(Pr):当老虎在左边(S0)时,听到左边的声音的概率是 0.85,而听到右边声音的概率是 0.15(有一定的不确定性)。同样,老虎在右边时的观察概率是对称的。
  5. 奖励:开错门导致 -100 分的惩罚,开对门获得 +10 分的奖励,而“听”的行为有一个代价 -1。

在 POMDP 模型中,智能体只能通过“听”这种部分观察行为来推测当前的状态,它无法直接看到老虎的位置。这种不确定性体现了 POMDP 的核心特点——智能体不能完全观察到环境的真实状态,只能基于观察推测。

MDP 视角

如果我们假设智能体可以直接看到老虎的位置,那么这个问题就变成了一个 MDP 问题:

  • 状态:智能体知道老虎的位置。
  • 动作:智能体可以直接选择开哪扇门。
  • 奖励与惩罚:仍然是开错门得到 -100 分,开对门 +10 分。

在 MDP 中,智能体能完全观察到当前状态,因此它可以立即根据观察作出正确的决策,比如看到老虎在左边时就开右边的门,没有不确定性。

决策次数对最优解的影响

请添加图片描述

在“开门与老虎”的 POMDP 问题中,决策次数的不同会影响如何寻找最优解。通过不同的决策时间范围(1次、2次、100次决策)来探索最优策略。

  1. 只能做一次决策

如果只能做一次决策,最优解比较简单,因为你没有时间去“听”并获得更多信息。在这种情况下,你无法改善对状态的认知,只能基于当前的信念状态做出决策。假设初始状态下老虎可能在左边或右边的概率是 50%。

  • 最优策略:此时直接选择开门,因为“听”的行为会消耗 -1 的代价,且你没有足够的回合来平衡这个损失。由于没有任何信息提示,选择任意一扇门的期望是一样的:直接开门会带来 -45 的期望收益(50%概率开对门得到 +10,50%概率开错门得到 -100)。
  1. 可以做两次决策

如果有两次决策机会,策略会更加复杂,因为你可以选择“听”一次,然后根据听到的信息来做更明智的选择。

  • 策略 1:首先执行“listen”行动,通过听到的老虎位置的信息更新你的信念状态。

    • 听到老虎在左边时,你推测老虎确实在左边的概率是 85%,在右边的概率是 15%。
    • 听到老虎在右边时,你推测老虎在右边的概率是 85%,在左边的概率是 15%。
  • 最优策略:通过“listen”获得信息后,你的下一步决策(开左门还是开右门)基于更新后的信念状态。如果听到左边的老虎声音,你应开右门(85%的概率成功),听到右边的声音则开左门。

期望收益

  • 听到老虎在左边:85%概率开对门,期望为 ( 0.85 × 10 + 0.15 × ( − 100 ) = − 4 (0.85 \times 10 + 0.15 \times (-100) = -4 (0.85×10+0.15×(100)=4)。
  • 听到老虎在右边:同理,期望为 -4。
  • 听的代价是 -1,所以最终期望收益为 ( − 4 − 1 = − 5 ) ( -4 - 1 = -5) (41=5)

相比于不听直接开门(期望收益 -45),听一次然后做决策的期望收益更好。

  1. 可以做 100 次决策

如果有 100 次决策机会,这就变成了长期规划的问题。你可以通过反复“听”来更新信念,并最大化未来决策的累积奖励。在这种情况下,你可以多次选择“listen”来降低不确定性,但每次“听”都有代价,因此需要平衡“听”的次数和总期望奖励。

  • 策略

    • 开始时先进行几次“listen”来逐渐提高对老虎位置的把握,直到信念状态足够明确(比如 95% 的信心)。
    • 然后再根据当前的信念选择开门。
  • 最优策略

    • 在较早阶段可以多听几次,但不宜过多,因为每次“listen”都会有 -1 的代价。
    • 在信念足够明确时,停止“listen”,选择开门。如果老虎位置的概率已经非常确定(例如 >95%),继续“听”的收益就不如直接开门的收益高。

在这种长期决策中,POMDP 的策略可以通过动态规划贝尔曼方程来求解,这样可以在多次决策过程中找到最优的策略。

总结:

  • 1次决策:直接开门,期望收益是 -45。
  • 2次决策:先听一次再开门,期望收益是 -5。
  • 100次决策:先听几次(逐渐增加对老虎位置的确定性),然后开门,期望收益可以更高,具体取决于使用的策略优化算法。

在多次决策问题中,通过不断获取信息来更新信念状态可以大幅提升期望收益,这也是 POMDP 的强大之处。请添加图片描述
请添加图片描述

1.2 POMDP的3种常规解法

1.2.1 连续状态的“Belief MDP”方法

请添加图片描述
请添加图片描述

使用Belief MDP 方法在连续状态空间中的基本思路及求解过程:

1. 信念状态的定义

信念状态是对系统当前状态的概率分布。由于在 POMDP 问题中,状态不是完全可观测的,智能体需要根据历史信息(包括过去的动作和观测)推测当前系统的状态,这种推测即信念状态 ( b ) ( b ) (b)

在经典 POMDP 问题中,由于状态是部分可观测的,智能体需要根据所做的观测推断出系统可能处于的状态分布,这个推断称为信念状态(Belief State)

  • 信念状态 ( b ( s ) ) ( b(s) ) (b(s)) 是一个概率分布,表示智能体对系统实际状态的估计。具体来说,信念状态是根据历史的观测、动作、奖励等信息,对当前状态的条件概率分布。对于每一个状态 ( s ) ( s ) (s),信念状态 ( b ( s ) ) ( b(s) ) (b(s)) 表示智能体认为系统处于状态 ( s ) ( s ) (s) 的概率。

  • 将 POMDP 问题转化为信念 MDP 时,我们不再直接处理原始的部分可观测的状态,而是在信念空间上处理这个问题。因此,信念 MDP 具有完全可观测性。

2. Belief MDP 的过程

为了处理部分可观测性问题,POMDP 转化为Belief MDP 问题。Belief MDP的目标是找到在信念空间中的最优策略,即在当前的信念状态下采取什么动作能够最大化期望奖励。

  • 动态模型:系统从信念状态 ( b t ) ( b_t ) (bt) 转移到新的信念状态 ( b t + 1 ) ( b_{t+1} ) (bt+1),通过执行动作 ( a t ) ( a_t ) (at) 并观测到新的观测 ( o ) ( o ) (o) 后,更新信念状态。

  • 奖励函数:对于每一个信念状态,奖励 ( r ( b t , a t ) ) ( r(b_t, a_t) ) (r(bt,at)) 是在信念 ( b t ) ( b_t ) (bt) 下采取动作 ( a t ) ( a_t ) (at) 所带来的即时奖励。

3. 问题的求解

利用值迭代的方法求解信念 Belief MDP 的过程:

  • 期望奖励函数 ( V π ( b 0 ) ) ( V^\pi(b_0)) (Vπ(b0)):给定初始信念 ( b 0 ) ( b_0) (b0) 和策略 ( π ) ( \pi) (π),期望的回报是未来每一个时刻 ( t ) ( t ) (t) 的奖励的加权和,即:
    V π ( b 0 ) = ∑ t = 0 ∞ γ t E [ R ( s t , a t ) ∣ b 0 , π ] V^\pi(b_0) = \sum_{t=0}^{\infty} \gamma^t E[R(s_t, a_t) | b_0, \pi] Vπ(b0)=t=0γtE[R(st,at)b0,π]
    其中 ( γ ) ( \gamma ) (γ)是折扣因子。

  • 最优策略:通过优化该期望回报 ( V π ( b 0 ) ) ( V^\pi(b_0) ) (Vπ(b0)),可以找到一个最优策略 ( π ∗ ) ( \pi^*) (π),即:
    π ∗ = arg ⁡ max ⁡ π V π ( b 0 ) \pi^* = \arg\max_\pi V^\pi(b_0) π=argπmaxVπ(b0)

4. 值迭代的递推公式

为了计算Belief MDP 中每个信念状态的值,可以使用值迭代算法,其递推公式为:
V ∗ ( b ) = max ⁡ a ∈ A [ r ( b , a ) + γ ∑ o ∈ O P ( o ∣ b , a ) V ∗ ( τ ( b , a , o ) ) ] V^*(b) = \max_{a \in A} \left[ r(b, a) + \gamma \sum_{o \in O} P(o | b, a) V^*(\tau(b, a, o)) \right] V(b)=aAmax[r(b,a)+γoOP(ob,a)V(τ(b,a,o))]
这个公式表示,在信念状态 ( b ) ( b) (b) 下,采取动作 ( a ) ( a ) (a) 能带来的最大化的预期回报。这里包括:

  • 即时奖励 ( r ( b , a ) ) ( r(b, a) ) (r(b,a))
  • 未来奖励的加权和,未来的信念状态由信念更新公式 ( τ ( b , a , o ) ) ( \tau(b, a, o) ) (τ(b,a,o)) 计算得到。
5. 维度爆炸问题

Belief MDP 的核心问题是维度爆炸,因为信念状态空间是连续的,而每个信念状态都需要计算其值函数。这在处理高维度的信念空间时,计算量会变得极为庞大,因此通常需要采用近似算法进行求解。

1.2.2 有限前瞻深度策略

这种方法的核心思想是对未来的状态和动作进行有限深度的前瞻,并基于此进行优化,类似于模型预测控制 (MPC) 的思路。

请添加图片描述
请添加图片描述

1.方法概述
  1. 有限前瞻

    • 由于 POMDP 的状态空间通常非常大,完全求解的计算量巨大,因此该方法通过对动作序列和观测进行有限步的前瞻来简化问题。
    • 图中展示了一个状态-动作-观测的搜索树,在树中,智能体从根节点(当前状态)出发,通过一系列动作和观测进行扩展,每次前瞻 ( H ) ( H ) (H)步。
  2. 剪枝策略

    • 为了减少计算量,常常会对某些不太可能的观测进行剪枝,保留更有可能出现的观测结果。这使得状态空间不会呈指数增长,优化计算资源。
  3. 树结构中的节点数

    • 图右侧给出了有限前瞻过程中的节点数计算公式,节点数量随着动作 ( A ) ( A) (A) 和观测 ( O ) (O) (O) 的种类,以及前瞻步数 ( H ) ( H ) (H) 指数级增加。因此,通过剪枝和合理的搜索策略来减少需要评估的节点非常重要。
2.求解步骤
  • 前瞻搜索:从当前状态出发,模拟未来可能的动作和观测序列。每个动作序列对应未来一系列的状态和奖励。
  • 评估策略:在每个前瞻步长结束时,对不同的动作序列进行评估,根据预期回报选择最佳的动作序列。
  • 执行最优动作:基于评估的结果,执行当前最优的第一个动作,并将该动作的观测结果作为下一步的输入,重复上述过程。
3.优化技巧
  • ( α \alpha α)-向量技巧:用于加速计算值函数,使得每一个信念状态可以用一个超平面表示。
  • 蒙特卡洛树搜索(MCTS):该方法可以从当前状态出发,逐步扩展状态和观测序列,通过模拟未来可能的动作结果,减少计算复杂度。

1.2.3 在MDP中规划

请添加图片描述

其核心思想是将概率最大的置信状态作为实际状态来处理,类似于假设系统的状态总是最有可能的那一个。

1.主要步骤
  1. 置信状态假设

    • 假设当前最可能的置信状态代表系统的真实状态,即我们并不处理所有可能的状态,而是聚焦在当前置信度最高的那个状态。
  2. 通过滤波跟踪状态

    • 使用类似于滤波的技术来不断更新和跟踪这个置信状态的概率分布。滤波器会根据新观测来调整系统对当前状态的估计,确保我们使用的状态是最可能的。
  3. 选择最优动作

    • 在每个时刻,根据当前估计的最可能状态,选择该状态下的最优动作(通常是基于预先定义的策略或价值函数)。
2.优缺点
  • 优点:该方法在计算上较为高效,因为它简化了问题,将复杂的概率分布问题转化为一个确定性问题。
  • 缺点:当系统不确定性较高时(即多种状态可能同时存在),这种方法可能会失败。因为它无法主动收集更多信息来提高置信度,只依赖于被动更新的置信状态。

这类方法适用于那些不确定性较小的场景,但在高度动态且不确定性较大的环境下,可能效果不佳。

2. EPSILON 系统解析

该部分只做general的介绍,详细的流程可以参考论文及以下链接:

  • https://github.com/HKUST-Aerial-Robotics/EPSILON

  • EPSILON: An Efficient Planning System for Automated Vehicles in Highly Interactive Environments

  • EPSILON论文解读、代码ROS2-Carla重构、实车部署全记录

2.1 自动驾驶决策规划现存问题

请添加图片描述
请添加图片描述

2.2 系统概述

请添加图片描述

2.3 问题描述

请添加图片描述请添加图片描述
请添加图片描述

2.4 整体流程

Efficient Behavior Planning – Motivating Example
请添加图片描述

Efficient Behavior Planning – Guided Action Branching
请添加图片描述
请添加图片描述
Efficient Behavior Planning – Multi-agent Forward Simulation
请添加图片描述
Efficient Behavior Planning – Safety Mechanism
请添加图片描述
Efficient Behavior Planning – Policy Selection
请添加图片描述

基于时空语义走廊的轨迹生成

请添加图片描述

3. MARC 解读—— Multipolicy and Risk-aware Contingency Planning for Autonomous Driving

该部分没有听太懂,还是要结合论文去看。可参考以下链接:

  • MARC: Multipolicy and Risk-Aware Contingency Planning for Autonomous
    Driving
  • MARC: Multipolicy and Risk-aware Contingency Planning for Autonomous
    Driving - 论文推土机的文章
  • MARC:一种安全又高效的时空联合规划的方法

请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述请添加图片描述
请添加图片描述请添加图片描述

请添加图片描述
请添加图片描述

4. 参考链接

  • 《自动驾驶预测与决策技术》

  • Part1_自动驾驶决策规划简介

  • Part2_基于模型的预测方法

  • Part3_路径与轨迹规划

  • Part4_时空联合规划

  • Part5_决策过程

  • https://github.com/HKUST-Aerial-Robotics/EPSILON

  • EPSILON: An Efficient Planning System for Automated Vehicles in Highly Interactive Environments

  • EPSILON论文解读、代码ROS2-Carla重构、实车部署全记录

  • MARC: Multipolicy and Risk-Aware Contingency Planning for Autonomous
    Driving

  • MARC: Multipolicy and Risk-aware Contingency Planning for Autonomous
    Driving - 论文推土机的文章

  • MARC:一种安全又高效的时空联合规划的方法

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBoot】 黑马大事件笔记-day2

目录 用户部分 实体类属性的参数校验 更新用户密码 文章部分 规定josn日期输出格式 分组校验 上期回顾:【SpringBoot】 黑马大事件笔记-day1 用户部分 实体类属性的参数校验 对应的接口文档: 基本信息 请求路径:/user/update 请求方式&#…

HarmonyOS入门 : 获取网络数据,并渲染到界面上

1. 环境搭建 开发HarmonyOS需要安装DevEco Studio,下载地址 : https://developer.huawei.com/consumer/cn/deveco-studio/ 2. 如何入门 入门HarmonyOS我们可以从一个实际的小例子入手,比如获取网络数据,并将其渲染到界面上。 本文就是基于…

AndroidStudio-视图基础

一、设置视图的宽高 1.在XML文件中设置视图宽高 视图宽度通过属性android:layout_width表达,视图高度通过属性android:layout_height表达,宽高的取值主要有下列三种: (1)wrap_content:表示与内容自适应。对于文本视图来说&…

三菱QD77MS定位模块紧急停止功能

“紧急停止功能” 是通过简单运动模块的外部输入连接用连接器上连接的紧急停止输入,对同服放大器的全部轴进行批量停止的功能。(初始值为“0:有效”。)通过“[r.82]紧急停止有效/无效设置”可以选择紧急停止输入的有效/无效。 [1]控制内容 将“[r82]紧急停止有效/无…

Android JNI 技术入门指南

引言 在Android开发中,Java是一种主要的编程语言,然而,对于一些性能要求较高的场景(如音视频处理、图像处理、计算密集型任务等),我们可能需要使用到C或C等语言来编写底层的高效代码。为了实现Java代码与C…

Js — 定时器

有两种:setInterval 和 setTimeout 间隔时间单位为毫秒 setInterval 每隔指定的毫秒数重复执行一个函数或代码 开启定时器:setInterval(函数,间隔时间) 作用:每隔一段时间调用这个函数 注意:它不是立即执行&#x…

H5播放器EasyPlayer.js 流媒体播放器是否支持npm(yarn) install 安装?

EasyPlayer.js H5播放器是一款功能强大的H5视频播放器,它支持多种流媒体协议播放,包括WebSocket-FLV、HTTP-FLV、HLS(m3u8)、WebRTC等格式的视频流。它不仅支持H.264和H.265编码格式,还具备实时录像、低延时直播等功能…

前端刺客系列----Vue 3 入门介绍

目录 一.什么是 Vue 3? 二.Vue 3 的主要特性 三,Vue3项目实战 四.总结 在前端开发的世界里,Vue.js 作为一款渐进式的 JavaScript 框架,已成为许多开发者的首选工具。自从 Vue 3 发布以来,它带来了许多重要的改进和新特性&…

【论文复现】MSA+抑郁症模型总结(三)

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀MSA抑郁症模型 热门研究领域:情感计算的横向发展1. 概述2. 论文地址3. 研究背景4. 主要贡献5. 模型结构和代码6. 数据集介绍7. 性…

Linux 实验:日志的备份与恢复 xfs文件系统

添加一个新的硬盘,创建硬盘分区sdc1 设置文件系统格式xfs,提示安装xfsprogs,如果安装失败,在后缀加上--fix-missing直到安装完成为止 mkdir创建空目录data,将sdc1挂载到data,data是根目录下新建的目录&…

应对AI与机器学习的安全与授权管理新挑战,CodeMeter不断创新引领保护方案

人工智能(AI)和机器学习(ML)技术正在快速发展,逐渐应用到全球各类主流系统、设备及关键应用场景中,尤其是在政府、商业和工业组织不断加深互联的情况下,AI和ML技术的影响日益广泛。虽然AI技术的…

证书学习(六)TSA 时间戳服务器原理 + 7 个免费时间戳服务器地址

目录 一、简介1.1 什么是时间戳服务器1.2 名词扩展1.3 用时间戳标记顺序1.4 7 个免费TSA时间戳服务器地址(亲测可用)1.5 RFC 3161 标准二、时间戳原理2.1 时间戳服务工作流程2.2 验证工作流程2.3 举个例子2.4 时间戳原理总结三、代码实现3.1 curl 命令请求时间戳3.2 java 代码…

一文快速预览经典深度学习模型(一)——CNN、RNN、LSTM、Transformer、ViT

Hi,大家好,我是半亩花海。本文主要简要并通俗地介绍了几种经典的深度学习模型,如CNN、RNN、LSTM、Transformer、ViT(Vision Transformer)等,便于大家初探深度学习的相关知识,并更好地理解深度学…

如何运营Github Org

目录 前言 正文 关于分支保护 特别说明 如何在Windows环境下配置GitHub Desktop GPG签名? 推荐分支保护选择 关于good first issue 如何设置good first issue? 关于Project 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learni…

接收nVisual中rabbitmq数据不成功问题排查

rabbitmq服务部署成功的情况下,消息对接不成功一般原因为消息发送失败,发送失败大多数可能为global_settings表配置错误。下面从两个方面解决消息对接不成功问题。 1.数据是否成功发送 检查global_settings表中rabbitmq发送消息配置信息是否正确 #MQS…

二叉树的实现

一.树 1.1树的概念与结构 树是一种非线性数据结构,由有限个结点组成的具有层次关系的集合。树的根部位置就叫根结点,除根结点以外,其余的树被分为各个互不相交的集合。树的根系只能向下延伸不能向左右延伸。除根结点以外每个结点有且仅有一…

Python基础学习-03逻辑分支语句、循环

目录 1、记住逻辑关系 2、逻辑分支语句 3、for-loop循环 4、while-loop 5、break 和 continue 6、本节总结 1、记住逻辑关系 • 逻辑关系 1) True(真) 和 False(假) 2)逻辑关系有 and(与…

Spark中给读取到的数据 的列 重命名的几种方式!

目录 一、第一种 (withColumnRenamed) 二、第二种(toDF) 三、第三种( toDF(*tuple1) ) 四、 第四种(schema) 五、假如文件里自带有列名的情况(option) 一、第一种 (withColumnRenamed) 假设要把如下…

鸿蒙UI开发——实现环形文字

1、背 景 有朋友提问:您好关于鸿蒙UI想咨询一个问题 如果我想实现展示环形文字是需要通过在Text组件中设置transition来实现么,还是需要通过其他方式来实现。 针对这位粉丝朋友的提问,我们做一下解答。 2、实现环形文字效果 ❓ 什么是环形…

现场工程师日记-MSYS2迅速部署PostgreSQL主从备份数据库

文章目录 一、概要二、整体架构流程1. 安装 MSYS2 环境2. 安装postgresql 三、技术名词解释1.MSYS22.postgresql 四、技术细节1. 创建主数据库2.添加从数据库复制权限3. 按需修改参数(1)WAL保留空间(2)监听地址 4. 启动主服务器5.…