David Silver强化学习系列博客的内容整理自David Silver 强化学习的PPT和知乎叶强强化学习专栏。
1 Introduction
前三节笔记中,通过动态规划能够解决环境已知的MDP问题,也就是已知 <S,A,P,R,γ> < S , A , P , R , γ > <script type="math/tex" id="MathJax-Element-1"> </script>,已知environment即已知转移矩阵 P P 与reward函数
。但是很多问题中environment是未知的,不清楚做出了某个action之后会变到哪一个state,也不知道这个action好还是不好,在这种情况下需要解决的prediction和control问题就是Model-free prediction和Model-free control。显然这种新的问题只能从与environment的交互得到的experience中获取信息。
这一章节笔记要解决的问题是Model-free prediction,即未知environment的Policy evaluation,在给定的policy下,求解每个state的value function是多少。
2 Monte-Carlo Learning
2.1 Monte-Carlo Reinforcement Learning
蒙特卡罗强化学习 (Monte-Carlo reinforcement learning, MC 学习): 指在不清楚 MDP 状态转移概率和即时奖励的情况下,直接从经历完整的状态序列 (episode) 来估计状态的真实价值,通常情况下某状态的价值等于在多个episode中以该状态算得到的所有收获的平均。
完整的状态序列 (complete episode):指从某一个状态开始,agent与环境交互直到终止状态,环境给出终止状态的奖励为止。完整的状态序列不要求起始状态一定是某一个特定的状态,但是要求个体最终进入环境认可的某一个终止状态。
比如,现评估某状态 s s 的价值函数。我们采样了两个episode,从一个episode里面得到的回报是5,然后下一个episode里面的得到的回报是7,我们可以从起始状态来评估此状态的价值函数=(5+7)/2=6。
注:收获不是针对Episode的,它存在于Episode内,针对于Episode中某一个状态。从这个状态开始经历完Episode时得到的有衰减的即时奖励的总和。从一个Episode中,我们可以得到该Episode内所有状态的收获。当一个状态在Episode内出现多次,该状态的收获有不同的计算方法,下文会讲到。
蒙特卡罗强化学习有如下特点:不依赖状态转移概率,直接从经历过的完整的状态序列中学习,使用的思想就是用平均收获值代替状态价值。理论上完整的状态序列越多,结果越准确。
2.2 Monte-Carlo Policy Evaluation
我们可以使用蒙特卡罗强化学习来评估一个给定的策略。基于特定策略
的一个 Episode信息可以表示为如下的一个序列: S1,A1,R2,S2,A2,...,St,At,Rt+1,...,Sk∼π S 1 , A 1 , R 2 , S 2 , A 2 , . . . , S t , A t , R t + 1 , . . . , S k ∼ π
其中, Rt+1 R t + 1 表示agent在状态 St S t 执行一个行为 At A t 后,离开该状态获得的即时奖励。很多时候,即时奖励只出现在Episode结束状态时,但不能否认在中间状态也可能有即时奖励。
t t 时刻状态
的收获可以表述为: Gt=Rt+1+γRt+2+...+γT−1RT G t = R t + 1 + γ R t + 2 + . . . + γ T − 1 R T
其中, T T 为终止时刻。该策略下某一状态
的价值: vπ(s)=Eπ[Gt|St=s]≈∑i=tNGiN v π ( s ) = E π [ G t | S t = s ] ≈ ∑ i = t N G i N
在Monte-Carlo policy evaluation中,价值函数的取值从期望简化成了均值。当 N N 逼近
时,我们可以得到确切的函数期望值。
2.3 First-Visit Monte-Carlo Policy Evaluation
不难发现,在蒙特卡罗算法评估策略时要针对多个包含同一状态的完整状态序列求收获继而再取收获的平均值。如果一个完整的状态序列中某一需要计算的状态出现在序列的多个位置,也就是说个体在与环境交互的过程中从某状态出发后又一次或多次返回到该状态。在这种情况下,根据收获的定义,在一个状态序列下,不同时刻的同一状态其计算得到的收获值是不一样的。我们有两种方法可以选择,一是仅把状态序列中第一次出现该状态时的收获值纳入到收获平均值的计算中;另一种是针对一个状态序列中每次出现的该状态,都计算对应的收获值并纳入到收获平均值的计算中。两种方法对应的蒙特卡罗评估分别称为:首次访问 (frst visit) 和每次访问 (every visit) 蒙特卡罗评估。
首次访问蒙特卡罗评估: 给定一个策略,使用一系列完整Episode评估某一个状态s时,对于每一个Episode,仅当该状态第一次出现时列入计算。
假设有 n n 个episode,评估状态
。对于第一个episode,查找该episode中 s s 第一次出现的位置,如果该episode中存在状态
,则计数器 N(s) N ( s ) 加1,并计算此时该状态的收获值 Gt