强化学习(第二版)笔记——第五章 蒙特卡洛方法

参考

  • 周博磊老师课程
  • Richard S.Sutton 《Reinforcement Learning》第五章

蒙特卡洛方法 Monte Carlo Methods

  • 1 蒙特卡洛方法在强化学习中的应用
  • 2 蒙特卡洛预测(Monte Carlo Prediction)
    • 2.1 首次访问型和每次访问型MC算法
    • 2.2 蒙特卡洛算法与动态规划的区别
  • 3 动作价值的蒙特卡洛估计
    • 3.1 使用蒙特卡洛算法确定动作价值函数
    • 3.2 试探性出发
  • 4 蒙特卡洛控制
    • 4.1 经典策略迭代算法的蒙特卡洛版本
    • 4.2 基于试探性出发的蒙特卡洛(蒙特卡洛ES)
  • 5 同轨策略
  • 6 基于重要度采样的离轨策略
    • 6.1 覆盖假设
    • 6.2 重要度采样
  • 7 增量式实现
    • 7.1 普通重要度采样
    • 7.2加权重要度采样
  • 8 离轨策略蒙特卡洛控制

1 蒙特卡洛方法在强化学习中的应用

蒙特卡洛方法不假设拥有完备的环境知识,仅仅需要经验,即从真实或者模拟的环境交互中采样得到的状态、动作、收益的序列。从真实经验中进行学习是非常好的,它不需要关于环境动态变化规律的先验知识,却依然能够达到最优的行为。从模拟经验中学习也是同样有效的,需要一个模型能够生成状态转移的一些样本。

蒙特卡洛算法通过平均样本的回报来解决强化学习问题。赌博机算法采样并平均每个动作的收益,蒙特卡洛算法采样并平均每一个“状态-动作”二元组的回报。在某个状态采取动作之后的回报取决于在同一个幕内后来的状态中采取的动作。

2 蒙特卡洛预测(Monte Carlo Prediction)

2.1 首次访问型和每次访问型MC算法

首先考虑如何在给定一个策略的情况下,用蒙特卡洛算法来学习其状态价值函数。一个状态的价值是从该状态开始的期望回报,即未来的折扣收益累积值的期望。一个显而易见的方法是根据经验进行估计,即对所有经过这个状态之后产生的回报进行平均。随着越来越多的回报被观察到,平均值就会收敛于期望值。这一想法是所有蒙特卡洛算法的基础。

假设给定在策略 π \pi π下途径状态 s s s的多幕数据,估计策略 π \pi π下状态 s s s的价值函数 v π ( s ) v_\pi(s) vπ(s)。在给定的某一幕中,每次状态 s s s的出现都称为对 s s s的一次访问。在同一幕中, s s s可能会被多次访问到。在这种情况下,称第一次访问为 s s s的首次访问。首次访问型蒙特卡洛(MC)算法用 s s s的所有首次访问的回报的平均值估计 v π ( s ) v_\pi(s) vπ(s),而每次访问型MC算法则使用所有访问的回报的平均值。 s s s的访问次数趋向无穷时,首次访问型和每次访问型MC均会收敛到 v π ( s ) v_\pi(s) vπ(s)

2.2 蒙特卡洛算法与动态规划的区别

如第二张图所示,在蒙特卡洛算法中估计 v π ( s ) v_\pi(s) vπ(s)时,根为一个状态节点,然后往下是某幕样本序列一直到终止状态为止的完整轨迹,其中包含该幕中的全部状态转移。DP的回溯图(第一张图)显示了所有可能的转移,而蒙特卡洛算法(第二张图)则仅仅显示在当前幕中采样到的那些转移。DP的回溯图仅仅包含一步转移,而蒙特卡洛算法则包含了到这一幕结束为止的所有转移。 回溯图上的这些区别清楚地体现了这两种算法之间的本质区别。
强化学习(第二版)笔记——第五章 蒙特卡洛方法_第1张图片
蒙特卡洛回溯图
蒙特卡洛算法的一个重要的事实是:对于每个状态的估计是独立的。 它对于一个状态的估计完全不依赖于对其他状态的估计,这与DP完全不同。换言之,蒙特卡洛算法并没有使用我们在之前章节中描述的自举思想。

