标签:
最近一直在调研增强学习在机器人应用的文章, 看了一些文献, 其中看到15年IROS上的一篇论文[2], 大致浏览了一下, 在PR2上进行了实现, 较之前看到的不少论文在仿真上实现感觉要靠谱一些, 论文提供了视频DEMO, 下载下来看了一下, 直接感觉吊炸天了有没有. 随后就查了查他到底是属于哪个学校的哪个实验室. 最后聚焦到Sergey Levine身上. 进了Sergey Levine的个人主页, 看了他的一些成果, 瞬间吓尿了.
跟着Sergey看了他好几篇论文, 个人感觉, 每一篇论文都好长. 而且公式很多, 涉及的知识点更多, 这都不是重点. 重点是, 在Sergey的论文里面, 论文[2]中反复提到之前的工作 [3 - 5], [3]中提及[4 - 5]的工作, 一直这么往前延续, 当前的工作是建立在以前工作基础之上, 让人蛋疼无比.最后, 干脆心一横, 找出Sergey在13年发出的这篇论文, Guided Policy Search[1]进行阅读.
按照时间顺序, 依次看到几年的几篇论文, 花了很长的时间和精力. 作出了一些总结. 之后, 我会按照时间先后, 依次将我整理的一些资料发布出来, 我发现这方面中文资料几乎没有(或许是我没有找到-_-). 也方便后来者有一些中文的资料可以参考一下.
文档中并不是逐字按照原文翻译, 加入了我的一些理解, 以及省略了部分内容. 如果是想深入研究该算法的朋友, 最好还是以原文为准, 以我的资料为辅. 其中难免会有一些错误的地方, 有大神看到有理解错误的地方, 还请指出, 方便我对错误思想进行纠正, 也防止别人受了误导.
直接策略搜索(Direct Policy Search)能够有效的应对高维系统, 但是对于具有数以百计的参数的策略一直是具有挑战性的, 需要数量非常大的样本来进行学习, 并且容易陷入局部最优.本论文提出引导策略搜索算法(Guided Policy Search), 将轨迹优化(trajectory optimization)应用到直接策略学习中, 避免了陷入局部最优. 该论文提出, 可以使用差分动态规划(Differential Dynamic Programming)生成合适引导样本(Guiding samples), 并使用了一个新颖的正则化项, 提出正则化重要样本策略优化(regularized importance sampled policy optimization), 用来合并这些引导样本到策略搜索中. 论文最后, 进行了一系列仿真实验, 验证算法效果.
增强学习可以表述如下:
增强学习目的是找到一个最优的策略
从时间步1到时间步
策略梯度算法(Policy gradient method), 是通过直接优化用参数
其中,
上诉过程, 每一次迭代需要使用到评估器对目标期望函数进行梯度评估. 一般方法是, 使用当前策略产生一系列的样本, 然后使用这些样本来估计函数的当前的梯度, 这样会产生巨大的工作量, 让学习过程变得非常耗时, 并且每一次迭代产生的样本使用之后将会被丢弃, 下一次迭代并无法使用. 这类的算法不允许使用off-policy样本, 同时对于每一梯度步的步长选择也需要谨慎才能确保达到收敛.
重要采样(Importance Sampled)是一项技术, 使用另一个概率
其中, 如果使用的概率分布
通过Importance Sampled技术的使用, 允许我们使用off-policy样本在下述评估器中.
由于过去的回报值并不依赖于以后的回报值, 上述评估器的变量可以进一步分解如下:
其中,
为了能够利用到更多可用的引导分布, 该论文follow之前的工作,
之前的工作中, 很多人都是直接优化Eq. (1), (2). 事实证明, 其效果往往不好.由此, 该论文引入了一个新颖的正则化项.改进目标函数如下:
之前一些工作中, 也采取用了Importance Sample的方式来重复利用off-policy样本, 但当策略参数维度很大时, 如此的局部优化很难找到一个比较满意的解. 为了解决这个问题, 论文论证如何利用DDP来补充off-policy样本集, 引导策略向高回报区域搜索, 以获得一个更好的解.
一个有效的引导分布, 是能够覆盖高回报区域, 同时避免大
给定一条轨迹
依据DDP算法中推到, 可以求得Q函数:
值函数:
线性策略:
从线性策略的表述中可以看到, 该控制器由两部分构成, 第一部分是均值部分, 第二部分是回馈部分,
重复计算策略可以得到一条新轨迹.这个算法将会收敛到局部最优.
现, 将回报函数进行改进:
其中,
最优策略[6]:
其中, 值函数:
在线性动态, 二次回报的环境下, Eq. (3) 是一个线性高斯, 均值是
在前面的讨论中, 引导分布的构建只是获取高回报区域, 而没有思考当前策略. 我们可以简单的改进回报函数为
该论文构建多个DDP结果, 用以补充Importance Sample策略搜索算法的中的样本. 同时, 这些结果也可以通过人为演示或离线的样本规划获得. DDP策略
Guided Policy Search |
---|
01: 生成DDP结果: |
02: 从 |
03: 初始化最优策略: |
04: 构建初始化样本集合 |
05: for |
06: 选择当前样本集: |
07: |
08: 从 |
09: 生成自适应引导样本(可选) |
10: 在 |
11: if |
12: |
13: |
14: else |
15: |
16: 从 |
17: end if |
18: end for |
19: return |
整体算法伪代码整理如上表所示.
第1行, 通过DDP算法构建初始结果, 也可以通过人为演示初始化结果;
第2行, 初始化引导样本;
第3行, 使用这些引导样本初始化初始最优策略参数
第4行, 样本集
第6行, 如果样本集
第7行, 在样本集上使用LBFGS算法优化目标函数
第8行, 增加
第9行, 如果采用自适应引导分布, 则在此步完成自适应工作;
第10行, 使用Eq. (2) 来评估当前优化策略
第12, 13行, 若当前优化策略更好, 则更新最优策略
第15, 16行, 若当前优化策略更差, 则增大
高的正则化权重, 使得下一次优化时更接近于该样本, 以使评估更加精确, 在实际操作中, 一直保持
GPS算法提供了公开的实现版本, 支持C++和Python两种语言, 可运行于ROS中仿真器Gazebo, 并且提供多种方式仿真结果.
这俩部分我就没有细看了, 也就没有形成文档. 因为作者是在仿真平台上做的, 并且这篇论文已经是几年前的成果了. 后面还有好几篇等着我, 所以这个阶段的讨论和实验就不那么重要了.
GPS算法[1], 由Levine 在13年提出, 使用DDP产生处于高回报区域的引导样本, 辅助策略搜索. 类似然比率评估器的重要采样技术用于合并这些引导样本到策略搜索中. GPS算法使用model-free的一些方法, 并结合model-based的DDP生成引导样本对学习过程进行引导. 可以将其视为将引导轨迹集合转换为一个控制器的过程.
待学习的策略, 是以参数来表达的某种一般性,灵活的模型, 比如神经网络. 直接策略搜索, 目标函数形式化为Eq. (1), 通过on-policy的方式采样来估计梯度, 使用梯度下降的方法, 对参数进行优化, 得到最优参数的策略. GPS改进目标函数为 Eq. (3), 通过Importance Sample技术, 再加入一个新颖的正则化项构成该目标函数. 允许算法使用off-policy样本, 大大缩减了策略搜索时间, 并且更加充分的利用之前策略采样得到的样本. 但由于这样学习到的策略很容易陷入局部最优, 不能学习到满意的策略. 论文中, 又结合轨迹优化中最优控制技术, 通过DDP算法构建覆盖高回报区域的引导样本. 构建引导样本的过程中, 如果考虑之前策略对引导样本的影响, 提出自适应的引导样本生成(在某些条件下具有不错的效果). 将生成的引导样本加入训练样本集中, 用于引导目标函数向高回报区域搜索最佳的策略.
该论文中, 系统状态
下述部分, 是我在阅读这篇论文时, 查阅的一些其他资料, 几乎都来自与Wiki.
LQ (Linear Quadratic) 控制问题是经典的最优控制问题. 其动态函数是一阶线性函数, 代价函数是二阶函数.数学描述如下:
代价函数:
Finite-horizon, continuous-time LQR
对于连续时间系统, 定义
线性动态函数:
二阶代价函数:
由回馈控制法则可知, 欲使代价函数最小, 则:
其中,
Finite-horizon, discrete-time LQR
对于离散时间系统,
线性动态函数:
二阶代价函数:
由回馈控制法则可知, 欲使代价函数最小, 则:
其中,
在控制理论中, 线性-二次高斯控制问题(Linear-quadratic-gaussian[8])是最优控制中LQ问题的一个基本问题.LQG关注含有高斯白噪声的不确定性系统, 状态信息不完整, 并且满足二阶代价函数.
LQG 控制器是对Kalman Filter和Linear quadratic regular(LQR)的简单合并. LQG控制可以应用到线性时变系统和线性时不变系统.LQG问题有如下数学描述:
Continuous time
动态函数:
其中,
代价函数:
使用LQG控制器解决LQG问题, 给定等式如下:
其中, 在每一个时刻
其中,
观察上诉两个Riccati微分方程(Riccati differential equation), 第一个微分方程是前向的(running forward in time), 第二个微分方程式后向的(running backward in time). 这种相似性被称为对偶性(duality).
第一个Riccati微分方程解决线性-二次评估问题(linear-quadratic estimation problem), 第二个Riccati微分方程解决线性-二次规整问题(linear-quadratic regular problem). 两个对偶, 合并共同解决LQG问题.因此LQG可以独立的分解为LQE和LQR问题.
Discrete time
离散时间LQG问题与连续时间LQG问题类似, 数学描述如下:
动态函数:
代价函数:
离散时间LQG控制器:
其中, kalman增益项
其中, 反馈增益矩阵计算公式如下:
差分动态规划(Differential Dynamic Programming[9]), 是轨迹优化(trajectory optimization)类中最优控制(optimal control)算法.
Finite-horizon discrete-time problems
动态函数:
描述时刻
代价函数:
轨迹最优, 就是给定初始状态
Dynamic programming
设
则, 在时刻
令
显然上诉规划式是一个Bellman等式.
Differential dynamic programming
首先, 我们定义
扩展到二阶如下:
上述公式中下标代表偏导.各个偏导可以使用下述公式计算:
对上式的二阶展开求最小可得:
使用上述公式, 递归的从
如此, 前向pass, 反向pass直至收敛.
[1] Sergey Levine, Vladlen Koltun, Guided Policy Search, ICML 2013
[2] Weiqiao Han, Sergey Levine, Pieter Abbeel, Learning Compound Multi-Step Controllers under Unknown Dynamics, IROS 2015
[3] Sergey Levine, Chelsea Finn, Trevor Darrell, Pieter Abbeel, End-to-End Training of Deep Visuomotor Policies, JMLR 17, 2016
[4] Sergey Levine, Pieter Abbeel. Learning Neural Network Policies with Guided Policy Search under Unknown Dynamics, NIPS, 2014
[5] Sergey Levine, Nolan Wagener, Pieter Abbeel, Learning Contact-Rich Manipulation Skills with Guided Policy Search, ICRA 2015
[6] Ziebart, Modeling purposeful adaptive behavior with the principle of maximum causal entropy, Ph.D thesis, Carnegie Mellon University, 2010
[7] Wikipedia contributors. “Linear-quadratic regulator.” Wikipedia, The Free Encyclopedia. Wikipedia, The Free Encyclopedia, 15 May. 2016. Web. 23 May. 2016
[8] Wikipedia contributors. “Linear-quadratic-Gaussian control.” Wikipedia, The Free Encyclopedia. Wikipedia, The Free Encyclopedia, 18 May. 2016. Web. 23 May. 2016
[9] Wikipedia contributors. “Differential dynamic programming.” Wikipedia, The Free Encyclopedia. Wikipedia, The Free Encyclopedia, 28 Jan. 2016. Web. 23 May. 2016
标签:
原文地址:http://blog.csdn.net/sunbibei/article/details/51485661