在郭宪和方勇纯老师编著的《深入浅出强化学习 原理入门》一书第十章关于引导性策略搜索一文中,在关于轨迹优化部分,提到了LQR和DDP的优化算法,在查阅了很多的资料后,现总结如下:
本文参考资料如下:
- Apollo控制算法之LQR
- 什么是二次型最优控制
- 机器学习笔记17: 线性二次型调节控制
- 机器学习笔记18: 微分动态规划
- 强化学习入门 第二讲 基于模型的动态规划方法
-
微分动态规划
其中,一二三是讲解LQR的,四五六讲解DDP。
在原始的LQR问题中,我们的目标是求损失J最小,即。该公式的含义是说,所有时间步内总的损失等于前N-1个时间步加上最后一个时间步的损失。LQR相关的知识可参考前3个链接。对LQR的总结:
- 在原有MDP的基础上引入了时间边界的概念,这类问题被称为有限边界的MDP,在这种设定下策略和价值函数都是不稳定的,也就是说它们是随着时间变化的。
- 线性二次型调节控制(LQR)是一个特殊的有限边界MDP模型,该模型广泛应用于机器人学中。
- LQR的目标就是找到一组控制量u0,u1,...使
x0,x1...足够小,即系统达到稳定状态;
u0,u1,...足够小,即花费较小的控制代价。
注意:在原始的LQR问题中,我们的目标是J最小,而对于在强化学习时,我们的目标是reward最大,因此,在reward的定义中,增加了一个负号。即
至于噪声,可加可不加,加了相当是确定的,不加则是随机的意思。
即由和到的过程是线性的,目标函数是二次的,且要迭代的公式是由目标函数生成的
下面进入DDP部分。
参考链接5和链接6中,关于微分动态规划的推导中,都有公式
与LQR不同的地方在于,要迭代的中,函数以及由生成2处不同。因此,将这2处地方变成与原始LQR问题类似的形式变可以用LQR来解决问题了,如果变化呢?采用泰勒展开式来代替原始函数。
对的变化:
上文提到,常数可加可不加。
对于函数来说,同样,我们取二阶泰勒展开式,如下:
由于是近似,我们只取二阶部分,即转换之后,就是LQR问题,然后用LQR来解决问题即可。
总结:
- LQR只适用于状态转换函数是线性的场景,当状态转换函数是非线性时,我们可以使用泰勒展开的方法做线性近似
- 当大部分状态和行动在某个小的局部范围内,我们可以选择局部中心做线性近似
- 当状态转换函数遵循某条轨迹时,可以使用微分动态规划(DDP)算法,其思想是在状态转换函数的多个点上依次做线性近似
网友评论