CS229 Lecture 20

15 篇文章 0 订阅

CS229 Lecture 20


POMDPs(Partially Observed MDPs)
Policy search
Reinforce
Pagasus
conclusion


回顾

s t + 1 = A s t + B a t + w t s_{t+1}=As_t+Ba_t+w_t st+1=Ast+Bat+wt

y t = C s t + v t y_t=Cs_t+v_t yt=Cst+vt

A t + 1 : a t + 1 = L t s t A_{t+1}:a_{t+1}=L_ts_t At+1:at+1=Ltst

在LQR问题中,因为噪声等因素的存在无法观测到真实状态 s t s_t st,只能通过混杂着噪声的观察状态 y 1 , y 2 , ⋯   , y t y_1,y_2,\cdots,y_t y1y2,,yt来得出下一步的动作。首先需要得出对 s t s_t st的最佳估计 s t ∣ t s_{t|t} stt,通过Kalman Filter可以得出 s t ∣ y 1 , y 2 , ⋯   , y t ∼ N ( s t ∣ t , Σ t ∣ t ) s_{t|y_1,y_2,\cdots,y_t}\sim N(s_{t|t},\Sigma_{t|t}) sty1,y2,,ytN(stt,Σtt),然后通过 a t : = L t , s t ∣ t a_t:=L_t,s_{t|t} at:=Lt,stt


POMDPs

部分观测马尔可夫决策过程定义为一个元组 ( S , A , Y , { P s a } , O , T , T ) (S,A,Y,\{P_{sa}\},\mathcal{O},T,T) (S,A,Y,{Psa},O,T,T),其中 Y Y Y是所有可能观测值的集合, O s \mathcal{O}_s Os是观测所属的分布,每次观测中在 s t s_t st下观测为 y t y_t yt服从 y t ∼ O s t y_t\sim \mathcal{O}_{st} ytOst


Policy search

p o l i c y     s e a r c h policy\,\,\,search policysearch 和之前LQR方式不同在于,之前通过最大化值函数 V ⋆ V^{\star} V进而得出最佳的 π ⋆ \pi^{\star} π。这里的 p o l i c y     s e a r c h policy\,\,\,search policysearch是直接对 p o l i c y policy policy进行选取。

定义 Π \Pi Π p o l i c y policy policy的合集,需要在 Π \Pi Π中搜索到好的 π \pi π,其中 π ∈ Π \pi\in \Pi πΠ,这里十分类似于在最前面学习的监督学习,在假设集合 H \mathcal{H} H中搜索到一个好的假设。

定义一个随机 p o l i c y policy policy为一个 π : S × A → R \pi:S\times A\rightarrow \mathbb{R} π:S×AR 的函数,这里 π ( s , a ) \pi(s,a) π(s,a)是在状态 s s s下采取动作 a a a的概率。注 ∑ π ( s , a ) = 1 ,    π ( s , a ) ≥ 0 \sum\pi(s,a)=1,\,\,\pi(s,a)\ge0 π(s,a)=1,π(s,a)0

在这里插入图片描述

课上使用 P o l i c y    s e a r c h Policy\,\,search Policysearch的例子:假设一个倒立摆,其中摆与垂线的夹角为 ϕ \phi ϕ小车的位置为 x x x,现在小车无非两个选择向左运动或者向右运动。假设向右运动为 a 1 a_1 a1,向左为 a 2 a_2 a2。假设有: π θ ( s , a 1 ) = 1 1 + e − θ T s ,     π θ ( s , a 2 ) = 1 − 1 1 + e − θ T s \pi_{\theta}(s,a_1)=\frac{1}{1+e^{-\theta^Ts}},\,\,\,\pi_{\theta}(s,a_2)=1-\frac{1}{1+e^{-\theta^Ts}} πθ(s,a1)=1+eθTs1,πθ(s,a2)=11+eθTs1。这里 s = [ 1 x x ˙ ϕ ϕ ˙ ] s=\\\left[ \begin{matrix}1 \\ x \\ \dot{x} \\ \phi \\ \dot{\phi} \end{matrix} \right] s=1xx˙ϕϕ˙, θ = [ 0 0 0 1 0 ] \theta=\left[ \begin{matrix} 0 \\ 0 \\ 0 \\ 1 \\ 0 \end{matrix} \right] θ=00010,那么 p ( a = a 1 ) = 1 1 + e − θ T s = 1 1 + e − ϕ p(a=a_1)=\frac{1}{1+e^{-\theta^Ts}}=\frac{1}{1+e^{-\phi}} p(a=a1)=1+eθTs1=1+eϕ1。下图就是小车向右运动和夹角 ϕ \phi ϕ的关系。例如当夹角为正时,我们需要向右移动以保证倒立摆不倒下。

