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 y1,y2,⋯,yt来得出下一步的动作。首先需要得出对 s t s_t st的最佳估计 s t ∣ t s_{t|t} st∣t,通过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}) st∣y1,y2,⋯,yt∼N(st∣t,Σt∣t),然后通过 a t : = L t , s t ∣ t a_t:=L_t,s_{t|t} at:=Lt,st∣t。
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} yt∼Ost。
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×A→R 的函数,这里 π ( 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)=1−1+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,⋯,st∑p(s0,a0,s1,⋯,st)[R(s0,a0)+⋯+R(sT,at)∣πθ,s0]=s0,a0,s1,⋯,st∑p(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,⋯,st∑p(s0)πθ(s0,a0)ps0,a0(s1)πθ(s1,ai)⋯πθ(st,at)∗[πθ(s0,a0)∇θπθ(s0,a0)+⋯+πθ(sT,aT)∇θπθ(sT,aT)]∗payoff=s0,a0,s1,⋯,st∑p(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^=st∣t)。如 π θ ( 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
Pegasus是Policy 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⋯⟶π(sT−1)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系列完结!