Understand More on the MP Difficulty
EM算法
EM算法是一个在已知部分相关变量的情况下,估计未知变量的迭代技术,首先通过动态规划方式对整个问题有一个粗浅的认识,然后通过二次规划进行强化,这种启发式搜索方法是目前百度Apollo的EM算法的核心思想。这种方法和人开车的过程是一样的,通常驾驶员会先形成一个大概的指导思想,指明往什么方向开,然后再规划一条最优路径。
- EM的算法流程如下:
1、初始化分布参数;
2、重复直到收敛。
重复直到收敛的步骤如下:
2.1、E步骤:根据隐含数据的假设值,给出当前的参数的极大似然估计;
2.2、M步骤:重新给出未知变量的期望估计,应用于缺失值。 - 缺点:
本质是贪心算法,所以只能找到局部最优解
约束
在无人车场景中,有三类约束,第一个叫做 Rraffic Regulation,第二个是 Decisions,第三个是 Best Trajectory 。这些限制又分为硬限制和软限制,例如交通规则属于硬性限制。
约束问题的核心有三点:第一是目标函数的定义,目标函数比较清晰,对于后面的求解更有帮助。第二是约束,比如路网约束、交规、动态约束等。第三是约束问题的优化,比如动态规划、二次规划等。
优化
优化决策问题本身是一个 3D optimization 问题,其中包含了三个维度,需要生成 SLT 。
三维空间的优化相对比较复杂,常用的方法有两种:
(1)离散化的方式去处理。
(2)Expectation Maximization(期望最大化)。其基本思想是降维处理,先在一个维度上进行优化,然后在优化的基础上再对其它维度进行优化,并持续迭代以获得局部最优解。
对于无人车,Apollo 上的 EM planner 对 Path-Speed 进行迭代优化。首先,生成一条 Optimal Path ,在最优路径的基础上生成 Optimal Speed Profile 。在下一个迭代周期,在优化后的 Speed 的基础上,进一步优化 Path,依次类推。它分了四步走,其中分为两步 E step 和 M step 。这种算法的缺点是不一定能收敛到全局最优解。
-
优化问题的关键步骤包括: Objective Functional、Constraint、Solver。目标函数是一些关键特征的线性组合。约束主要包括交通灯、碰撞以及动态需求等。优化求解方法的目的是找到最佳路径,包括前面讲的动态规划+二次规划的启发式方法。
-
对于非线性优化问题,通常都是分两步走,一是动态规划,先找一个粗略解。然后再是二次规划,从粗略解出发,找出一个最优解。
动态规划
-
路径规划
先确定主车位置,然后向前排撒若干点基于撒点的网络,得到一个代价最低的路径。
然后利用二次规划的方法,按照问题抽象、模型建立和优化求解的步骤,生成一条平滑的轨迹 -
速度规划
速度规划首先将问题抽象为ST图,然后通过cost函数进行规划求解。
Reinforcement learning and data driven approaches
解决好规划问题,需要把两个方面做好,一个是数据驱动,一个是基于规则。数据驱动是在基于规则的闭环里面的小闭环。即在做数据驱动之前,若是基于规则对问题拥有了一定的认识,基于数据将会更加有效。
在基于规则的方法的基础上,对问题形成一定的认识,通过把问题抽象成更加通用的问题,定义目标函数来进一步优化问题。数据驱动的方法就是通过大量的案例统计分析,得到模型,使得遇到类似问题的时候,不需要过多的考虑,直接套用数据驱动的模型获得结果
RL(Reinforcement learning)
RL的本质是建立mapping 的过程,是遇到了问题再解决的思路
RL的思想就是不断的通过在目标不变的情况下,随机地去找一个action,然后看结果怎么样,不好的话就进行修正,或者说策略进行修正,逐渐收敛到一个mapping,使得这个mapping能够optimize reward function given all states
RL的问题就是在学习的过程中成绩会不断提高,但在真的遇到一个没见过的case的情况下难以解决问题
End to end imitation learning
证明在一定情况下,在一定data量的情况下,可以得到一个能接受的结果
Problem
-
distribution shifting problem蝴蝶效应问题
(1)在研究的时候,一个一点点的变化,就会引起周围环境的发生很剧烈的变化
(2)所以在进行训练的时候,随着数据量的增加,本身系统是很脆弱的,因为没法证明有李雅普诺夫稳定性(此动力系统任何初始条件在平衡态附近的轨迹均能维持在平衡态附近) -
其他问题