在这里插入图片描述
实际上我们的目标是最大化预期回报 max ⁡ θ E [ R ( s 0 , a 0 ) + ⋯ + R ( s T , a t ) ∣ π θ , s 0 ] \max_{\theta}E[R(s_0,a_0)+\dots+R(s_T,a_t)|\pi_{\theta},s_0] maxθE[R(s0,a0)++R(sT,at)πθ,s0]

注:当动作是多个离散的选择是可以选择 s o f t m a x softmax softmax函数,动作是连续的可以选取动作的密度函数。


Reinforce algorithm

假设 s 0 s_0 s0是一个固定的初始状态,我们的期望是: max ⁡ θ E [ R ( s 0 , a 0 ) + ⋯ + R ( s T , a t ) ∣ π θ , s 0 ] \max_{\theta}E[R(s_0,a_0)+\dots+R(s_T,a_t)|\pi_{\theta},s_0] maxθE[R(s0,a0)++R(sT,at)πθ,s0]

其中回报的期望为:

E [ R ( s 0 , a 0 ) + ⋯ + R ( s T , a t ) ∣ π θ , s 0 ] = ∑ s 0 , a 0 , s 1 , ⋯   , s t p ( s 0 , a 0 , s 1 , ⋯   , s t ) [ R ( s 0 , a 0 ) + ⋯ + R ( s T , a t ) ∣ π θ , s 0 ] = ∑ s 0 , a 0 , s 1 , ⋯   , s t p ( s 0 ) π θ ( s 0 , a 0 ) p s 0 , a 0 ( s 1 ) π θ ( s 1 , a i ) ⋯ π θ ( s t , a t ) [ R ( s 0 , a 0 ) + ⋯ + R ( s T , a t ) ∣ π θ , s 0 ] E[R(s_0,a_0)+\dots+R(s_T,a_t)|\pi_{\theta},s_0]\\ =\sum_{s_0,a_0,s_1,\cdots,s_t}p(s_0,a_0,s_1,\cdots,s_t)[R(s_0,a_0)+\dots+R(s_T,a_t)|\pi_{\theta},s_0]\\ =\sum_{s_0,a_0,s_1,\cdots,s_t}p(s_0)\pi_{\theta}(s_0,a_0)p_{s_0,a_0}(s_1)\pi_{\theta}(s_1,a_i)\cdots\pi_{\theta}(s_t,a_t)[R(s_0,a_0)+\dots+R(s_T,a_t)|\pi_{\theta},s_0] E[R(s0,a0)++R(sT,at)πθ,s0]=s0,a0,s1,,stp(s0,a0,s1,,st)[R(s0,a0)++R(sT,at)πθ,s0]=s0,a0,s1,,stp(s0)πθ(s0,a0)ps0,a0(s1)πθ(s1,ai)πθ(st,at)[R(s0,a0)++R(sT,at)πθ,s0]

算法的流程为:
L o o p Loop Loop  {

     抽样 s 0 , a 0 , s 1 , a 1 , ⋯   , s t , a t s_0,a_0,s_1,a_1,\cdots,s_t,a_t s0,a0,s1,a1,,st,at
     计算收益 p a y o f f = [ R ( s 0 , a 0 ) + ⋯ + R ( s T , a t ) ∣ π θ , s 0 ] payoff =[R(s_0,a_0)+\dots+R(s_T,a_t)|\pi_{\theta},s_0] payoff=[R(s0,a0)++R(sT,at)πθ,s0]
     更新 θ \theta θ的方式为: θ : = θ + α [ ∇ θ π θ ( s 0 , a 0 ) π θ ( s 0 , a 0 ) + ⋯ + ∇ θ π θ ( s T , a T ) π θ ( s T , a T ) ] ∗ p a y o f f \theta:=\theta+\alpha[\frac{\nabla_{\theta}{\pi_{\theta}(s_0,a_0)}}{\pi_{\theta}(s_0,a_0)}+\cdots+\frac{\nabla_{\theta}{\pi_{\theta}(s_T,a_T)}}{\pi_{\theta}(s_T,a_T)}]*payoff θ:=θ+α[πθ(s0,a0)θπθ(s0,a0)++πθ(sT,aT)θπθ(sT,aT)]payoff
}

