
自动驾驶中的Task Agnostic (独立于特定任务)和Ego Centric (基于自车坐标系)的强化学习









-
Introduction
-
高效且有意义的探索,在把强化学习应用到自动驾驶领域十分重要。
-
目前大部分的工作都是在控制空间进行决策(即油门-方向盘级别的决策), 这导致了它们的探索动作不规律(inconsistent actions, 比如左右乱摆), 没有一个特定意图, 因此搜索效率比较低
-
对于人类驾驶员来说, 它们更倾向于做时间上延展(Temporally Extended Actions) 的动作,这一系列的动作可以宏观上表达某个驾驶意图,比如超车或者跟随
-
-
我们的动机在于,希望自动驾驶汽车像人类驾驶员一样,能否在high level的技能空间(而不是low level的控制空间)进行探索, 这样使得每一次的探索的动作序列有一定的规律和意图体现 (explore the entire skill space in a structured manner)。

Related Work
当前大多数强化学习领域的工作,在解决这种 temporally-extended actions 的方法是构建一个专家数据集,里面需要靠人工手动标记各种各样的动作样式。这类方法会面临三个问题:
-
标记成本昂贵,耗费人力
-
不能保证数据分布的均衡性
-
很难迁移到数据集划定任务以外的其他新任务
为此我们选择了基于Motion Primitive的方式, 它非常高效,且不受具体任务的限制。 可以很好的解决结构上的探索问题(structured exploration)

作为自动驾驶领域常用的规划思路,Motion Primitive 包含了不止一种实现方案。 从生成方式上来说, 可以有包括但不限于如下几类:
-
基于几何的方法
-
例如 Dubbins, Redsshep, 5阶 polinomial 曲线
-
它们可以提供最直接且有效的轨迹表征
-
受限于固定形状的表征,比如直线,圆弧或者5阶曲线
-
-
基于优化的方法
-
例如牛顿迭代,或者哈密顿方程的优化
-
可以通过调节 objective funciton 灵活调节轨迹的形状
-
容易陷入局部最优
-
-
基于参数的方法
-
例如 Bezier, Clothoid Curves
-
在形状上十分平滑, 适用于运动学建模
-
在复杂情况话某些轨迹很难用规定的参数来表征
-
通过上述分析,我们可以得出结论:
-
使用更多种类的 motion primitive 方法可以提供更多模态和意图的表征
解决思路: 构建一个 Task Agnostic and Ego Centric Library (TaEc Library) , 它独立于具体的某种任务,且包含了多种模态的motion primitive方法生成的轨迹
-
但多种motion primitive方法之间,并没有统一的参数表征,以及形状相似性
解决思路: 使用生成模型进行技能蒸馏
方法-Part1:TaEc Library的生成
-
需要满足通用性,不针对单一任务,而是致力于涵盖驾驶任务中可能出现的所有技能,这些技能可以在各种不同任务中重复利用
-
使用多种模态的 motion primitive 方法生成,这样即使面临同样的 boundary value (比如起终点的位置,速度和朝向), 也有不止一种模态的轨迹可以选择
-
同时在时间和空间角度进行规划

TaEc动作技能库生成流程:
-
路径采样 - 在空间维度上进行穷举可能的形状
-
速度曲线样本 - 在时间维度上进行穷举,可能的速度变化趋势
-
原始轨迹生成 - 将时间维度和空间维度进行结合
-
切片 - 基于时间的滑动窗口机制,将长horizon的轨迹切片为某个时间长度的技能
-
过滤 - 消除冗余技能,保证轨迹库分布均衡
TaEc Library建设完成后,这些轨迹需要进行技能蒸馏,为后续探索奠定基础。
方法-P2:技能蒸馏
TaEc Library 生成后,会嵌入到潜在技能空间中,在运动编码器 qm 和技能解码器 qd 的作用下。

-
使用运动编码器 qm,以运动技能作为输入,输出潜在技能 z 的高斯分布参数。
-
潜在技能分布的一个样本代表一抽象行为。
-
这技能解码器 qd,根据潜在技能分布的采样结果重建运动技能。
-
为了确保车辆的解码轨迹在运动学上是可解的,我们建议使用阿卡曼模型 将原始控制序列转换为轨迹。
根据这种重建,潜在技能空间可以代表多样化和灵活的任务的运动技能。一旦训练完成, 技能解码器将被固定并重复使用,以从潜在技能空间的样本中生成未来的行为。
方法-p3:在技能空间中探索强化学习
在强化学习阶段,我们不是直接学习原始动作的策略,而是学习输出潜在技能变量的策略,然后由解码器将其解码为运动技能。
-
一旦输出了某一种技能,技能将送入解码器生成一整段时长的轨迹,以供接下来T各时刻让自动驾驶汽车去追踪。
-
为了更好的鼓励探索,并维持鲁棒性,我们使用 maximum-entropy RL的方法来进行探索。

结果与演示


更多详细信息可以在幻灯片链接中找到。