《Reinforcement Learning》 读书笔记 5:蒙特卡洛(Monte Carlo Methods)

《Reinforcement Learning: An Introduction》 读书笔记 - 目录

问题

前面两章都假设我们已知MDP的分布 p(s,r|s,a) p ( s ′ , r | s , a ) (model),但有时这一点难以做到(第2章的多臂老虎机问题是一个特殊的例子),或者说这种Markov假设可能是不合理的,那么我们只能从真实/模拟环境中去获取这些知识

  • PS: 以下只考虑episodic task

一些概念

Monte Carlo(MC)

  • 用样本分布代替总体分布,估计一些总体分布的参数
  • 简单来说,就是假设想知道一些真实分布的一些信息,比如期望,或函数的期望,如果我们不知道真实分布的表达式,或者知道,但是很难推导求解,就需要模拟出一批样本,再做平均,虽然有误差,可只样本量足够大,根据大数定律还是收敛的

Importance Sampling

  • 问题:假设我们要求分布 f f x的期望,但是我们只是已知/或能模拟出另一个分布 g g 的情况,该怎么办?
  • 方法:Ef(x)=xf(x)g(x)g(x)dx=Eg(f(x)g(x)x)
    • 也就是说,只要求 f(x)g(x)x f ( x ) g ( x ) x 在分布 g g 下的期望就可以了,这点可以用MC来做到
    • 这里,我们把ρ=f(x)g(x) 叫做importance-sampling ratio
      • f(x) f ( x ) g(x) g ( x ) 的表达式不一定要是已知的,只要知道比值就可以

on/off-policy

  • on-policy
    • 直接评价或优化目标策略
    • 假设目标策略为 π π ,则通过model或观测/模拟直接计算其value function,或优化它
  • off-policy
    • 两个策略
      • 行为策略(behavior policy) b b ,已知或观察/模拟的策略
      • 目标策略(target policy) π,待评估的策略
    • 目标:通过 b b 评估/优化 π
    • π=b π = b 时,on/off policy一致

Monte Carlo Control

  • 其实就是用MC方法替换了替换了原来的policy evaluation方法

MC估算value function(on-policy)

两种方法

  • first-visit MC
    • 对于一个episode,只考虑第一次进入到某种state(-action)后的return
    • 各episode之间iid,相对误差 O(1/n) → O ( 1 / n )
    • 举例,计算 vπ v π
      MC_1
      • 注意:其中的内部循环t是倒序的(考虑第2章计算 Gt G t 时的递推式),这里还可以加上折扣因子 γ γ
  • every-visit MC
    • 考虑episode中每次进入到state(-action)后的return
    • 虽然不独立,但是误差仍然 O(1/n) → O ( 1 / n )

action-value function

  • 问题:如果采用某种确定性的策略,则可能会有很多state-action在模拟的过程不会碰到(exploitation only),导致样本量为0
  • 两种思路
    • exploring start
      • 方法:在初始化episode的时候,随机一点,允许exploration
        MC_2
      • 缺点:麻烦,不能保证覆盖全面
    • ε ε -greedy
      • ε ε -soft:区别于确定性策略的绝对,要求所有 π(a|s)ε|A(s)| π ( a | s ) ≥ ε | A ( s ) |
      • 方法:类似第2章中的方法
        • p=1ε+ε|A(s)| p = 1 − ε + ε | A ( s ) | 采用原先确定性的action(exploitation)
        • p=ε|A(s)| p = ε | A ( s ) | 选取剩下的策略(exploration)
        • MC_3
      • 优点:是所有 ε ε -soft策略中最优的

Importance Sampling 估算value function (off-policy)

state-value function

  • 基本原理
    1. 策略 π π 的一个episode中的一个子序列 tT t → T 的概率
      Pπ(At,St+1,At+1,,ST|St)=k=tT1π(Ak+1|Sk)p(Sk+1|Sk,Ak+1) P π ( A t , S t + 1 , A t + 1 , … , S T | S t ) = ∏ k = t T − 1 π ( A k + 1 | S k ) p ( S k + 1 | S k , A k + 1 )
    2. 同理,对 b b 也是一样,那么
      ρt=k=tT1π(Ak+1|Sk)p(Sk+1|Sk,Ak+1)k=tT1b(Ak+1|Sk)p(Sk+1|Sk,Ak+1)=k=tT1π(Ak+1|Sk)k=tT1b(Ak+1|Sk)

      也就是说,只需要知道策略,与model无关
    3. vπ(St)=Eb[ρtGt|St] v π ( S t ) = E b [ ρ t G t | S t ]
  • 两种方法
    • 简单平均(ordinary importance sampling)
      • V(s)=tT(s)ρtGt|T(s)| V ( s ) = ∑ t ∈ T ( s ) ρ t G t | T ( s ) |
      • 根据上面的原理得到的 最直观的实现
      • 优点:无偏
      • 缺点:方差可能很大,甚至无限大
        MC_4
    • 加权平均(weighted importance sampling)(一般更优)
      • V(s)=tT(s)ρtGttT(s)ρt V ( s ) = ∑ t ∈ T ( s ) ρ t G t ∑ t ∈ T ( s ) ρ t
      • 优点:方差较小
      • 缺点:有偏(考虑只有一个样本情况,即 V(s)=Gt V ( s ) = G t )(但是渐近无偏)
    • 说明
      • 这里把所有episode串联起来,所以t是全局唯一的(只是一种简单处理的表示方法)
      • T(s) T ( s ) 表示状态s被访问的t集合(取决于first-visist还是every-visit
      • ρt ρ t 表示从t到该episode的termination state之间的ratio
  • 实现例子
    这里都用了weighted方法,并用了迭代式减少内存开销
    • 计算 qπ q π
      MC_5
      • 最后内循环中的退出条件,仅当 π(At|St)=0 π ( A t | S t ) = 0 时成立,即出现了 b b 中存在,但π中不会存在的策略,因为是倒序迭代,所以继续往下是没有意义的(如果继续迭代下去,相当于把不可能存在的样本序列加进去)
    • control
      MC_6
      • 最后内循环中的退出条件理由基本同上,因为这里假设 π π 是确定性策略
        也就是说, π(At|St)=1 π ( A t | S t ) = 1 Exercise 5.9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值