本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。
此专栏是关于《自动驾驶汽车决策与控制》书籍的笔记.
概述
模仿学习
状态-动作的映射关系可以通过在专家示例数据中学习得到;但是这种学习缺乏对环境的整体认知,仅适用于有限或简单场景,同时还需要收集大量的数据用于训练,数据的质量、数量、覆盖面对于模仿学习非常重要;
基于激励函数的优化
此类方法将空间离散成不同栅格后,再应用诸如动态规划或其他数学优化手段的搜索方法,激励/代价函数由专家数据提供或通过逆向增强学习得到;
逆向增强学习
逆向增强学习(Inverse Reinforcement Learning,IRL)通过将专家示例数据与生成的轨迹或优化激励函数的策略相比较来学习得到激励函数;
可以通过期望特征匹配的方法学习得到激励函数,或直接将这一过程延伸为更广泛的最大化边界条件的优化问题;通过特征期望匹配进行的优化十分模糊,需要位于策略子空间中的优化策略,策略空间中的行为虽然不是最优的,但仍能与示例行为相匹配;
基于学习的方法应用于自动驾驶运动规划问题的难点:
基于增强学习的最优轨迹训练
以基于百度Apollo平台的自整定的运动规划系统为例介绍。
在线模块负责在满足约束条件的前提下,基于给定的激励函数进行轨迹优化;
运动规划模块无须限定用特定的方法完成,可以用基于采样的优化、动态规划甚至是增强学习来生成轨迹;但这些规划方法将由定量分析其优化性和鲁棒性的矩阵来进行评估,其中优化性通过优化轨迹与所生成轨迹的激励函数值之间的差异来衡量,鲁棒性由特定场景下生成轨迹的方差来衡量;在此基础上,通过仿真和路测提供对于运动规划模块的功能进行最终测试;
离线整定模块负责生成能应用于不同驾驶场景的激励/代价函数;激励/代价函数包含描述轨迹光滑性及本车与环境间的交互的特征因素,并可以通过仿真和道路测试来进行调试整定;

在线轨迹评估与离线激励函数训练过程如下图所示:

原始特征生成以环境数据为输入并对采样得到的或取自人类专家的轨迹数据进行评估,轨迹采样工具为在线和离线模块提供候选轨迹;
在线评估模块中,从轨迹中提取原始特征后,激励/代价函数对其进行打分并进行排序,得分最高的轨迹作为最终轨迹输出;
激励/代价函数参数训练基于SIAMESE网络结构实现。
以马尔科夫决策为基础对轨迹进行描述:
ξ
=
(
a
0
,
s
0
,
…
,
a
N
,
s
N
)
∈
Ξ
\xi=(a_0,s_0,\dots,a_N,s_N)\in{\Xi}
ξ=(a0,s0,…,aN,sN)∈Ξ,空间
Ξ
\Xi
Ξ是轨迹采样空间;以下值函数对轨迹初始状态进行评估:
V
ξ
(
s
0
)
=
∑
t
=
1
N
γ
t
R
(
a
t
,
s
t
)
(40)
V^{\xi}(s_0)=\sum_{t=1}^N\gamma_tR(a_t,s_t)\tag{40}
Vξ(s0)=t=1∑NγtR(at,st)(40)
此值函数是不同时刻点下激励函数值的线性组合;原始特征生成模块基于当前状态和动作提供一系列特征,这些特征以
f
j
(
a
t
,
s
t
)
,
j
=
1
,
2
,
…
,
K
f_j(a_t,s_t),j=1,2,\dots,K
fj(at,st),j=1,2,…,K进行表达;选择以下激励函数
R
R
R作为所有特征和参数
θ
∈
Ω
\theta\in\Omega
θ∈Ω的函数:
R
θ
(
a
t
,
s
t
)
=
R
~
(
f
1
,
f
2
,
…
,
f
K
,
θ
)
(41)
R_{\theta}(a_t,s_t)=\tilde{R}(f_1,f_2,\dots,f_K,\theta)\tag{41}
Rθ(at,st)=R~(f1,f2,…,fK,θ)(41)
R
~
\tilde{R}
R~可以是所有特征的线性组合,或则是以特征作为输入的神经网络关系,这种神经网络可以视为进一步获取状态-动作映射内部特征的编码过程;这一训练过程称为RC-IRL;

其中:
ξ
H
\xi_H
ξH代表人类专家演示数据,
ξ
S
\xi_S
ξS代表空间
Ξ
\Xi
Ξ下随机生成的采样轨迹;
损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异,最小化损失函数的过程,即为通过对参数的迭代使得人类驾驶轨迹的代价小于随机采样轨迹的代价;
损失函数定义如下,
a
=
0.05
a=0.05
a=0.05:
L
(
y
)
=
{
y
,
y
≥
0
a
y
,
y
<
0
(42)
L(y)= {y,y≥0ay,y<0
值函数训练网络结构如下图所示: