这篇博文是另一篇博文Model-Free Policy Evaluation 无模型策略评估的一个小节,因为 蒙特·卡罗尔策略评估本身就是一种无模型策略评估方法,原博文有对无模型策略评估方法的详细概述。

简单而言, 蒙特·卡罗尔策略评估是依靠在给定策略下使智能体运行多个轮次并采样对回报取平均值近似期望来更新对价值的估计,根据大数定理,采样的轮次越多,估计值越接近真实值。

相关基础概念

  • 如果我们不知道动态模型P/或奖励模型R呢?
  • 新内容:在没有模型的条件下进行策略价值评估
    • 给定数据/或与环境交互的能力
    • 足够计算策略π\piπ的合理估计

Monte Carlo(MC) Policy Evaluation

蒙特·卡罗尔策略评估

  • Gt=rt+γrt+1+γ2rt+2+r3γrt+3+...G_t = r_t+\gamma r_{t+1}+\gamma^2r_{t+2}+r^3\gamma r_{t+3}+...Gt​=rt​+γrt+1​+γ2rt+2​+r3γrt+3​+... in MDP M under policy π\piπ
  • Vπ(s)=ET∼π[Gt∣st=s]V^\pi(s)=\mathbb{E}_{\Tau \sim \pi}[G_t|s_t=s]Vπ(s)=ET∼π​[Gt​∣st​=s]
    • 遵循策略π\piπ产生的迹(trajectories)T\TauT(希腊字母tau)上的期望

迹(trajectories)想表达的是执行路径的意思,其实也可以翻译成路径,但形式化领域惯用迹这种说法。

  • 简单的理解思路:价值 = 回报的平均(Value = mean return)

  • 如果所有的迹都是有限的,那么我们在迹的集合中采样并计算平均回报

  • 不需要MDP的动态模型/回报模型

  • 不需要bootstrapping

  • 不需要假设状态是马尔科夫的

  • 只能被应用于周期化(可以重复进行多次的意思)的MDPs

    • 在一个完整的一轮(episode)中取平均
    • 需要每一轮都能终止

最后一个如何理解,比如人生只有一次,所以它不能重复,也就不能进行多次然后取平均;但驾车去机场可以重复,每一轮都走高速,然后重复100轮取平均是可行的。去机场可能会花很长时间,但你最后都能到达机场(一轮终止),而且第二天你还能再接着去机场(周期化)。

Monte Carlo(MC) Policy Evaluation

  • 目标:在策略π\piπ下给定的所有轮次下估计VπV^\piVπ

    • s1,a1,r1,s2,a2,r2,...s_1,a_1,r_1,s_2,a_2,r_2,...s1​,a1​,r1​,s2​,a2​,r2​,...其中的动作都是在策略π\piπ中采样得到的。
  • Gt=rt+γrt+1+γ2rt+2+γ3rt+3+...G_t=r_t+\gamma r_{t+1}+\gamma^2r_{t+2}+\gamma^3r_{t+3}+...Gt​=rt​+γrt+1​+γ2rt+2​+γ3rt+3​+... in MDP M under policy π\piπ
  • Vπ(s)=Eπ[Gt∣st=s]V^\pi(s) = \mathbb{E}_\pi[G_t|s_t=s]Vπ(s)=Eπ​[Gt​∣st​=s]
  • MC计算实验平均回报
  • 通常是通过一个递增的风格实现的
    • 在每一轮之后,更新VπV^\piVπ的估计

First-Visit Monte Carlo(MC) On Policy Evaluation Algorithm

Initialize N(s)=0N(s) = 0N(s)=0, G(s)=0∀s∈SG(s)=0\ \forall s \in SG(s)=0 ∀s∈S
Loop

  • Sample episode i=si,1,ai,1,ri,1,si,2,ai,2,ri,2,...,si,Tii=s_{i,1},a_{i,1},r_{i,1},s_{i,2},a_{i,2},r_{i,2},...,s_{i,\Tau_i}i=si,1​,ai,1​,ri,1​,si,2​,ai,2​,ri,2​,...,si,Ti​​
  • Define Gi,t=ri,t+γri,t+1+γ2ri,t+2+...+γTi−1ri,τiG_{i,t}=r_{i,t}+\gamma r_{i, t+1} + \gamma^2r_{i, t+2}+...+\gamma^{\Tau_i-1}r_{i,\tau_i}Gi,t​=ri,t​+γri,t+1​+γ2ri,t+2​+...+γTi​−1ri,τi​​ as return from time step t onwards in ith episode
  • For each state s visited in episode i
    • For first time t that state s is visited in episode i

      • Increment counter of total first visits: N(s)=N(s)+1N(s) = N(s)+1N(s)=N(s)+1
      • Increment total return G(s)=G(s)+Gi,tG(s)=G(s)+G_{i,t}G(s)=G(s)+Gi,t​
      • Update estimate Vπ(s)=G(s)/N(s)V_\pi(s) = G(s)/N(s)Vπ​(s)=G(s)/N(s)

Note:这个算法被称作策略评估上的第一次访问蒙特·卡罗尔算法,是因为只在第一次访问某个状态s的时候计算,更新估计,下一次再遇到同样的状态

Bias, Variance and MSE

深度学习的概率基础,这里复习一下,因为要衡量估计的好坏,不懂的话参见深度学习那本花书。

  • 考虑一个被θ\thetaθ参数化的统计模型,它决定了在观测数据上的概率分布P(x∣θ)P(x|\theta)P(x∣θ)
  • 考虑一个统计θ^\hat{\theta}θ^,它提供了θ\thetaθ的一个估计并且它是观测数据x上的一个函数
    • 比如。对于一个未知方差的高斯分布,独立同分布(iid,independently identically distribution) 数据点的平均值是对高斯分布平均的一个估计
  • 定义:估计θ^\hat{\theta}θ^的bias是:
    Biasθ(θ^)=Ex∣θ[θ^]−θBias_\theta(\hat{\theta})=\mathbb{E}_{x|\theta}[\hat{\theta}]-\thetaBiasθ​(θ^)=Ex∣θ​[θ^]−θ
  • 定义:估计θ^\hat{\theta}θ^的Variance是:
    Var(θ^)=Ex∣θ[(θ^−E[θ^])2]Var(\hat{\theta})=\mathbb{E}_{x|\theta}[(\hat{\theta}-\mathbb{E}[\hat{\theta}])^2]Var(θ^)=Ex∣θ​[(θ^−E[θ^])2]
  • 定义:估计θ^\hat{\theta}θ^的均方误差(MSE)是:
    MSE(θ^)=Var(θ^)+Bias(θ^)2MSE(\hat{\theta})=Var(\hat{\theta})+Bias(\hat{\theta})^2MSE(θ^)=Var(θ^)+Bias(θ^)2
    MSE(θ^)=Ex∣θ[(^θ)−θ]2MSE(\hat{\theta})=\mathbb{E}_{x|\theta}[\hat(\theta)-\theta]^2MSE(θ^)=Ex∣θ​[(^​θ)−θ]2 (按MSE的定义,博主补充的公式)

有了补充的知识后,在回头看上面的算法:

它有如下性质:

  • VπV^\piVπ估计器是真实期望Eπ[Gt∣st=s]\mathbb{E}_\pi[G_t|s_t=s]Eπ​[Gt​∣st​=s]的一个无偏估计器
  • 根据大数定理,当N(s)→∞N(s)\rightarrow \inftyN(s)→∞时,Vπ(s)→Eπ[Gt∣st=t]V^\pi(s)\rightarrow \mathbb{E}_\pi[G_t|s_t=t]Vπ(s)→Eπ​[Gt​∣st​=t]

Concentration inqualities通常用于Variance。通常我们不知道确切的Bias,除非知道ground truth值。实践中有很多方法得到bias的估计:比较不同形式的参数模型、structural risk maximization。

Every-Visit Monte Carlo (MC) On Policy Evaluation Algorithm

