原文链接:
Zhang T, Kahn G, Levine S, et al. Learning deep control policies for autonomous aerial vehicles with mpc-guided policy search[C]//2016 IEEE international conference on robotics and automation (ICRA). IEEE, 2016: 528-535.
参考文章:
有模型的强化学习—LQR与iLQR - 王沃河(知乎)
MPC-GPS—强化学习算法控制无人机 - 王沃河(知乎)
背景:
模型预测控制(MPC)是机器人控制领域有效、可靠的控制方法,其对模型误差的鲁棒性强、能达到较高的性能且相对简单。但MPC的计算条件较为苛刻,通常需要系统的全维状态估计,而在复杂的非结构化系统中,状态估计可能极为复杂。
强化学习(RL)是一种基于学习的端到端的控制方法,其能跳过状态估计,通过原始传感器信息直接映射当前状态下所需执行的动作,生成所谓的策略。但强化学习的鲁棒性差,且学习训练过程中,由于"试错"的学习方式,很可能在实际系统中导致灾难性的失败。
主要思想:
既然模型预测控制(MPC)的状态估计复杂难以求取,则用强化学习(RL)来避开状态估计,由原始传感器信息直接得出控制策略;既然强化学习(RL)在"试错"学习中容易出现灾难性失败,则用模型预测控制(MPC)先生成优化轨迹来指导训练。
符号表示:
预备知识:
1.LQR和iLQR
首先感谢王沃河 大佬的推导 T-T.
根据前文的符号定义,我们可以描述一个系统的动态模型为:
定义一个损失函数(cost function)为
LQR:
LQR是对最优控制问题进行了两个强假设的解决方案:1)系统的动态模型
其中
考虑求解该优化问题,最小化(2)的性能指标,即要求解
类比强化学习的思想,我们分别设状态价值函数
故求解最优控制律,则在每个时刻
由于
①在第T时刻,
则可直接通过求导找出
即:
将(11)式代入
化简整理为标准二次型为:
其中:
至此我们求得了
② T-1,T-2,......时刻:
由于
故通过不断反向迭代,最终可求得最优控制律
整体算法流程为:
iLQR:
LQR对最优控制问题进行了两个强假设,而实际这两个假设很难满足,iLQR(iterative LQR)迭代LQR则是为解决实际应用中非线性的动态系统和损失函数所提出的方法。
处理非线性问题的思路很简单,我们需要将非线性模型线性化,即使用泰勒展开。
其中
故iLQR中迭代的含义与LQR原本的从T时刻到初始时刻的迭代不同,iLQR多了一个通过上一次估计值不断更新估计的迭代过程,最终收敛至最优轨线和控制律。
其中
每步迭代的内层循环为与LQR相同的迭代过程,不再具体赘述。
2.MPC
iLQR是最优控制(OC)问题的求解方法,其目的是求解出全局的最优控制律和最优轨线。但iLQR的问题在于其控制序列过长、Hessian矩阵非正定、系统模型时变等情况下收敛困难,在很多最优控制问题下,想通过iLQR一次性迭代计算收敛到全局最优解似乎很难成功。
而MPC模型预测控制的区别就在于其通过已知模型,求解在未来一段时间内最优的控制律和最优轨线,根据对环境建立的预测模型,可以进行在线轨迹优化。在线的轨迹优化不同于LQR和iLQR的离线优化求解全局最优,MPC追求通过求解未来时间段的最优控制律,并只执行单步控制或K步控制后重新在线预测新的控制律,滚动优化求得整个控制律。
MPC+GPS:
在了解了预备知识LQR/LQG/DDP和MPC之后,可以正式进入论文的理解。
本文提出了将MPC用于强化学习GPS算法的方法,通过MPC生成的数据来降低强化学习试错带来的风险。
GPS:
引导策略搜索方法(GuidedPolicy Search)最早是2013年Sergey Levine在斯坦福读博士的时候提出来的。强化学习算法大神Levine,博士毕业后便去了伯克利跟着Pieter Abbeel做博后,出站后留在了伯克利任教。
GPS的基本思路是将训练分为两部分:一是控制部分,二是监督学习部分。控制部分往往通过最优控制方法如离线iLQR/iLQG/DDP等方法求解最优轨迹
其中,
直接使用监督学习训练单个状态下的控制动作很难保证获得long-horizon的效果,单个动作的一致性很难反应在两个分布的一致性上,这与模仿学习中的behvior cloning带来的问题一样,GPS中使用KL散度作为一致性的衡量指标,并采用交替更新的方式使得最优控制轨迹和策略网络的轨迹收敛到一致水平。
故将KL散度作为惩罚项,采用拉格朗日乘数法将约束优化问题转化为:
①轨迹优化:
最优控制器通过(19)式生成与策略网络接近的最优轨迹训练数据。
②监督训练:
监督训练通过(20)式调整策略网络逼近最优控制轨迹。其中
注意:在监督训练时,策略网络的输入为观测
GPS的一般性算法流程为:
GPS算法看似完美,但采用iLQR/iLQG/DDP等算法离线求解最优控制问题获得控制轨迹
为了使控制轨迹生成器对扰动更加鲁棒且避免使用完整的动态模型,我们可能已经猜到了解决方案,正是使用MPC滚动优化的特性。
MPC-GPS:
原文的MPC-GPS基本框架如上图所示,在训练时使用MPC产生训练控制动作u和训练样本,通过监督学习训练策略网络直接由观测o映射动作u,在测试和使用时去掉MPC部分,直接由观测数据生成控制动作u。
那么怎么用MPC来产生训练数据呢?
第一种直观的想法是,采用预备知识中提到的iLQR+MPC的方法,将iLQR迭代过程中的时间步范围[1,T]缩小到[t,t+H],则可将最优控制OC转换为MPC。原文所举的例子为DDP+MPC,区别仅在于iLQR对环境模型采用一阶近似,DDP对环境模型采用二阶近似。
这种想法的问题在于,iLQR/DDP+MPC只能产生short-horizon的控制效果,很难实现需要long-horizon的复杂控制问题,如无人机避障等。
long-horizon是LQR/LQG在时间步范围[1,T]内求解OC问题的强项,而对扰动和误差鲁棒性好是MPC的强项,要同时获得这两种优势,那必然要将两种方法结合。
原文提出的第二种方法即正式的MPC-GPS方法。
- 首先采用iLQG离线地生成多个线性高斯控制器
- 允许M次MPC算法跟踪线性高斯控制器
生成新的控制器数据
- 利用MPC 的样本数据训练策略网络
第1步和第3步与GPS的一般算法基本一致。
将(19)式重写为:
iLQG通过求解(21)式生成线性高斯控制器
则关键在于如何使用MPC跟踪线性高斯控制器
1)必须鼓励MPC有比较高的概率访问iLQG产生的状态
2)必须在short-horizon的优化方式下得到long-horizon效果的行为
3)必须使得产生的行为与policy
原文中指出,我们关注的重点应该是离线LQG控制器希望访问哪些状态,而不是采取了哪些控制动作去到达这个状态。
因此,提出了MPC使用的新损失函数:
第一项能保证MPC有比较高的概率访问iLQG产生的状态,从而满足条件2);第二项能使得产生的行为与policy
故最终MPC-GPS的算法整体流程为:
总结:
1.iLQR/iLQG/DDP是解决最优控制问题的常用动态规划方法。将其的时间步范围由[1,T]缩小到[t,t+H]也可以转化为MPC问题的解法。最优控制往往能取得全局最优的控制律和最优轨迹,获得Long-horizon的控制效果,但其要求完整的动态系统模型,且对误差和扰动敏感。
2.MPC利用滚动优化的特性,可以在仅使用一个动态系统的近似模型的条件下对误差和扰动鲁棒地进行控制。但MPC往往只能获得short-horizon的效果。
3.RL使用试错的学习方式进行策略搜索,实则我们也可以看作其使用多个不同的近似动态模型来实验性的采取控制,寻找最优的控制策略,但RL在策略搜索过程中安全性差,容易发生灾难性失败。
4. 原文提出的MPC-GPS算法表面上融合MPC和RL的优势,实则还加入了OC的优势,使得系统long-horizon、对扰动和误差鲁棒且能安全地试错进行策略搜索。