引导策略搜索方法(Guided Policy Search)最早见于2015年 Sergey Levine 的博士论文
Levine S, “Motor skill learning with local trajectory methods,” PhD thesis, Stanford University, 2014.
GPS将策略搜索分为两步:控制相和监督相。这样有什么好处呢?这要从无模型强化学习方法的局限性说起。TRPO方法和DDPG方法都是典型的无模型强化学习方法。他们有很多优点,比如可以不对外界环境进行建模,当外界环境十分复杂的时候,这些方法是唯一可行的方法。但是我模型的强化学习智能通过不断尝试来探索环境,这些算法最多只能处理数百个参数的网络,对于更大的网络,这些方法的效率不高。
解决无模型随机搜索问题的方法就是利用模型搜索。有了模型之后:
- 利用模型和基于模型的优化算法,可以得到回报高的数据,也就是好数据。
- 有了模型,我们可以充分利用示教(Demonstration)进行学习。
因此,GPS方法将策略搜索方法分成控制相和监督相。控制相通过轨迹最优、传统控制器或随机最优等方法控制产生好的数据;监督相利用从控制相产生的好数据进行监督学习。
GPS是一类强化学习方法,其包含的具体方法有多种。GPS的发展可以从三个方面了解:
- 从问题的构建来看:GPS从基于重要性采样的GPS(ISCPS) - 基于变分推理的GPS(vGPS) - 基于约束的GPS(cGPS) 。
- 从优化的方法来看:cGPS经历了 Dual GPS(对偶梯度下降法)- BADMM(布雷格曼交叉方向乘子法)- Mirror Descent GPS(镜像下降优化算法)。
- 从控制相来看:GPS从基于轨迹最优(微分动态规划DDP、线性二次规划LQR和线性二次高斯LQG) - 随机最优控制PI2 GPS。
接下来我们大致介绍下基于约束的GPS方法,依据是2014年Levine在ICML上的论文:
Learning Complex Neural Network Policies with Trajectory Optimization
这里不做细致推导。
基于约束的引导策略搜索方法可形式化为:
minθ,qDKL(q(τ)∥ρ(τ))s.t. q(x1)=p(x1)q(xt+1|xt,ut)=p(xt+1|xt,ut)DKL(q(xt)πθ(ut|xt)∥q(xt,ut))=0 min θ , q D K L ( q ( τ ) ‖ ρ ( τ ) ) s.t. q ( x 1 ) = p ( x 1 ) q ( x t + 1 | x t , u t ) = p ( x t + 1 | x t , u t ) D K L ( q ( x t ) π θ ( u t | x t ) ‖ q ( x t , u t ) ) = 0
其中
ρ(τ)∝exp(l(τ)) ρ ( τ ) ∝ exp ( l ( τ ) ) 。首先,可以看出目标函数是一个KL散度:
DKL(q(τ)∥ρ(τ))=∫q(τ)logq(τ)ρ(τ)dτ D K L ( q ( τ ) ‖ ρ ( τ ) ) = ∫ q ( τ ) log q ( τ ) ρ ( τ ) d τ
KL散度衡量连个概率分布之间的距离,目标为什么是KL散度呢?我们利用KL散度公式展开目标函数:
DKL(q(τ)∥ρ(τ))=∫q(τ)logq(τ)dτ−∫q(τ)logρ(τ)dτ D K L ( q ( τ ) ‖ ρ ( τ ) ) = ∫ q ( τ ) log q ( τ ) d τ − ∫ q ( τ ) log ρ ( τ ) d τ
将
ρ(τ)∝exp(l(τ)) ρ ( τ ) ∝ exp ( l ( τ ) ) 代入,并忽略常数项:
DKL(q(τ)∥ρ(τ))=−H(q)−Eq(l(τ))+const D K L ( q ( τ ) ‖ ρ ( τ ) ) = − H ( q ) − E q ( l ( τ ) ) + c o n s t
第一项是分布
q q 的熵,第二项为累计回报的期望函数。在GPS问题中,最小化目标函数相当于最大化累计汇报和最大化熵。最大化熵是为了保证最优控制分布是一个分布,而非一个确定值。第二项是最大化累计回报,和常用的强化学习目标保持一致。
cGPS算法的伪代码如下:
- Initialize the trajectories q1(τ),…,qM(τ) q 1 ( τ ) , … , q M ( τ )
- for iteration k=1 k = 1 to K K do
- Optimize each qi(τ) q i ( τ ) with respect to L(θ,qi(τ),λi) L ( θ , q i ( τ ) , λ i )
- Optimize θ θ with respect to ∑Mi=1L(θ,qi(τ),λi) ∑ i = 1 M L ( θ , q i ( τ ) , λ i )
- Update dual variables λ λ using λi←λt+ηDKL(q(xt)πθ(ut|xt)∥q(xt,ut)) λ i ← λ t + η D K L ( q ( x t ) π θ ( u t | x t ) ‖ q ( x t , u t ) )
- end for
- return optimized policy parameters θ θ