Reinforcement Learning based Control of Imitative Policies for Near-Accident Driving(点击可见原文)
论文要解决的问题
道路安全相关的高危场景中,根据场景中的细微变化,可能需要动作准则发生较大的改变。快速的动作准则的变更可能需要另一个准则来对其进行处理。
因此,设置两种不同的驾驶模式(不同的驾驶模式体现对于效率和安全性的不同权衡),将模式之间的转移作为优化的目标,由RL学习;模式内的具体行车动作由IL学习。
高危场景情景如上图左侧,红车 Ego 是我们操控对象,蓝车 Ado 可视为环境。当 Ego 左转时,若 Ado 速度快,则 Ego 执行减速动作较为合适;若 Ado 减速,则出于效率考虑,Ego 保持原速或加速则较为合适。算法架构如上图右侧,RL 观察环境得到的动作 a 将决定 IL 的policy,最终的动作 m 由 IL 得到。
数学模型
将道路交通情况建模为一个部分可观测马尔科夫链(POMDP): ,其中的agent是小红车Ego,P中的内容分别为:状态集、观测集、动作集、转移函数、奖励。
状态由两部分组成:当前区域内全部车辆的位置和车速
观测集为状态 s 的一个可能取值:
动作为Ego的油门和转向
状态转移概率分布可表示为
最后agent将接收到奖励
H-REIL(Hierarchical Reinforcement Learning, 分层强化学习)
使用n个expert,每个代表一种驾驶模式。根据模式的不同,expert不一定选择使 true reward function 最优的动作。
驾驶模式用 表示(其表示状态到动作的一个映射关系),不同驾驶模式的选择准则用
表示。
由此将问题分解成两个层次,低层次的 policy 通过 IL 从 expert 处学习,高层次的 policy 通过 RL 由 POMDP 学习。
High-Level RL policy
完成 low-level policies的训练后,训练 high-level policy 选择哪个 low-level policy 执行。
将 high-level policy的构建建模为一个新的POMDP,记作。
这个新的POMDP的状态空间和观察空间和 origin POMDP 一致,但动作选择变为 low-level policy的选择,动作空间为{1, 2, ..., n}。
公式化为
其状态转移函数 实质上是在状态
以选定的 low-level policy
执行 origin POMDP 的
步动作的结果。
其奖励函数也是 origin POMDP 在 步内的累计奖励。
high-level 的目标是
我们用RL解决上式,其相比 origin,动作空间由连续变成了离散,因此比较好解。此外,奖励函数也比较好定义,因为经过expert 的演示agent可以避免一些低级错误。
奖励函数的设计方面,考虑效率和安全两个系数(),
在每一步都是负的,因此agent将尽可能快速的到达目的地,
可以是一个很负的数,以此来避免事故的发生。
算法如下:
分析
命题1:考虑一个有最终状态的(finite horizon) POMDP,我们有 n 个 low-level policies。将对应于最优和最糟 high-level 的累计奖励的期望记作,若存在一个常量
,并且保持相同 low-level policy 的累计回报的期望小于
;那么存在一个概率分布p是的随机切换 policy 比保持任一 policy 效果更佳。
推导略。
备注1:因为奖励可以被向量化,并有一些模式的权重比其他模式要大,而真正的 reward 是在他们的 convex hull 中的,因此可能不存在一个 high-level 的静态随机切换策略使得比保持一个 low-level Policy 要好。
推导略。
命题2:(2)式的最佳解至少不劣于在一整个spisode中保持单一的 low-level policy,从累计奖励期望的角度来看。
推导略。
在H-REIL中,我们将问题分解为两个层级,低层使用IL学习基本的policy以实现相对容易的目标,高层使用RL学习 meta-policy 以在不同的 low-level policy 间进行切换以最大化累计奖励。快速的状态转移可以建模为模式的切换,在缩减后的动作空间及更少的时步上,high-level RL 可以更有效地进行 explore 来解决状态覆盖的问题。
实验
本实验提供了油管网址如下:https://youtu.be/CY24zlC HdI.
考虑四种场景
- Cross Traffic: Ego 尝试穿越交叉路口,但 Ado 被建筑物遮挡使得Ego无法观察到Ado;
- Halting Car: Ego 在 Ado 身后形式,但 Ado 突然刹车;
- Wrong Diecetion: Ado 与 Ego 在反向的两个车道上,但 Ado 突然向 Ego 的车道会车;
- Unprotected Turn: Ego 尝试左转,但卡车挡住了 Ego 观察到 Ado 的视线;
- Merge: Ego 想插到 Ado 和 Ado 前面的车中间,但是 Ado 可能会通过加速阻止 Ego 的这个行为。
比较 average episode reward, collision rate, completion time 三个指标。
下图中的左侧为五个仿真场景,右侧的橙色为本文所述方案,其平均奖励较高,碰撞率较低,完成时间比 Aggressive(激进方案) 略高。
Policy可视化
蓝色表示 Ado (环境中的小车)的路线,红色表示 Ego (我们操纵的小车) 采取 Aggressive 的 low-level policy,绿色表示 Ego 采取 Timid 的 low-level policy。从图中可见,临近十字路口、前车突然刹车 ( halting car ) 、反向会车时,即在高危路段都会采取 timid policy 来避免事故发生,而在安全地段会采取红色的 Aggressive 的 policy 确保效率。
在 Time Limit 内的完成率
上图是在指定时限内 Ego 到达目的地的比率。
- 黑色的 Aggressive 在短时间内完成率较高,但是后期因为发生事故无法到达目的地
- 蓝色的IL分成两部分,一组在20s左右学习 Aggressive policy 但在23s左右到达完成率上限;另一组在25-28s学习 timid policy以达成更高的完成率
- 橙色的通过 high-level policy 在两种 low-level policy 见转换,进而实现了最优的效率和安全 Tradeoff