上述算法之所以使用梯度上升的方式更新 θ \theta θ见下面推导:

链式求导原则
d d θ f ( θ ) g ( θ ) h ( θ ) = f ′ ( θ ) g ( θ ) h ( θ ) + f ( θ ) g ′ ( θ ) h ( θ ) + f ( θ ) g ( θ ) h ′ ( θ ) \frac{d}{d\theta}f(\theta)g(\theta)h(\theta)=f^{'}(\theta)g(\theta)h(\theta)+f(\theta)g^{'}(\theta)h(\theta)+f(\theta)g(\theta)h^{'}(\theta) dθdf(θ)g(θ)h(θ)=f(θ)g(θ)h(θ)+f(θ)g(θ)h(θ)+f(θ)g(θ)h(θ)

我们的目的是使得期望回报最大因此我们对回报的期望求导:
∇ θ E [   p a y o f f ] = ∑ s 0 , a 0 , s 1 , ⋯   , s t [ p ( s 0 ) ( ∇ θ π θ ( s 0 , a 0 ) ) p s 0 , a 0 ( s 1 ) π θ ( s 1 , a i ) ⋯ π θ ( s t , a t ) + p ( s 0 ) π θ ( s 0 , a 0 ) p s 0 , a 0 ( s 1 ) ( ∇ θ π θ ( s 1 , a 1 ) ) ⋯ π θ ( s t , a t ) + p ( s 0 ) π θ ( s 0 , a 0 ) p s 0 , a 0 ( s 1 ) π θ ( s 1 , a i ) ⋯ ( ∇ θ π θ ( s t , a t ) ) ] ∗ p a y o f f = ∑ s 0 , a 0 , s 1 , ⋯   , s t p ( s 0 ) π θ ( s 0 , a 0 ) p s 0 , a 0 ( s 1 ) π θ ( s 1 , a i ) ⋯ π θ ( s t , a t ) ∗ [ ∇ θ π θ ( s 0 , a 0 ) π θ ( s 0 , a 0 ) + ⋯ + ∇ θ π θ ( s T , a T ) π θ ( s T , a T ) ] ∗ p a y o f f = ∑ s 0 , a 0 , s 1 , ⋯   , s t p ( s 0 , s 1 , ⋯   , s t , a t ) ∗ [ ∇ θ π θ ( s 0 , a 0 ) π θ ( s 0 , a 0 ) + ⋯ + ∇ θ π θ ( s T , a T ) π θ ( s T , a T ) ] ∗ p a y o f f = E [ ∇ θ π θ ( s 0 , a 0 ) π θ ( s 0 , a 0 ) + ⋯ + ∇ θ π θ ( s T , a T ) π θ ( s T , a T ) ] ∗ p a y o f f \nabla_{\theta}E[\,payoff]\\ =\sum_{s_0,a_0,s_1,\cdots,s_t}[p(s_0)(\nabla_{\theta}{\pi_{\theta}(s_0,a_0)})p_{s_0,a_0}(s_1)\pi_{\theta}(s_1,a_i)\cdots\pi_{\theta}(s_t,a_t)+p(s_0)\pi_{\theta}(s_0,a_0)p_{s_0,a_0}(s_1)(\nabla_{\theta}{\pi_{\theta}(s_1,a_1)})\cdots\pi_{\theta}(s_t,a_t)+\\ p(s_0)\pi_{\theta}(s_0,a_0)p_{s_0,a_0}(s_1)\pi_{\theta}(s_1,a_i)\cdots(\nabla_{\theta}\pi_{\theta}(s_t,a_t))]*payoff\\ =\sum_{s_0,a_0,s_1,\cdots,s_t}p(s_0)\pi_{\theta}(s_0,a_0)p_{s_0,a_0}(s_1)\pi_{\theta}(s_1,a_i)\cdots\pi_{\theta}(s_t,a_t)*[\frac{\nabla_{\theta}{\pi_{\theta}(s_0,a_0)}}{\pi_{\theta}(s_0,a_0)}+\cdots+\frac{\nabla_{\theta}{\pi_{\theta}(s_T,a_T)}}{\pi_{\theta}(s_T,a_T)}]*payoff\\ =\sum_{s_0,a_0,s_1,\cdots,s_t}p(s_0,s_1,\cdots,s_t,a_t)*[\frac{\nabla_{\theta}{\pi_{\theta}(s_0,a_0)}}{\pi_{\theta}(s_0,a_0)}+\cdots+\frac{\nabla_{\theta}{\pi_{\theta}(s_T,a_T)}}{\pi_{\theta}(s_T,a_T)}]*payoff\\ =E[\frac{\nabla_{\theta}{\pi_{\theta}(s_0,a_0)}}{\pi_{\theta}(s_0,a_0)}+\cdots+\frac{\nabla_{\theta}{\pi_{\theta}(s_T,a_T)}}{\pi_{\theta}(s_T,a_T)}]*payoff θE[payoff]=s0,a0,s1,,st[p(s0)(θπθ(s0,a0))ps0,a0(s1)πθ(s1,ai)πθ(st,at)+p(s0)πθ(s0,a0)ps0,a0(s1)(θπθ(s1,a1))πθ(st,at)+p(s0)πθ(s0,a0)ps0,a0(s1)πθ(s1,ai)(θπθ(st,at))]payoff=s0,a0,s1,,stp(s0)πθ(s0,a0)ps0,a0(s1)πθ(s1,ai)πθ(st,at)[πθ(s0,a0)θπθ(s0,a0)++πθ(sT,aT)θπθ(sT,aT)]payoff=s0,a0,s1,,stp(s0,s1,,st,at)[πθ(s0,a0)θπθ(s0,a0)++πθ(sT,aT)θπθ(sT,aT)]payoff=E[πθ(s0,a0)θπθ(s0,a0)++πθ(sT,aT)θπθ(sT,aT)]payoff

POMDPs也可以使用 p o l i c y     s e a r c h policy\,\,\,search policysearch,假设有 s s s的近似值 s ^ \hat{s} s^ (可以通过Kalman Filter 计算 s ^ = s t ∣ t \hat{s}=s_{t|t} s^=stt)。如 π θ ( s ^ , a ) = 1 1 + e − θ s ^ \pi_{\theta}(\hat{s},a)=\frac{1}{1+e^{-\theta \hat{s}}} πθ(s^,a)=1+eθs^1


Pegasus

PegasusPolicy Evaluation of Gradient And Search Using Scenarios的缩写。我们一般马尔可夫的过程是 s 0 ⟶ π ( s 0 ) s 1 ⟶ π ( s 1 ) s 2 ⟶ π ( s 2 ) s 3 ⋯ ⟶ π ( s T − 1 ) s T s_0 \stackrel{\pi(s_0)}\longrightarrow s_1 \stackrel{\pi(s_1)}\longrightarrow s_2 \stackrel{\pi(s_2)} \longrightarrow s_3\cdots \stackrel{\pi(s_{T-1})}\longrightarrow s_T s0π(s0)s1π(s1)s2π(s2)s3π(sT1)sT,在实际应用中一般会创建一个模拟来模拟输入 s t s_t st s t s_t st得到 s t + 1 s_{t+1} st+1的过程,我们一般假设 s t + 1 = A s t + B a t + w t s_{t+1}=As_t+Ba_t+w_t st+1=Ast+Bat+wt可以知道每次模拟器生产 s t + 1 s_{t+1} st+1的时候都带有随机噪声,那么当我们在 p o l i c y policy policy搜索时候,如果 p o l i c y policy policy不同且 w t w_t wt的噪声每次还有很大差异就很难找到最优的 p o l i c y policy policy,因此此时存在多个变化的量,无法根据最大回报来得出最佳的 p o l i c y policy policy。因为我们的模拟器因为要模拟噪声,那么每次都会生成随机数来实现,即使是相同的策略,得出的回报也会不同。我们需要做的就是在每个场景固定一组随机数,基于这个随机数场景计算各个 p o l i c y policy policy的回报,然后平均多个随机数序列场景然后评估出最佳的 p o l i c y policy policy 。这就是Pegasus名字的由来。

一般来说直接的决策(如:自动驾驶、倒立摆)使用 p o l i c y s e a r c h policy search policysearch比较好,而对于前面的决策对后续回报有影响的(如:围棋、俄罗松方块)最好选择值迭代方式找到最佳的 p o l i c y policy policy

:pegasus 请参见Lecture 20 48分~65分的讲解


结论

CS229 2008系列完结!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值