Initialize N(s)=0N(s) = 0N(s)=0, G(s)=0∀s∈SG(s)=0\ \forall s \in SG(s)=0 ∀s∈S
Loop

  • Sample episode i=si,1,ai,1,ri,1,si,2,ai,2,ri,2,...,si,Tii=s_{i,1},a_{i,1},r_{i,1},s_{i,2},a_{i,2},r_{i,2},...,s_{i,\Tau_i}i=si,1​,ai,1​,ri,1​,si,2​,ai,2​,ri,2​,...,si,Ti​​
  • Define Gi,t=ri,t+γri,t+1+γ2ri,t+2+...+γTi−1ri,τiG_{i,t}=r_{i,t}+\gamma r_{i, t+1} + \gamma^2r_{i, t+2}+...+\gamma^{\Tau_i-1}r_{i,\tau_i}Gi,t​=ri,t​+γri,t+1​+γ2ri,t+2​+...+γTi​−1ri,τi​​ as return from time step t onwards in ith episode
  • For each state s visited in episode i
    • For every time t that state s is visited in episode i

      • Increment counter of total first visits: N(s)=N(s)+1N(s) = N(s)+1N(s)=N(s)+1
      • Increment total return G(s)=G(s)+Gi,tG(s) = G(s) + G_{i,t}G(s)=G(s)+Gi,t​
      • Update estimate Vπ(s)=G(s)/N(s)V^\pi(s)=G(s)/N(s)Vπ(s)=G(s)/N(s)

它有如下性质:

  • VπV^\piVπevery-visit MC估计器是真实期望Eπ[Gt∣st=s]\mathbb{E}_\pi[G_t|s_t=s]Eπ​[Gt​∣st​=s]的一个无偏估计器
  • 但是一致性估计器(比如上面的First-Visit)通常会有更好的MSE误差

Incremental Carlo(MC) On Policy Evaluation Algorithm

Initialize N(s)=0N(s) = 0N(s)=0, G(s)=0∀s∈SG(s)=0\ \forall s \in SG(s)=0 ∀s∈S
Loop

  • Sample episode i=si,1,ai,1,ri,1,si,2,ai,2,ri,2,...,si,Tii=s_{i,1},a_{i,1},r_{i,1},s_{i,2},a_{i,2},r_{i,2},...,s_{i,\Tau_i}i=si,1​,ai,1​,ri,1​,si,2​,ai,2​,ri,2​,...,si,Ti​​
  • Define Gi,t=ri,t+γri,t+1+γ2ri,t+2+...+γTi−1ri,τiG_{i,t}=r_{i,t}+\gamma r_{i, t+1} + \gamma^2r_{i, t+2}+...+\gamma^{\Tau_i-1}r_{i,\tau_i}Gi,t​=ri,t​+γri,t+1​+γ2ri,t+2​+...+γTi​−1ri,τi​​ as return from time step t onwards in ith episode
  • For state s visited at time step t in episode i
    • Increment counter of total first visits: N(s)=N(s)+1N(s) = N(s)+1N(s)=N(s)+1
    • Update estimate
      Vπ(s)=Vπ(s)N(s)−1N(s)+Gi,tN(s)=Vπ(s)+1N(s)(Gi,t−Vπ(s))V^\pi(s)=V^\pi(s)\frac{N(s)-1}{N(s)}+\frac{G_{i,t}}{N(s)}= V^\pi(s)+\frac{1}{N(s)}(G_{i,t}-V^\pi(s))Vπ(s)=Vπ(s)N(s)N(s)−1​+N(s)Gi,t​​=Vπ(s)+N(s)1​(Gi,t​−Vπ(s))

注意比较前面以及上面以及下面算法的区别,没有了every-visit,变成了时间步t,即更新条件在不断改变,除此之外也在不断改变Update estimate的内容。

Incremental Carlo(MC) On Policy Evaluation Algorithm, Running Mean