计算一个状态的代价与状态的个数是无关的。这使得蒙特卡洛算法适合在仅仅需要获得一个或一个子集的状态的价值函数时使用。我们可以从这个特定的状态开始采样生成一些幕序列,然后获得回报的平均值,而完全不需要考虑其他的状态。 这是蒙特卡洛方法相比于DP的第三个优势(另外两个优势是:可以从实际经历和模拟经历中学习)。

3 动作价值的蒙特卡洛估计

3.1 使用蒙特卡洛算法确定动作价值函数

如果无法得到环境的模型,那么计算动作的价值比起计算状态的价值更加有用一些。在有模型的情况下,单靠状态价值函数就足以确定一个策略:只需要简单地向前看一步,选取特定的动作,使得当前收益与后继状态的状态价值函数指和最大即可。但在没有模型的情况下,仅仅有状态价值函数是不够的。必须通过显式地确定每个动作的价值函数来确定一个策略。 所以这里主要的目标是使用蒙特卡洛算法确定 q ∗ q_* q。因此首先考虑动作价值函数的策略评估问题。

动作价值函数的策略评估问题的目标就是估计 q π ( s , a ) q_\pi(s,a) qπ(s,a),即在策略 π \pi π下从状态 s s s采取动作 a a a的期望回报。只需将对状态的访问改为对“状态-动作”二元组的访问,蒙特卡洛算法可以用几乎和之前完全相同的方式来解决此问题。

如果在某一幕中状态 s s s被访问并在这个状态中采取了动作 a a a,我们就称“动作-状态”二元组 ( s , a ) (s,a) (s,a)在这一幕中被访问到。

每次访问型MC算法将所有“状态-动作”二元组得到的回报的平均值作为价值函数的近似;首次访问型MC算法则将每幕第一次在这个状态下采取这个动作得到的回报的平均值作为价值函数的近似。

3.2 试探性出发

但有一些“状态-动作”二元组可能永远不会被访问到。如果 π \pi π是一个确定性策略,那么遵循 π \pi π意味着在每一个状态中只会观测到一个动作的回报。在无法获取回报进行平均的情况下,蒙特卡洛算法将无法根据经验改善动作价值函数的估计。为了比较每个状态所有可用动作,需要估计在一个状态中采取的所有动作的价值函数,而不仅仅是当前更偏好的某个特定动作的价值函数。

为了实现基于动作价值函数的策略评估,我们必须保证持续的试探。一种方法是将指定的“状态-动作”二元组作为起点开始一幕采样,同时保证所有“状态-动作”二元组都有非零的概率可以被选择为起点。这样就保证了在采样的幕个数趋于无穷的时候,每一个“状态-动作”二元组都会被访问到无数次。把这种假设称为试探性出发。另一种方法是只考虑那些在每个状态下所有动作都有非零概率被选中的随即策略。

4 蒙特卡洛控制

4.1 经典策略迭代算法的蒙特卡洛版本

首先讨论经典策略迭代算法的蒙特卡洛版本。这种方法从任意的策略 π 0 \pi_0 π0开始交替进行完整的策略评估和策略改进,最终得到最优的策略和动作价值函数
π 0 → E q π 0 → I π 1 → E q π 1 → I π 2 → E ⋅ ⋅ ⋅ → I π ∗ → E q ∗ (4.1) \pi_0\xrightarrow{E}q_{\pi_0}\xrightarrow{I}\pi_1\xrightarrow{E}q_{\pi_1}\xrightarrow{I}\pi_2\xrightarrow{E}···\xrightarrow{I}\pi_*\xrightarrow{E}q_* \tag{4.1} π0E qπ0I π1E qπ1I π2E I πE q(4.1)
这里 → E \xrightarrow{E} E 表示策略评估,而 → I \xrightarrow{I} I 表示策略改进。经历了很多幕后,近似的动作价值函数会渐近地趋向真实的动作价值函数。假设我们观测到了无限多幕的序列,并且这些幕保证了试探性出发假设。这种情况下,对于任意的 π k \pi_k πk,蒙特卡洛算法都能精确地计算对应的 q π k q_{\pi_k} qπk
策略改进的方法是在当前价值函数上贪心地选择动作。对于任意的一个动作价值函数 q q q,对应的贪心策略为:对于任意一个状态 s ∈ S s\in S sS,必定选择对应动作价值函数最大的动作
π ( s ) = ˙ arg ⁡ max ⁡ a q ( s , a ) (4.2) \pi(s)\dot=\arg \max_aq(s,a)\tag{4.2} π(s)=˙argamaxq(s,a)(4.2)
策略改进可以通过将 q π k q_{\pi_k} qπk对应的贪心策略作为 π k + 1 \pi_{k+1} πk+1来进行。这样的 π k \pi_k πk π k + 1 \pi_{k+1} πk+1满足策略改进定理。这个定理保证 π k + 1 \pi_{k+1} πk+1一定比 π k \pi_k πk更优,除非 π k \pi_k πk已经是最优策略,这种情况下两者均为最优策略。这个过程反过来保证了整个流程一定收敛到最优的策略和最优的价值函数。在只能得到若干幕采样序列而不知道环境动态知识时,蒙特卡洛算法可以用来寻找最优策略。

4.2 基于试探性出发的蒙特卡洛(蒙特卡洛ES)

对于蒙特卡洛策略迭代,可以逐幕交替进行评估与改进。每一幕结束后,使用观测到的回报进行策略评估,然后在该幕序列访问到的每一个状态上进行策略的改进。 使用这个思路的一个简单的算法,称作基于试探性出发的蒙特卡洛(蒙特卡洛ES)

在蒙特卡洛ES中,无论之前遵循的是哪一个策略,对于每一个“状态-动作”二元组的所有回报都被累加并平均。蒙特卡洛ES不会收敛到任何一个次优策略。因为如果真的收敛到次优策略,其价值函数一定会收敛到该策略对应的价值函数,而这种情况下还会得到一个更优的策略。只有在策略和价值函数都达到最优的情况下,稳定性才能得到保证。

5 同轨策略

为了避免很难被满足的试探性出发假设,智能体需要持续不断地选择所有可能的动作。有两种方法可以保证这一点,分别称为同轨策略(on-policy)方法和离轨策略(off-policy)方法。同轨策略中,用于生成采样数据序列的策略和用于实际决策的待评估和改进的策略是相同的;离轨策略中,用于评估或改进的策略与生成采样数据的策略是不同的,即生成的数据“离开”了待优化的策略所决定的决策序列轨迹。上文提及的蒙特卡洛ES算法是同轨策略方法的一个例子。

同轨策略方法中,策略一般是“软性”的,即对于任意 s ∈ S s\in S sS以及 a ∈ A ( s ) a\in A(s) aA(s),都有 π ( a ∣ s ) > 0 \pi(a|s)>0 π(as)>0,但它们会逐渐地逼近一个确定性的策略。介绍一种同轨策略方法称为 ϵ \epsilon ϵ-贪心策略,意思是在绝大多数的时候都采取获得最大估计值的动作价值函数所对应的动作,但同时以一个较小的 ϵ \epsilon ϵ概率随机选择一个动作。对于所有的非贪心动作,都有 ϵ ∣ A ( s ) ∣ \frac{\epsilon}{|A(s)|} A(s)ϵ的概率被选中。这种 ϵ \epsilon ϵ-贪心策略是 ϵ \epsilon ϵ-软性策略的一个例子,即对某个 ϵ > 0 \epsilon>0 ϵ>0,所有的状态和动作都有 π ( a ∣ s ) ⩾ ϵ ∣ A ( s ) ∣ \pi(a|s)\geqslant \frac{\epsilon}{|A(s)|} π(as)A(s)ϵ。在所有 ϵ \epsilon ϵ-软性策略中, ϵ \epsilon ϵ-贪心策略在某种层面上是最接近贪心策略的。

