漫谈基于模型的强化学习方法 PILCO - Probabilistic Inference for Learning Control
2018-03-29 21:01
2226 查看
基于模型的强化学习方法最大的问题是模型误差。针对此类问题,业界提出了 PILCO (Probabilistic Inference for Learning Control)算法。它把模型误差纳入考虑的范围。它解决模型偏差的方法不是集中于一个单独的动力学模型,而是建立了概率动力学模型,即动力学模型上的分布。也就是说,PILCO建立的模型并不是具体的某个确定性函数,而是建立一个可以描述一切可行模型(所有通过已知训练数据的模型)上的概率分布。
该概率模型有两个目的:
它表达和表示了学习到的动力学模型的不确定性;
模型不确定性被集成到长期的规划和决策中。
本文中我们不对PILCO的推导做详细讨论,PILCO的具体内容可参考如下论文:
Deisenroth M P, Pasmussen C E. PILCO: A Model-based and Data-efficient Approach to Policy Search. Int. Conf. on Machine Learning, Bellevue, Washington, USA, Jane 28-July, pp. 465-472, 2011.
PILCO
PILCO 算法概述
底层:学习转移概率模型
中层:对长期预测进行近似推断
顶层:策略更新
PILCO 算法的改进
滤波PILCO
有向探索PILCO
深度PILCO
Created with Raphaël 2.1.2顶层 - 策略更新中层 - 对长期预测进行近似推断底层 - 学习转移概率模型
底层学习一个状态转移概率模型 ff;中层利用该状态转移概率模型和策略 ππ,预测在策略 ππ 下,后续的状态分布,并利用 Vπ(x0)=∑Tt=0∫c(xt)p(xt)dxtVπ(x0)=∑t=0T∫c(xt)p(xt)dxt 对策略进行评估;顶层利用基于梯度的方法对策略 ππ 的参数进行更新。PILCO的伪代码如下:
Set policy to random
loop
execute policy and record collected experience
learn probabilistic dynamics model
loop
simulate system with policy ππ
compute expected long-term cost VπVπ
improve policy
end loop
end loop
下面我们对每一层稍加说明。
xt=f(xt−1,ut−1)xt=f(xt−1,ut−1) PILCO的概率模型不直接对模型建模,而是引入一个差分变量 ΔtΔt,通过如下变换:
Δt=xt−xt−1+εΔt=xt−xt−1+ε 设 ΔtΔt 符合高斯分布,则 xtxt 也符合高斯分布:
p(xt|xt−1,ut−1)=N(xt|μt,Σt)p(xt|xt−1,ut−1)=N(xt|μt,Σt) 其中均值 μt=xt−1+Ef[Δt]μt=xt−1+Ef[Δt]。令 x~=(x,u)x~=(x,u),PILCO动力学概率模型学习的是输入 x~x~ 和输出 ΔΔ 之间的拟合关系。差分变换很少,学习差分近似于学习函数的梯度。
此处省略具体的求解方法。
概率分布的具体计算方法比较复杂,此处省略。
π∗∈argminπ∈ΠVπψ(x0)π∗∈argminπ∈ΠVπψ(x0) 其中 ΠΠ 为所有参数空间所对应的策略空间。具体的优化方法此处省略。
该概率模型有两个目的:
它表达和表示了学习到的动力学模型的不确定性;
模型不确定性被集成到长期的规划和决策中。
本文中我们不对PILCO的推导做详细讨论,PILCO的具体内容可参考如下论文:
Deisenroth M P, Pasmussen C E. PILCO: A Model-based and Data-efficient Approach to Policy Search. Int. Conf. on Machine Learning, Bellevue, Washington, USA, Jane 28-July, pp. 465-472, 2011.
PILCO
PILCO 算法概述
底层:学习转移概率模型
中层:对长期预测进行近似推断
顶层:策略更新
PILCO 算法的改进
滤波PILCO
有向探索PILCO
深度PILCO
PILCO
PILCO 算法概述
PILCO算法包含三个层次:Created with Raphaël 2.1.2顶层 - 策略更新中层 - 对长期预测进行近似推断底层 - 学习转移概率模型
底层学习一个状态转移概率模型 ff;中层利用该状态转移概率模型和策略 ππ,预测在策略 ππ 下,后续的状态分布,并利用 Vπ(x0)=∑Tt=0∫c(xt)p(xt)dxtVπ(x0)=∑t=0T∫c(xt)p(xt)dxt 对策略进行评估;顶层利用基于梯度的方法对策略 ππ 的参数进行更新。PILCO的伪代码如下:
Set policy to random
loop
execute policy and record collected experience
learn probabilistic dynamics model
loop
simulate system with policy ππ
compute expected long-term cost VπVπ
improve policy
end loop
end loop
下面我们对每一层稍加说明。
底层:学习转移概率模型
PILCO算法用的概率模型时高斯过程模型。假设系统的动力学可以由下列公式描述:xt=f(xt−1,ut−1)xt=f(xt−1,ut−1) PILCO的概率模型不直接对模型建模,而是引入一个差分变量 ΔtΔt,通过如下变换:
Δt=xt−xt−1+εΔt=xt−xt−1+ε 设 ΔtΔt 符合高斯分布,则 xtxt 也符合高斯分布:
p(xt|xt−1,ut−1)=N(xt|μt,Σt)p(xt|xt−1,ut−1)=N(xt|μt,Σt) 其中均值 μt=xt−1+Ef[Δt]μt=xt−1+Ef[Δt]。令 x~=(x,u)x~=(x,u),PILCO动力学概率模型学习的是输入 x~x~ 和输出 ΔΔ 之间的拟合关系。差分变换很少,学习差分近似于学习函数的梯度。
此处省略具体的求解方法。
中层:对长期预测进行近似推断
这一层的目的是实现策略评估,即计算 Vπ(x0)=∑Tt=0∫c(xt)p(xt)dxtVπ(x0)=∑t=0T∫c(xt)p(xt)dxt 其中 c(xt)c(xt) 为人为指定的奖励/惩罚函数。由于底层算法学到了概率动力学模型,因此此处值函数的计算可以利用该模型,不需要与环境交互。概率分布的具体计算方法比较复杂,此处省略。
顶层:策略更新
策略更新采用基于梯度的策略搜索方法。得到最优的策略即找到最优的策略参数,使得:π∗∈argminπ∈ΠVπψ(x0)π∗∈argminπ∈ΠVπψ(x0) 其中 ΠΠ 为所有参数空间所对应的策略空间。具体的优化方法此处省略。
PILCO 算法的改进
滤波PILCO
PILCO算法假设了状态完全可观,不存在测量误差。世纪中状态并非完全可观的,且存在噪声。该问题可以通过在执行步和预测步计入滤波器解决。滤波器的使用过程包含滤波器的更新步和滤波器预测步两个阶段。此处不细说。有向探索PILCO
在策略改善步,PILCO利用优化的方法最小化累计代价函数的均值得到新的参数。这样的优化方法其实只有“exploitation”没有“exploration”,没有考虑到模型的不确定性。能平衡利用和探索的算法应该既要考虑累计代价的均值函数,也要考虑累计代价函数的方差函数。深度PILCO
PILCO算法一直被诟病的问题是其模型计算复杂度随着观测状态的维数指数增长,因此难以应用到高维度系统中。我们可以利用贝叶斯网络代替高斯回归模型对PILCO进行扩展,即深度PILCO。相关文章推荐
- 【CV知识学习】【转】beyond Bags of features for rec scenen categories。基于词袋模型改进的自然场景识别方法
- 【强化学习笔记】3.基于模型的动态规划方法
- Machine Learning in Action 学习笔记-(4)基于概率论的分类方法:朴素贝叶斯
- 基于Q-function的强化学习方法的总结
- 深度学习语言模型的通俗讲解(Deep Learning for Language Modeling)
- 视觉学习中对象检测到的概率(2)(Probabilistic Visual Learning for Object Representation)
- 视觉学习中对象检测到的概率(1)(Probabilistic Visual Learning for Object Representation)
- 漫谈逆向强化学习 - A Brief Review to Inverse Reinforcement Learning
- DL学习笔记16 Structured Probabilistic Models for Deep Learning
- 强化学习算法介绍(Reinforcement Learning and Control)
- 强化学习(五)---基于模型的强化学习实战
- 【强化学习笔记】4.无模型的强化学习方法-蒙特卡罗算法
- 基于深度残差学习的图像识别Deep Residual Learning for Image Recognition
- 强化学习之五:基于模型的强化学习(Model-based RL)
- 强化学习之 免模型学习(model-free based learning)
- 深度学习国外课程资料(Deep Learning for Self-Driving Cars)+(Deep Reinforcement Learning and Control )
- 【强化学习笔记】5.无模型的强化学习方法-时间差分算法
- 深度学习国外课程资料(Deep Learning for Self-Driving Cars)+(Deep Reinforcement Learning and Control )
- 强化学习基础 第二讲 基于模型的动态规划算法
- Deep Auxiliary Learning for Visual Localization and Odometry 基于深度辅助学习的视觉定位和里程计