Initialize N(s)=0N(s) = 0N(s)=0, G(s)=0∀s∈SG(s)=0\ \forall s \in SG(s)=0 ∀s∈S
Loop

  • Sample episode i=si,1,ai,1,ri,1,si,2,ai,2,ri,2,...,si,Tii=s_{i,1},a_{i,1},r_{i,1},s_{i,2},a_{i,2},r_{i,2},...,s_{i,\Tau_i}i=si,1​,ai,1​,ri,1​,si,2​,ai,2​,ri,2​,...,si,Ti​​

  • Define Gi,t=ri,t+γri,t+1+γ2ri,t+2+...+γTi−1ri,τiG_{i,t}=r_{i,t}+\gamma r_{i, t+1} + \gamma^2r_{i, t+2}+...+\gamma^{\Tau_i-1}r_{i,\tau_i}Gi,t​=ri,t​+γri,t+1​+γ2ri,t+2​+...+γTi​−1ri,τi​​ as return from time step t onwards in ith episode

  • For state s visited at time step t in episode i

    • For state s is visited at time step t in episode i

      • Increment counter of total first visits: N(s)=N(s)+1N(s) = N(s)+1N(s)=N(s)+1
      • Update estimate
        Vπ(s)=Vπ(s)+α(Gi,t−Vπ(s))V^\pi(s)=V^\pi(s)+\alpha(G_{i,t}-V^\pi(s))Vπ(s)=Vπ(s)+α(Gi,t​−Vπ(s))
  • α=1N(s)\alpha=\frac{1}{N(s)}α=N(s)1​时,和every-visit MC算法等同

  • α>1N(s)\alpha>\frac{1}{N(s)}α>N(s)1​时,算法会忘掉旧数据,在non-stationary(非固定)领域非常有用
    举一个例子,新闻推荐系统中,新闻是在不断变化着的,因此大家通常会重新训练以应对非固定过程(non-stationary)。

例题


Q1: Vs1=Vs2=Vs3V_{s_1} = V_{s_2} = V_{s_3}Vs1​​=Vs2​​=Vs3​​,Vs4=Vs5=Vs6=Vs7=0V_{s_4}=V_{s_5}=V_{s_6}=V_{s_7}=0Vs4​​=Vs5​​=Vs6​​=Vs7​​=0

为什么只有在s1s_1s1​有回报1,其余都没有回报,但价值却是1呢。因为算法在整个轮次结束,最后一次更新V,这时候G=1G=1G=1,只有s1s_1s1​、s2s_2s2​、s3s_3s3​三个状态被访问过,又因为使用的是First-Vist算法,所以,它们count都是1,那么11=1\frac{1}{1}=111​=1

Q2:Vs2=1V_{s_2}=1Vs2​​=1

为什么,因为现在是Every-Visit,所以s2s_2s2​的count是2,所以22=1\frac{2}{2}=122​=1。

MC Policy Evaluation 图片概括描述


MC通过在整个迹上取近似平均(期望)来更新价值估计。

Monte Carlo (MC) Policy Evaluation Key Limitations

  • 通常是个高方差估计器

    • 降低这些方差需要大量数据
  • 要求必须是可重复情景
    • 一个轮次在该轮次的数据用于更新价值函数前该伦次必须能结束

Monte Carlo (MC) Policy Evaluation Summary

  • 目标:在给定由于遵循策略π\piπ而产生的所有轮次的条件下估计Vπ(s)V^\pi(s)Vπ(s)

    • s1,a1,r1,s2,a2,r2,...s_1,a_1,r_1,s_2,a_2,r_2,...s1​,a1​,r1​,s2​,a2​,r2​,...其中动作a在策略π\piπ下采样而来
  • MDP M在遵循策略π\piπGt=rt+γtt+1+γ2rt+2+γ3rt+3+...G_t=r_t+\gamma t_{t+1}+\gamma^2r_{t+2}+\gamma^3r_{t+3}+...Gt​=rt​+γtt+1​+γ2rt+2​+γ3rt+3​+...
  • Vπ(s)=Eπ[Gt∣st=s]V^\pi(s)=\mathbb{E}_\pi[G_t|s_t=s]Vπ(s)=Eπ​[Gt​∣st​=s]
  • 简单理解:依靠实验平均来估计期望(给定从我们所关心策略中采样得到的所有轮次)或者重新加权平均(Importance Sampling,即重要性采样)
  • 更新价值估计是依靠使用一次回报的采样对期望进行近似
  • 不使用bootstrapping
  • 在某些假设(通常是温和假设)下收敛到真实值