同轨策略算法的蒙特卡洛控制的总体思想依然是GPI。如同蒙特卡洛ES一样,使用首次访问型MC算法来估计当前策略的动作价值函数。GPI不要求优化过程中所遵循的策略一定是贪心的,只需要它逐渐逼近贪心策略即可。在同轨策略算法中,仅仅改为遵循 ϵ \epsilon ϵ-贪心策略。对于任意一个 ϵ \epsilon ϵ-软性策略 π \pi π,根据 q π q_\pi qπ生成的任意一个 ϵ \epsilon ϵ-贪心策略保证优于或等于 π \pi π

6 基于重要度采样的离轨策略

如何在遵循试探策略采取行动的同时学习到最优策略呢?同轨策略方法是一种妥协——它并不学习最优策略的动作值,而是学习一个接近最优而且仍能进行试探的策略的动作值。也可以干脆采用两个策略:一个用来学习并最终成为最优策略,被称为目标策略,另一个更加有试探性,用来产生智能体的行动样本,被称为行动策略。在这种情况下,认为学习所用的数据“离开”了待学习的目标策略,因此整个过程被称为离轨策略学习。

6.1 覆盖假设

通过讨论预测问题来开始对离轨策略方法的学习,目标策略和行动策略都是固定的。假设我们希望预测 v π v_\pi vπ q π q_\pi qπ,但是我们只有遵循另一个策略 b ( b ≠ π ) b(b\neq\pi) b(b=π)所得到的若干幕样本。在这种情况下, π \pi π是目标策略, b b b是行动策略,两个策略都固定且已知。

为了使用从 b b b得到的多幕样本序列去预测 π \pi π,我们要求在 π \pi π下发生的每个动作都至少偶尔能在 b b b下发生。即对任意 π ( a ∣ s ) > 0 \pi(a|s)>0 π(as)>0,要求 b ( a ∣ s ) > 0 b(a|s)>0 b(as)>0。称其为覆盖假设。根据这个假设,在与 π \pi π不同的状态中, b b b必须是随机的。

6.2 重要度采样

几乎所有的离轨策略方法都采用了重要度采样重要度采样是一种在给定来自其他分布的样本的条件下,估计某种分布的期望值的通用方法。将重要度采样应用于离轨策略学习,对回报值根据其轨迹在目标策略与行动策略中出现的相对概率进行加权,这个相对概率也被称为重要度采样比。给定起始状态 S t S_t St,后续的状态-动作轨迹 A t , S t + 1 , A t + 1 , . . . , S T A_t,S_{t+1},A_{t+1},...,S_T At,St+1,At+1,...,ST在策略 π \pi π下发生的概率是
P r { A t , S t + 1 , A t + 1 , . . . , S T ∣ S t , A t : T − 1 ∼ π } = π ( A t ∣ S t ) p ( S t + 1 ∣ S t , A t ) π ( A t + 1 ∣ S t + 1 ) ⋯ p ( S T ∣ S T − 1 , A T − 1 ) = ∏ k = t T − 1 π ( A k ∣ S k ) p ( S k + 1 ∣ S k , A k ) (6.1) \begin{aligned} &Pr\{A_t,S_{t+1},A_{t+1},...,S_T|S_t,A_{t:T-1}\sim\pi\} \\ &=\pi(A_t|S_t)p(S_{t+1}|S_t,A_t)\pi(A_{t+1}|S_{t+1})\cdots p(S_T|S_{T-1},A_{T-1})\\ &=\prod^{T-1}_{k=t}\pi(A_k|S_k)p(S_{k+1}|S_k,A_k)\tag{6.1} \end{aligned} Pr{At,St+1,At+1,...,STSt,At:T1π}=π(AtSt)p(St+1St,At)π(At+1St+1)p(STST1,AT1)=k=tT1π(AkSk)p(Sk+1Sk,Ak)(6.1)
这里 p p p是状态转移概率函数。因此在目标策略和行动策略下的相对概率(重要度采样比)是
ρ t : T − 1 = ˙ ∏ k = t T − 1 π ( A k ∣ S k ) p ( S k + 1 ∣ S k , A k ) ∏ k = t T − 1 b ( A k ∣ S k ) p ( S k + 1 ∣ S k , A k ) = ∏ k = t T − 1 π ( A k ∣ S k ) b ( A k ∣ S k ) (6.2) \rho_{t:T-1}\dot=\frac{\prod^{T-1}_{k=t}\pi(A_k|S_k)p(S_{k+1}|S_k,A_k)}{\prod^{T-1}_{k=t}b(A_k|S_k)p(S_{k+1}|S_k,A_k)}=\prod^{T-1}_{k=t}\frac{\pi(A_k|S_k)}{b(A_k|S_k)}\tag{6.2} ρt:T1=˙k=tT1b(AkSk)p(Sk+1Sk,Ak)k=tT1π(AkSk)p(Sk+1Sk,Ak)=k=tT1b(AkSk)π(AkSk)(6.2)
重要度采样比只与两个策略和样本序列数据相关,而与MDP的动态特性(状态转移概率)无关。

