Paper-3 精读 Learn NN Policies with GPS under Unknown Dynamics(2014 NIPS)

概述与定位

建议与GPS一起阅读,两者本质上相同,只是setting从Known Dynamics变成Unknown Dynamics。
这一篇文章与上一篇的GPS非常像,因为GPS理解有点难,附一下参考的资源链接
https://michaelrzhang.github.io/model-based-rl
https://michaelrzhang.github.io/gps
https://people.eecs.berkeley.edu/~pabbeel/cs287-fa15/slides/lecture20-guided-policy-search.pdf(强推这个,讲的很清楚了)

Paper 链接:https://dl.acm.org/doi/10.5555/2968826.2968946

一、GPS简略回顾

1
可以从GPS的训练可以看出呀,它需要一个known dynamics!GPS可以看成是将一堆专家数据得到的局部controllers,跑dynamics model得到比原有专家数据更多的trajectories,然后把这些trajectories变成一个experssive controller即 π θ \pi_\theta πθ神经网络了啦~

然后,这篇文章就是将Guied Policy Search与Trajectory Optimization结合,并在Unknown Dynamics的Setting下,优化一个global expressive的NN policy

二、GPS + Trajectory Optimization的基础知识

2.1 GPS

注: x t , u t x_t,u_t xt,ut分别表示状态与动作。
我们想要的是一个全局的policy即 π θ ( u t ∣ x t ) \pi_\theta(u_t|x_t) πθ(utxt),优化目标为 E π θ [ ∑ t = 1 T c ( x t , u t ) ] = E π θ ( τ ) [ c ( τ ) ] E_{\pi_\theta}[\sum_{t=1}^Tc(x_t,u_t)]=E_{\pi_\theta(\tau)}[c(\tau)] Eπθ[t=1Tc(xt,ut)]=Eπθ(τ)[c(τ)]

对dynamics model即 f ( x t , u t ) f(x_t,u_t) f(xt,ut)进行一阶线性近似,有: f x t x t + f u t u t f_{x_t}x_t+f_{u_t}u_t fxtxt+futut然后当作均值,放进Gaussian里称为local linear-Gaussian approximation to the dynamics即:
N ( f x t x t + f u t u t , F t ) N(f_{x_t}x_t+f_{u_t}u_t,F_t) N(fxtxt+futut,Ft)

然后对cost function二阶近似,结合上面一阶近似的local linear-Gaussian dynamics model,进行优化得到一个linear controller:
g ( x t ) = u ^ t + k t + K t ( x t − x ^ t ) g(x_t) = \hat u_t + k_t +K_t(x_t-\hat x_t) g(xt)=u^t+kt+Kt(xtx^t)其中 x ^ t , u ^ t \hat x_t,\hat u_t x^t,u^t表示current trajectory的states与actions。
同样地,放进高斯的均值中,得到 linear Gaussian controller:
p ( u t ∣ x t ) = N ( u ˉ t + k t + K t ( x t − x ˉ t ) , Q u t , u t − 1 ) p(u_t|x_t) = N(\bar u_t + k_t +K_t(x_t-\bar x_t),Q_{u_t,u_t}^{-1}) p(utxt)=N(uˉt+kt+Kt(xtxˉt),Qut,ut1)
其中 u ˉ t , x ˉ t \bar u_t,\bar x_t uˉt,xˉt来自用 g ( x t ) g(x_t) g(xt) f x t x t + f u t u t f_{x_t}x_t+f_{u_t}u_t fxtxt+futut解出来的值。

换成trajectory的说法,这个弄出来的linear-Gaussian controller等同于解下面优化问题:
p ( τ ) = arg min ⁡ p ( τ ) E p [ c ( τ ) ] − H ( p ( τ ) ) s . t p ( x t + 1 ∣ x t , u t ) = N ( f x t x t + f u t u t , F t ) p(\tau)=\argmin_{p(\tau)}E_p[c(\tau)]-H(p(\tau))\\ s.t\quad p(x_{t+1}|x_t,u_t)=N(f_{x_t}x_t+f_{u_t}u_t,F_t) p(τ)=p(τ)argminEp[c(τ)]H(p(τ))s.tp(xt+1xt,ut)=N(fxtxt+futut,Ft)

在一阶线性高斯的dynamics的约束下,优化这个带entropy term的轨迹目标,就可以得到linear controller了即 p ( u t ∣ x t ) p(u_t|x_t) p(utxt)

有一个点必须得关注
对于优化问题的表述有两种,一种是根据policy的表述,一种是根据轨迹trajectory的表述,容易混淆。
本质上,trajectory 就是一个policy在dynamics下rollout形成的,因此上面就是说,在dynamics是由一阶线性高斯dynamicsmodel近似时,对这个maximum enrtopy objective的轨迹表达进行轨迹优化,得到的policy就是在这个policy表述的目标身上 E π θ [ ∑ t = 1 T c ( x t , u t ) ] E_{\pi_\theta}[\sum_{t=1}^Tc(x_t,u_t)] Eπθ[t=1Tc(xt,ut)]进行优化得到的policy。

2.2 Trajectory Optimization

正常的已知dynamics model后的轨迹优化步骤如下:

  1. Fits local time-varying linear dynamics models即 N ( f x t x t + f u t u t , F t ) N(f_{x_t}x_t+f_{u_t}u_t,F_t) N(fxtxt+futut,Ft)
  2. 用上面的model来optimize a time-varying linear-Gaussian Controller即 g ( x t ) = u ^ t + k t + K t ( x t − x ^ t ) g(x_t) = \hat u_t + k_t +K_t(x_t-\hat x_t) g(xt)=u^t+kt+Kt(xtx^t)即解一个优化目标

