《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 下的期望,但是我们只是已知/或能模拟出另一个分布 g g 的情况,该怎么办?
- 方法:
- 也就是说,只要求 f(x)g(x)x f ( x ) g ( x ) x 在分布 g g 下的期望就可以了,这点可以用MC来做到
- 这里,我们把 叫做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
π
- 注意:其中的内部循环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
- 缺点:麻烦,不能保证覆盖全面
- 方法:在初始化episode的时候,随机一点,允许exploration
-
ε
ε
-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)
- 优点:是所有 ε ε -soft策略中最优的
- exploring start
Importance Sampling 估算value function (off-policy)
state-value function
- 基本原理
- 策略
π
π
的一个episode中的一个子序列
t→T
t
→
T
的概率
Pπ(At,St+1,At+1,…,ST|St)=∏k=tT−1π(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 ) - 同理,对
b
b
也是一样,那么
也就是说,只需要知道策略,与model无关 - vπ(St)=Eb[ρtGt|St] v π ( S t ) = E b [ ρ t G t | S t ]
- 策略
π
π
的一个episode中的一个子序列
t→T
t
→
T
的概率
- 两种方法
- 简单平均(
ordinary importance sampling
)
- V(s)=∑t∈T(s)ρtGt|T(s)| V ( s ) = ∑ t ∈ T ( s ) ρ t G t | T ( s ) |
- 根据上面的原理得到的 最直观的实现
- 优点:无偏
- 缺点:方差可能很大,甚至无限大
- 加权平均(
weighted importance sampling
)(一般更优)
- V(s)=∑t∈T(s)ρtGt∑t∈T(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
π
- 最后内循环中的退出条件,仅当 π(At|St)=0 π ( A t | S t ) = 0 时成立,即出现了 b b 中存在,但中不会存在的策略,因为是倒序迭代,所以继续往下是没有意义的(如果继续迭代下去,相当于把不可能存在的样本序列加进去)
- control
- 最后内循环中的退出条件理由基本同上,因为这里假设
π
π
是确定性策略
也就是说, π(At|St)=1 π ( A t | S t ) = 1 (Exercise 5.9)
- 最后内循环中的退出条件理由基本同上,因为这里假设
π
π
是确定性策略
- 计算
qπ
q
π