之前我们希望估计目标策略下的期望回报(价值),但我们只有行动策略中的回报 G t G_t Gt。使用比例系数 ρ t : T − 1 \rho_{t:T-1} ρt:T1可以调整回报使其有正确的期望值
E [ ρ t : T − 1 G t ∣ S t = s ] = v π ( s ) (6.3) \mathbb E[\rho_{t:T-1}G_t|S_t=s]=v_\pi(s)\tag{6.3} E[ρt:T1GtSt=s]=vπ(s)(6.3)

下面给出通过观察到的一批遵循策略 b b b的多幕采样序列并将其回报进行平均来预测 v π ( s ) v_\pi(s) vπ(s)的蒙特卡洛算法。对于每次访问型方法,定义所有访问过状态 s s s的时刻集合为 τ ( s ) \tau(s) τ(s)。对于首次访问型方法, τ ( s ) \tau(s) τ(s)只包含在幕内首次访问状态 s s s的时刻。用 T ( t ) T(t) T(t)来表示在时刻 t t t后的首次终止,用 G t G_t Gt表示在 t t t之后到达 T ( t ) T(t) T(t)时的回报值。那么 { G t } t ∈ τ ( s ) \{G_t\}_{t\in\tau(s)} {Gt}tτ(s)就是状态 s s s对应的回报值, { ρ t : T ( t ) − 1 } t ∈ τ ( s ) \{\rho_{t:T(t)-1}\}_{t\in\tau(s)} {ρt:T(t)1}tτ(s)是相应的重要度采样比。为了预测 v π ( s ) v_\pi(s) vπ(s),只需要根据重要度采样比来调整回报值并对结果进行平均即可
V ( s ) = ˙ ∑ t ∈ τ ( s ) ρ t : T ( t ) − 1 G t ∣ τ ( s ) ∣ (6.4) V(s)\dot=\frac{\sum_{t\in\tau(s)}\rho_{t:T(t)-1}G_t}{|\tau(s)|}\tag{6.4} V(s)=˙τ(s)tτ(s)ρt:T(t)1Gt(6.4)
通过这样一种简单平均实现的重要度采样被称为普通重要度采样
另一个重要的方法是加权重要度采样,它采用一种加权平均的方法,定义为
V ( s ) = ˙ ∑ t ∈ τ ( s ) ρ t : T ( t ) − 1 G t ∑ t ∈ τ ( s ) ρ t : T ( t ) − 1 (6.5) V(s)\dot=\frac{\sum_{t\in\tau(s)}\rho_{t:T(t)-1}G_t}{\sum_{t\in\tau(s)}\rho_{t:T(t)-1}}\tag{6.5} V(s)=˙tτ(s)ρt:T(t)1tτ(s)ρt:T(t)1Gt(6.5)
如果分母为零,式(6.4)的值也定义为零。在加权平均估计中,期望是 v b ( s ) v_b(s) vb(s)而不是 v π ( s ) v_\pi(s) vπ(s),在统计学意义上这个估计是有偏的。使用简单平均公式(6.5)得到的结果在期望上总是 v π ( s ) v_\pi(s) vπ(s)无偏的),但其值可能变得很极端。假设比例系数是10,这意味着被观测到的决策序列轨迹遵循目标策略的可能性是遵循行动策略的10倍。在这种情况下,普通重要度采样的估计值会是观测到的回报值的10倍。尽管该幕数据序列的轨迹应该可以非常有效地反映目标策略,但其估计值却会离观测到的回报值很远。