然后在Unknown Dynamics的轨迹优化步骤如下:

  1. 初始化一个linear-Gaussian controller p ( u t ∣ x t ) p(u_t|x_t) p(utxt),然后在Unknown Dynamics下收集一些trajectories即 { ( x t , u t , x t + 1 ) } \{(x_t,u_t,x_{t+1})\} {(xt,ut,xt+1)}
  2. 利用这些trajectories去估计一个linear-Gaussian dynamics Model
  3. 然后用估计的dynamics model以及Objective与Constrain解出一个新的linear-Gaussian controller
  4. 迭代这个过程,得到一个较优的linear-Gaussian Controller

公式表达一下Unknown Dynamics的第三步:
min ⁡ p ( τ ) E p [ c ( τ ) ] s . t D K L ( p ( τ ) ∣ ∣ p ^ ( τ ) ) ≤ ϵ \min_{p(\tau)}E_p[c(\tau)]\\ s.t \quad D_{KL}(p(\tau)||\hat p(\tau))\le \epsilon p(τ)minEp[c(τ)]s.tDKL(p(τ)p^(τ))ϵ

(此处使用了轨迹的表述,一个轨迹 = dynamics(fit拟合得到) + 一个待求的policy/controller)

之前在GPS中已经说过有Dual Gradient Desent去求解这个问题了,回顾一下:
原问题变为:

min ⁡ p max ⁡ λ ∑ t = 1 T E p ( x t , u t ) [ c ( x t , u t ) ] + λ ( D K L ( p ( τ ) ∣ ∣ p ˉ ( τ ) ) − ϵ ) \min_p\max_\lambda \sum_{t=1}^TE_{p(x_t,u_t)}\Big[c(x_t,u_t)\Big]+\lambda(D_{KL}(p(\tau)||\bar p(\tau))-\epsilon) pminλmaxt=1TEp(xt,ut)[c(xt,ut)]+λ(DKL(p(τ)pˉ(τ))ϵ)

对偶问题变为:

max ⁡ λ min ⁡ p ∑ t = 1 T E p ( x t , u t ) [ c ( x t , u t ) ] + λ ( D K L ( p ( τ ) ∣ ∣ p ˉ ( τ ) ) − ϵ ) \max_\lambda \min_p\sum_{t=1}^TE_{p(x_t,u_t)}\Big[c(x_t,u_t)\Big]+\lambda(D_{KL}(p(\tau)||\bar p(\tau))-\epsilon) λmaxpmint=1TEp(xt,ut)[c(xt,ut)]+λ(DKL(p(τ)pˉ(τ))ϵ)

然后固定 λ \lambda λ优化内项:
min ⁡ p ∑ t = 1 T E p ( x t , u t ) [ c ( x t , u t ) − λ l o g p ˉ ( u t ∣ x t ) − λ H ( p ( u t ∣ x t ) ) ] − λ ϵ = min ⁡ p ∑ t = 1 T E p ( x t , u t ) [ 1 λ c ( x t , u t ) − l o g p ˉ ( u t ∣ x t ) − H ( p ( u t ∣ x t ) ) ] − ϵ = min ⁡ p ∑ t = 1 T E p ( x t , u t ) [ c ˉ ( x t , u t ) − H ( p ( u t ∣ x t ) ) ] − ϵ \begin{aligned} &\min_p\sum_{t=1}^TE_{p(x_t,u_t)}\Big[c(x_t,u_t)-\lambda log\bar p(u_t|x_t)-\lambda H(p(u_t|x_t))\Big]-\lambda\epsilon\\ &= \min_p \sum_{t=1}^TE_{p(x_t,u_t)}[\frac{1}{\lambda}c(x_t,u_t)-log\bar p(u_t|x_t)-H(p(u_t|x_t))]-\epsilon\\ &= \min_p \sum_{t=1}^TE_{p(x_t,u_t)}[\bar c(x_t,u_t)-H(p(u_t|x_t))]-\epsilon \end{aligned} pmint=1TEp(xt,ut)[c(xt,ut)λlogpˉ(utxt)λH(p(utxt))]λϵ=pmint=1TEp(xt,ut)[λ1c(xt,ut)logpˉ(utxt)H(p(utxt))]ϵ=pmint=1TEp(xt,ut)[cˉ(xt,ut)H(p(utxt))]ϵ对这个Objective 跑一个iLQR,得到一个新的controller policy p ∗ ( u t ∣ x t ) p^*(u_t|x_t) p(utxt)

然后将 p ∗ ( u t ∣ x t ) p^*(u_t|x_t) p(utxt)代入目标,优化外项 λ \lambda λ
λ ← + α ( D K L ( p ( τ ) ∣ ∣ p ˉ ( τ ) ) − ϵ ) \lambda \leftarrow + \alpha (D_{KL}(p(\tau)||\bar p(\tau))-\epsilon) λ+α(DKL(p(τ)pˉ(τ))ϵ)

三、算法流程

这是算法的示意图,分为Trajectory Optimization与GPS两部分:
4
其中Trajectory Optimization的部分为:
在这里插入图片描述
GPS的部分最为关键是那个监督学习的Global Network的Objective:

3
最后算法流程如下,就是多了一个Global Policy Network来做监督学习。
2

四、总结

GPS是在Known Dynamics且Dyanmics是很复杂的情况进行学习的,因此controller的更新不需要迭代。
本文是GPS + Trajectory Optimization在Unknown Dynamics下进行学习的,因此controller的更新需要迭代。
其余关于Global Policy Network的学习流程相差无几,就是Objective不一样。

一句话总结:对于Unknown Dynamics,对dynamics model进行迭代来获得一个比较好的controller(Trajectory Optimization),再设定Objective进行Guided Policy Search获得一个Global Expressive的Policy

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值