一个马尔科夫决策过程,由五元组定义:
( S , A , P a , R a , γ ) (S, A, P_a, R_a, \gamma ) (S,A,Pa,Ra,γ)
在上述MDP定义下,无人车行为决策需要解决的问题就是寻找一个最优策略 π : S → A \pi:S\to A π:S→A。选取目标是:最大化从当前时间点,到未来的累计激励,即
∑ t = 0 ∞ γ t R a ( S t , S t + 1 ) , 其 中 a c t i o n 是 由 策 略 π 产 生 : a = π ( s ) \sum_{t=0}^{\infty}{\gamma^t{R_a}(S_t,S_t+1)},其中action是由策略\pi产生:a=\pi(s) t=0∑∞γtRa(St,St+1),其中action是由策略π产生:a=π(s)
在上述马尔科夫决策过程定义下,最优策略可以用动态编程(Dynamic Programming)方法求解。假设转移矩阵P和激励分布R是已知的,最优策略的求解则基于一下两个数组的不断计算和存储:
π ( s t ) ← argmax a { ∑ s t + 1 P a ( s t , s t + 1 ) ( R a ( s t , s t + 1 ) + γ V ( s t + 1 ) ) } V ( s t ) ← ∑ s t + 1 P π ( s t ) ( s t , s t + 1 ) ( R π ( s t ) ( s t , s t + 1 ) + γ V ( s t + 1 ) ) \begin{array}{l}{\pi\left(s_{t}\right) \leftarrow \underset{a}{\operatorname{argmax}}\left\{\sum_{s_{t+1}} P_{a}\left(s_{t}, s_{t+1}\right)\left(R_{a}\left(s_{t}, s_{t+1}\right)+\gamma V\left(s_{t+1}\right)\right)\right\}} \\ {V\left(s_{t}\right) \leftarrow \sum_{s_{t+1}} P_{\pi\left(s_{t}\right)}\left(s_{t}, s_{t+1}\right)\left(R_{\pi\left(s_{t}\right)}\left(s_{t}, s_{t+1}\right)+\gamma V\left(s_{t+1}\right)\right)}\end{array} π(st)←aargmax{∑st+1Pa(st,st+1)(Ra(st,st+1)+γV(st+1))}V(st)←∑st+1Pπ(st)(st,st+1)(Rπ(st)(st,st+1)+γV(st+1))
其中,数组 V ( S t ) V(S_t) V(St)代表了未来衰减叠加的累计期望激励, π ( S t ) \pi(S_t) π(St)代表需要求解的策略。
具体求解过程是在所有可能的状态s和s’之间进行重复迭代计算,直到二者收敛为止。
利用MDP解决无人车行为决策最关键的部分就是激励函数(Reward)的设计,在设计Reward函数时,要尽可能考虑这些因素:
因为利用马尔科夫概率模型的MDP需要非常细致地设计诸如状态空间、转移概率和激励函数等参数,这些在工业应用上一般不可行。更可靠的设计应该是,基于规则来构建宏观行为决策系统:利用场景分割无人车周边环境,通过构建子场景并Rule运用。
利用分治的原则,将无人车周边的场景进行划分。每个场景独立运用相应的规则来计算无人陈对每个场景中元素的决策行为,再将所有划分的场景的决策进行综合,得到一个最后综合的总体行为决定。
首先引入几个重要概念:综合行为决策(Synthetic Decision)、个体行为决策(Individual Decision),以及场景(Scenario)。
综合决策是行为决策层面的最高决策,决策的指令状态空间需要和下游的动作规划(Motion Planning)协商一致,使得做出的综合决策指令,可以让下游规划出路线轨迹(Trajectory)。为了便于下游直行,综合决策的指令集往往带有具体的指令参数数据,如表所示:
这里的个体,包含车辆和行人,也包含红绿灯和停车线。
最终的综合决策,是先经过场景的划分,产生每个场景下的个体决策,再综合考虑归纳这些个体决策,最终得到综合决策。
传递个体决策有两个好处:
例如,在针对某个障碍物车辆进行超车这一个体决策时,附加参数包括:
在(a)图中,无人车意图是向左换道,此时包含了3个场景:
在(b)图中,稍微复杂一些,包含了2层场景:
假设此时无人车意图是右转,红绿灯可以右转,但是没有道路优先权需要避让直行车,又感知到了一个行人正在人行横道上横穿马路。结合这些场景元素和意图,最终的指令是:针对行人在人行横道前停车。
综上所属,每个场景根据自身的业务逻辑(Business Logic)计算不同个体的决策,通过场景复合,以及对所有决策的综合考虑,得到一个安全决策。整体决策模块系统框架和流程如下:
大致分4个步骤:
《第一本无人驾驶技术书》刘少山