数学上两种重要度采样算法在首次访问型方法下的差异可以用偏差与方差来表示。普通重要度采样的估计是无偏的,加权重要度采样的估计是有偏的(偏差值渐近收敛到零)。普通重要度采样的方差一般是无界的,而加权估计中任何回报的最大权值都是1。实际应用时,人们偏好加权估计,因为方差经常很小。

7 增量式实现

更新公式的形式
新 估 计 值 ← 旧 估 计 值 + 步 长 × [ 目 标 − 旧 估 计 值 ] (7.1) 新估计值\leftarrow旧估计值+步长\times[目标-旧估计值]\tag{7.1} +×[](7.1)
表达式 [ 目 标 − 旧 估 计 值 ] [目标-旧估计值] []是估计值的误差。误差会随着向“目标”靠近的每一步减小。该方法在蒙特卡洛方法中对回报进行平均,也可以以完全相同的方式用于同轨策略的蒙特卡洛方法中。对于离轨策略的蒙特卡洛方法,需要分别讨论使用普通重要度采样和加权重要度采样的方法。

7.1 普通重要度采样

普通重要度采样的条件下,回报先乘上重要度采样比 ρ t : T ( t ) − 1 \rho_{t:T(t)-1} ρt:T(t)1(式6.2)进行缩放再简单地取平均。

7.2加权重要度采样

采用加权重要度采样的离轨策略方法,需要对回报加权平均,而且需要一个略微不同的增量式算法。

假设有一个回报序列 G 1 , G 2 , . . . , G n − 1 G_1,G_2,...,G_{n-1} G1,G2,...,Gn1,它们都从相同的状态开始,且每一个回报都对应一个随机权重 W i W_i Wi(例如, W i = ρ t : T ( t ) − 1 W_i=\rho_{t:T(t)-1} Wi=ρt:T(t)1)。希望得到如下的估计,并且在获得了一个额外的回报值 G n G_n Gn时能保持更新。
V n = ˙ ∑ k = t n − 1 W k G k ∑ k = t n − 1 W k , n ⩾ 2 (7.2) V_n\dot=\frac{\sum^{n-1}_{k=t}W_kG_k}{\sum^{n-1}_{k=t}W_k},n\geqslant2\tag{7.2} Vn=˙k=tn1Wkk=tn1WkGk,n2(7.2)
为了能不断跟踪 V n V_n Vn的变化,必须为每一个状态维护前 n n n个回报对应的权值的累加和 C n C_n Cn V n V_n Vn的更新方法是
V n + 1 = ˙ V n + W n C n [ G n − V n ] , n ⩾ 1 (7.3) V_{n+1}\dot=V_n+\frac{W_n}{C_n}[G_n-V_n],n\geqslant1\tag{7.3} Vn+1=˙Vn+CnWn[GnVn],n1(7.3)
以及
C n + 1 = ˙ C n + W n + 1 C_{n+1}\dot=C_n+W_{n+1} Cn+1=˙Cn+Wn+1
这里 C 0 = ˙ 0 C_0\dot=0 C0=˙0 V 1 V_1 V1是任意的,所以不用特别指定)。这个算法对于同轨策略的情况也同样适用,只需要选择同样的目标策略与行动策略即可(这种情况下 π = b \pi=b π=b W W W始终为1)。

8 离轨策略蒙特卡洛控制

同轨策略方法在使用某个策略进行控制的同时也对那个策略的价值进行评估。在离轨策略方法中,这两个工作是分开的。用于生成行动数据的策略被称为行动策略。行动策略可能与实际上被评估和改善的策略无关,而被评估和改善的策略称为目标策略。这样分离的好处在于当行动策略能对所有可能的动作继续进行采样时,目标策略可以是确定的(例如贪心)。

离轨策略蒙特卡洛控制方法遵循行动策略并对目标策略进行学习和改进。要求行动策略对目标策略可能做出的所有动作都有非零的概率被选择。为了试探所有的可能性,要求行动策略是软性的(即在所有状态下选择所有动作的概率都非零)。

你可能感兴趣的:(强化学习,机器学习,强化学习,马尔可夫链蒙特卡洛方法)