Monte Carlo(MC) Policy Evaluation 蒙特·卡罗尔策略评估相关推荐

  1. 蒙特卡洛方法 (Monte Carlo Method)(5)

    与上一节动态编程(DP)方法不同的是,蒙特卡洛(Monte Carlo, MC)方法不需要环境的全部信息,而只需要 "experience",这里的"experience ...

  2. 强化学习系列(五):蒙特卡罗方法(Monte Carlo)

    一.前言 在强化学习系列(四):动态规划中,我们介绍了采用DP (动态规划)方法求解environment model 已知的MDP(马尔科夫决策过程),那么当environment model信息不 ...

  3. 5 蒙特卡洛方法 (Monte Carlo Method)

    [上一篇 4 动态编程(Dynamic Programming, DP)] [下一篇 6 Temporal-Difference (TD) Learning ] 与上一节动态编程(DP)方法不同的是, ...

  4. Monte carlo 求解积分

    Monte carlo 求解积分 文章目录 Monte carlo 求解积分 @[toc] 1 单变量情形 2 多变量情形 1 单变量情形 假设待求解积分形式为 θ = ∫ 0 1 f ( x ) d ...

  5. Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介、实现、应用

    Algorithm之MC:Monte Carlo method蒙特·卡罗方法的简介.实现.应用 目录 随机算法 MC的简介 MC的应用 随机算法 随机算法分为两大类:蒙特卡罗算法和拉斯维加斯算法,都是 ...

  6. 蒙塔卡洛模拟,Monte Carlo method

    让你直接看懂什么是蒙特卡洛模拟,浅显易懂 定义:(参考书<数学建模算法与应用>) 蒙特卡洛就是用计算机随机模拟的方法,它源于世界著名的赌城--摩洛哥的Monte Carlo(蒙特卡洛/罗) ...

  7. ADPRL - 近似动态规划和强化学习 - Note 10 - 蒙特卡洛法和时序差分学习及其实例 (Monte Carlo and Temporal Difference)

    Note 10 蒙特卡洛法和时序差分学习 Monte Carlo and Temporal Difference 蒙特卡洛法和时序差分学习 Note 10 蒙特卡洛法和时序差分学习 Monte Car ...

  8. Chapter 5. Monte Carlo Methods

    目录 5.1 Monte Carlo Policy Evaluation 5.2 Monte Carlo Estimation of Action Values 5.3 Monte Carlo Con ...

  9. 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例

    强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例 4. 蒙特卡洛方法 4.1 蒙特卡洛预测 例4.1:Blackjack(21点) 4.2 动作价值的蒙特卡洛估计 4. ...

  10. 蒙特卡罗(Monte Carlo)方法

    蒙特卡罗(Monte Carlo)方法,也称为计算机随机模拟方法,是一种基于"随机数"的计算方法.          一 起源 这一方法源于美国在第二次世界大战进研制原子弹的&qu ...

最新文章

  1. MySQL:left join 避坑指南
  2. Spark MLlib学习笔记之二——Spark Mllib矩阵向量
  3. WIN7 64位系统安装JDK并配置环境变量
  4. 最简方式 表格编辑 基于 el-table
  5. 简单思维dp-- Gym - 102392B
  6. 2.4 线性相关和张成空间
  7. 发现Tensorflow
  8. java字符串去掉html标签
  9. L2-028 秀恩爱分得快
  10. windows_10_enterprise_ltsc_2019 X64纯净版(17763.2028)20216.23
  11. Windows 上C++ new/detele如何知道内存大小
  12. 使用canvas在原有图片上进行画框并保存
  13. AD-----间距、线宽、阻焊、铺铜规则设置
  14. 现在当兵有什么待遇复原以后_大学生当兵有什么好处 退伍后待遇怎么样
  15. Windows API Hooking with MS Detours
  16. 笔记本重装后回收站文件怎么恢复
  17. 当下最受欢迎的编辑器,赶紧用起来!
  18. 韩国烧脑片力荐,错过一眼都可能会是遗憾
  19. 相机图像传感器参数及其对成像的影响分析
  20. java 混淆字符串_Java逆向基础之ZKM字符串混淆与还原

热门文章

  1. 维基百科中文语料库训练word2vec模型和使用总结
  2. 正确使用RecyclerView分割线
  3. 如何用 Python 实现手机远程控制电脑
  4. 基于layui2.x的通用后台管理系统
  5. imap java代码,JAVA运用IMAP、POP3、SMTP协议收发邮件
  6. 基于单片机的GSM短信家庭防盗报警系统
  7. XAMPP运行MySQL entire log window on the forums解决方案
  8. java自行车s码适合身高_公路自行车尺寸与身高的选择
  9. 让你5分钟明白美国金融危机爆发的原因!
  10. AndroidTV获取U盘路径