CS229 Lecture 20


POMDPs(Partially Observed MDPs)
Policy search
Reinforce
Pagasus
conclusion


回顾

st+1=Ast+Bat+wts_{t+1}=As_t+Ba_t+w_tst+1​=Ast​+Bat​+wt​

yt=Cst+vty_t=Cs_t+v_tyt​=Cst​+vt​

At+1:at+1=LtstA_{t+1}:a_{t+1}=L_ts_tAt+1​:at+1​=Lt​st​

在LQR问题中,因为噪声等因素的存在无法观测到真实状态sts_tst​,只能通过混杂着噪声的观察状态y1,y2,⋯,yty_1,y_2,\cdots,y_ty1​,y2​,⋯,yt​来得出下一步的动作。首先需要得出对sts_tst​的最佳估计st∣ts_{t|t}st∣t​,通过Kalman Filter可以得出st∣y1,y2,⋯,yt∼N(st∣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​),然后通过at:=Lt,st∣ta_t:=L_t,s_{t|t}at​:=Lt​,st∣t​。


POMDPs

部分观测马尔可夫决策过程定义为一个元组(S,A,Y,{Psa},O,T,T)(S,A,Y,\{P_{sa}\},\mathcal{O},T,T)(S,A,Y,{Psa​},O,T,T),其中YYY是所有可能观测值的集合,Os\mathcal{O}_sOs​是观测所属的分布,每次观测中在sts_tst​下观测为yty_tyt​服从yt∼Osty_t\sim \mathcal{O}_{st}yt​∼Ost​。


Policy search

policysearchpolicy\,\,\,searchpolicysearch 和之前LQR方式不同在于,之前通过最大化值函数V⋆V^{\star}V⋆进而得出最佳的π⋆\pi^{\star}π⋆。这里的policysearchpolicy\,\,\,searchpolicysearch是直接对policypolicypolicy进行选取。

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

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

课上使用PolicysearchPolicy\,\,searchPolicysearch的例子:假设一个倒立摆,其中摆与垂线的夹角为ϕ\phiϕ小车的位置为xxx,现在小车无非两个选择向左运动或者向右运动。假设向右运动为a1a_1a1​,向左为a2a_2a2​。假设有:πθ(s,a1)=11+e−θTs,πθ(s,a2)=1−11+e−θTs\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=[1xx˙ϕϕ˙]s=\\\left[ \begin{matrix}1 \\ x \\ \dot{x} \\ \phi \\ \dot{\phi} \end{matrix} \right]s=⎣⎢⎢⎢⎢⎡​1xx˙ϕϕ˙​​⎦⎥⎥⎥⎥⎤​,θ=[00010]\theta=\left[ \begin{matrix} 0 \\ 0 \\ 0 \\ 1 \\ 0 \end{matrix} \right]θ=⎣⎢⎢⎢⎢⎡​00010​⎦⎥⎥⎥⎥⎤​,那么p(a=a1)=11+e−θTs=11+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(s0,a0)+⋯+R(sT,at)∣πθ,s0]\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​]

注:当动作是多个离散的选择是可以选择softmaxsoftmaxsoftmax函数,动作是连续的可以选取动作的密度函数。


Reinforce algorithm

假设s0s_0s0​是一个固定的初始状态,我们的期望是:max⁡θE[R(s0,a0)+⋯+R(sT,at)∣πθ,s0]\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(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]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​]

算法的流程为:
LoopLoopLoop  {

抽样 s0,a0,s1,a1,⋯,st,ats_0,a_0,s_1,a_1,\cdots,s_t,a_ts0​,a0​,s1​,a1​,⋯,st​,at​
     计算收益payoff=[R(s0,a0)+⋯+R(sT,at)∣πθ,s0]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θ的方式为:θ:=θ+α[∇θπθ(s0,a0)πθ(s0,a0)+⋯+∇θπθ(sT,aT)πθ(sT,aT)]∗payoff\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θ见下面推导:

链式求导原则
ddθ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θd​f(θ)g(θ)h(θ)=f′(θ)g(θ)h(θ)+f(θ)g′(θ)h(θ)+f(θ)g(θ)h′(θ)

我们的目的是使得期望回报最大因此我们对回报的期望求导:
∇θ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\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也可以使用policysearchpolicy\,\,\,searchpolicysearch,假设有sss的近似值s^\hat{s}s^ (可以通过Kalman Filter 计算s^=st∣t\hat{s}=s_{t|t}s^=st∣t​)。如πθ(s^,a)=11+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的缩写。我们一般马尔可夫的过程是s0⟶π(s0)s1⟶π(s1)s2⟶π(s2)s3⋯⟶π(sT−1)sTs_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_Ts0​⟶π(s0​)​s1​⟶π(s1​)​s2​⟶π(s2​)​s3​⋯⟶π(sT−1​)​sT​,在实际应用中一般会创建一个模拟来模拟输入sts_tst​和sts_tst​得到st+1s_{t+1}st+1​的过程,我们一般假设st+1=Ast+Bat+wts_{t+1}=As_t+Ba_t+w_tst+1​=Ast​+Bat​+wt​可以知道每次模拟器生产st+1s_{t+1}st+1​的时候都带有随机噪声,那么当我们在policypolicypolicy搜索时候,如果policypolicypolicy不同且wtw_twt​的噪声每次还有很大差异就很难找到最优的policypolicypolicy,因此此时存在多个变化的量,无法根据最大回报来得出最佳的policypolicypolicy。因为我们的模拟器因为要模拟噪声,那么每次都会生成随机数来实现,即使是相同的策略,得出的回报也会不同。我们需要做的就是在每个场景固定一组随机数,基于这个随机数场景计算各个policypolicypolicy的回报,然后平均多个随机数序列场景然后评估出最佳的policypolicypolicy 。这就是Pegasus名字的由来。

一般来说直接的决策(如:自动驾驶、倒立摆)使用policysearchpolicy searchpolicysearch比较好,而对于前面的决策对后续回报有影响的(如:围棋、俄罗松方块)最好选择值迭代方式找到最佳的policypolicypolicy

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


结论

CS229 2008系列完结!

CS229 Lecture 20相关推荐

  1. 机器学习总结(lecture 20)算法库:sk-learn

    lecture 20:sk-learn 目录 lecture 20sk-learn 目录 1why sklearn 2sklearn一般使用 1选择学习方法 2通用学习模式 3sklearn 强大数据 ...

  2. Lecture 20 Parallel Algorithms I

  3. MIT | 数据分析、信号处理和机器学习中的矩阵方法 笔记系列 Lecture 6 Singular Value Decomposition (SVD)

    本系列为MIT Gilbert Strang教授的"数据分析.信号处理和机器学习中的矩阵方法"的学习笔记. Gilbert Strang & Sarah Hansen | ...

  4. 机器学习中的随机过程_机器学习过程

    机器学习中的随机过程 If you would like to get a general introduction to Machine Learning before this, check ou ...

  5. 支持向量机理论(SVM)

    CS229 Lecture notes 支持向量机(Support Vector Machines) 本章的讲义主要讲述的是 支持向量机( Support Vector Machine ,缩写为 SV ...

  6. [监督学习]GDA 高斯判别分析

    高斯判别分析(Gaussian discriminative analysis )是一个较为直观的模型,基本的假设是我们得到的数据是独立同分布的(IID),虽然在实际中这种假设很难达到,但有时候拥有了 ...

  7. Logistic Regression 正则

    出处:https://chenrudan.github.io/blog/2016/01/09/logisticregression.html 本文是受rickjin老师的启发,谈谈关于logistic ...

  8. 上帝视角任意切换:三维重建和图像渲染是怎么结合的?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 导读 本文介绍了3D图像网站Photo Synth及其前身Photo Tourism,并讲解了它们的两 ...

  9. logistic回归和最大熵

    回顾发现,李航的<统计学习方法>有些章节还没看完,为了记录,特意再水一文. 0 - logistic分布 如<统计学习方法>书上,设X是连续随机变量,X服从logistic分布 ...

  10. lda 吗 样本中心化 需要_机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA...

    本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...

最新文章

  1. 一个女生不主动联系你还有机会吗?
  2. 苹果状态栏HTML,CSS3实现苹果电脑的DOCK菜单栏_html/css_WEB-ITnose
  3. bada 2D游戏编程之十——关键帧动画原理
  4. 如何设置电脑自动锁屏_工信部重要提醒:赶紧设置这个密码!手机丢时也不怕损失!...
  5. linux 如何创建内核进程,Linux内核的进程创建和执行.pdf
  6. truncate、rename函数的使用
  7. C++中的模板那点事
  8. 迈克菲实验室:2018五大网络安全威胁
  9. 温度转换示例(有每一步代码的解释)
  10. Unit Of Measure UOM in Oracle Applications Inventory
  11. 苹果6系统怎么更新不了_苹果手机系统怎么降级
  12. 4.7 Case Study on Sandy Bridge C…
  13. 花了一个周末折腾蜗牛星际的黑群晖,多图预警!
  14. linkedin 架构_投票:您如何使用LinkedIn?
  15. 不用找,你想要的手抄报 小报印刷模板素材都在这里
  16. 什么是RISC-V生态系统?
  17. 2006年主流建站系统及其典型网站演示(CMS篇)
  18. Java入门(四):进阶
  19. Moodle平台题库建设技术
  20. 企业微信机器人自动消息发送webhook接入代码

热门文章

  1. html中onblur属性,html中的onfocus和onblur是什么属性?怎么使用?
  2. sqlserver加载驱动失败的问题
  3. vue element UI 学习总结笔记(十一)_vue中打印模板设置
  4. xp的ie显示无服务器,WinXP系统IE无法打开站点怎么办?
  5. 2019年中国计算机学会(CCF)推荐国际学术会议-计算机网络(2019.04.25)
  6. 免费的个人网路监控软体 NetLimiter 2 Monitor
  7. Java摇骰子比大小_android 摇骰子比大小app源码
  8. 一个视频分割为多个视频片段
  9. java输入数字星期,输出英文
  10. PEM 与 DER 格式详解