世界は優しい
首页博客关于

Site

世界は優しい

世界很温柔,我们都在努力变得更好。

Navigation

  • 首页
  • 博客
  • 关于

Connect

  • GitHub
  • 作者

© 2026 ZZC. 本站内容以 CC BY-NC-SA 4.0 协议发布。

Built with Next.js · Tailwind CSS

Folders

课程介绍与评分Lec1: IntroductionLec2: Lexical AnalysisLec3: ParsingLec4: Abstract SyntaxLec5: Semantic AnalysisLec6: Activation RecordsLec7: Translate to Intermediate CodeLec8: Basic Blocks and TracesLec9: 指令选择Lec10: Liveness Analysis
Lec0: 课程介绍与成绩Lec1: IntroductionLec2: Operating-System StructuresLec3: ProcessesLec4: Threads(多线程编程)Lec5: CPU SchedulingLec6: 进程同步Lec7: DeadlocksLec8: Main MemoryLec9: Virtual MemoryLec10: File-System InterfaceLec11: File System ImplementationLec12: Mass-Storage System
Lec1: Basic Concepts in Reinforcement LearningLec2: Bellman EquationLec3: Bellman Optimality EquationLec4: Value Iteration & Policy IterationLec5: Monte Carlo Learning
首页
ManiGaussian 论文笔记ManiGaussian++ 论文笔记
AMP: 对抗动作先验替代复杂奖励函数DeepMimic: 从动作捕捉数据学习物理仿真角色技能DreamWaQ: 纯本体感知的四足鲁棒行走Imitating Animals: 从动物模仿到真实四足敏捷运动MoE-Loco: 多任务腿足运动的专家混合架构Multi-AMP: 多重对抗动作先验学习高级技能PIE: Proprioception with Imagination for ParkourRMA: Rapid Motor Adaptation for Legged Robots
论文阅读
Lec1: 五十音Lec2: 日语声调Lec3: 浊音和长音
Callout 语法速查
Hello World - 我的第一篇博客
Typora 语法兼容性测试
首页博客Coure-NotebookReinforcement_learningLec5: Monte Carlo Learning

强化学习

Lec5: Monte Carlo Learning

从 Model-based 走向 Model-free:用蒙特卡洛采样估计动作价值,介绍 MC Basic、Exploring Starts 与 ε-Greedy 等同策略 MC 方法。

2026 年 02 月 12 日/10 min read/ZZCZZC
#强化学习#课程笔记#计算机科学

Model based & Model free

Model based & Model free

​ Model 通常指“环境的运行规律”,也就是我们前面经常提到的状态转移概率 P(s′∣s,a)P(s' \mid s,a)P(s′∣s,a) 以及奖励函数 R(s,a)R(s,a)R(s,a)。

​ 强化学习有两种,Model-based 和 Model-free。前者先构建出 PPP 和 RRR,再进行学习;后者则是在真实环境中不断试错。大多数经典的深度强化学习的算法,比如 Q-Learning、DQN、DDPG、PPO 等,全都是 Model-free 的。

Motivating example

​ 举个例子,假如我们投掷硬币,结果记为随机变量 XXX。当硬币面朝上时,X=+1X=+1X=+1;当硬币面朝下时,X=−1X=-1X=−1。我们的目标是要计算 E[X]\mathbb{E}[X]E[X]。

Model-based approach

​ 使用 Model-based 的方法,我们首先需要知道各个动作发生的概率。我们假设:

p(X=1)=0.5,  p(X=−1)=0.5,∴E[X]=∑xxp(x)=0p\left(X=1\right)=0.5,\;p\left(X=-1\right)=0.5,\\ \therefore \mathbb{E}[X]=\sum_xxp(x)=0p(X=1)=0.5,p(X=−1)=0.5,∴E[X]=x∑​xp(x)=0

​ 但是在实际中,我们不可能知道准确的概率 ppp。

Model-free approach

​ Model-free 方法的思想是,当抛硬币的次数足够多后,就可以计算结果的平均。也就是:

E[X]≈xˉ=1N∑j=1Nxj\mathbb{E}[X] \approx \bar{x} = \frac{1}{N} \sum_{j=1}^{N} x_jE[X]≈xˉ=N1​j=1∑N​xj​

​ 在这里,{x1,x2,…,xN}\{x_1,x_2,\dots,x_N\}{x1​,x2​,…,xN​} 是随机样本。

image-20260222122503962

​ 结果如上所示。可以看到,当 NNN 过小的时候,估计并不是很精确;随着 NNN 变大,估计越来越精确。

大数定理

​ 上面的结果可以用大数定理来证明:

Note

Law of Large Numbers

对于随机变量 XXX,假设 {xj}j=1N\{x_j\}_{j=1}^N{xj​}j=1N​ 是一些独立同分布的样本。让 xˉ=1N∑j=1Nxj\bar x = \frac{1}{N}\sum_{j=1}^Nx_jxˉ=N1​∑j=1N​xj​ 为这些样本的平均,则有:

E[xˉ]=E[X]Var⁡[xˉ]=1NVar⁡[X]\mathbb{E}[\bar x]=\mathbb{E}[X] \\ \operatorname{Var}[\bar x]=\frac{1}{N} \operatorname{Var}[X]E[xˉ]=E[X]Var[xˉ]=N1​Var[X]

当 N→∞N \rightarrow \infinN→∞ 时,1NVar⁡[X]→0\frac{1}{N} \operatorname{Var}[X] \rightarrow 0N1​Var[X]→0,也就是 xˉ\bar xxˉ 的偏差趋向于 0。

MC Basic 算法

​ 实际上,这个算法最本质的想法就是将 Policy iteration 中的一部分转换成 model-free。

​ 在之前的课程中我们知道,policy iteration 中有一下两部分:

  • Policy evaluation:vπk=rπk+γPπkvπkv_{\pi_k}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k}vπk​​=rπk​​+γPπk​​vπk​​
  • Policy improvement:πk+1=arg⁡max⁡π(rπ+γPπvπk)\pi_{k+1}=\arg \max_\pi(r_\pi+\gamma P_\pi v_{\pi_k})πk+1​=argmaxπ​(rπ​+γPπ​vπk​​)

​ 针对 policy improvement,在之前的课程中,我们都是使用其 elementwise form,也就是:

πk+1(s)=arg⁡max⁡π∑aπ(a∣s)[∑rp(r∣s,a) r+γ∑s′p(s′∣s,a) vπk(s′)]=arg⁡max⁡π∑aπ(a∣s) qπk(s,a),s∈S.\begin{align} \pi_{k+1}(s) &= \arg\max_{\pi} \sum_{a} \pi(a \mid s) \left[ \sum_{r} p(r \mid s,a)\, r + \gamma \sum_{s'} p(s' \mid s,a)\, v_{\pi_k}(s') \right] \\ &= \arg\max_{\pi} \sum_{a} \pi(a \mid s)\, q_{\pi_k}(s,a), \qquad s \in \mathcal{S}. \end{align}πk+1​(s)​=argπmax​a∑​π(a∣s)[r∑​p(r∣s,a)r+γs′∑​p(s′∣s,a)vπk​​(s′)]=argπmax​a∑​π(a∣s)qπk​​(s,a),s∈S.​​

​ 在上面的公式中,关键是 qπk(s,a)q_{\pi_k}(s,a)qπk​​(s,a) 的计算。

​ 我们有两种方法计算 qπk(s,a)q_{\pi_k}(s,a)qπk​​(s,a):

  • qπk(s,a)=∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vπk(s′)q_{\pi_k}(s,a)=\sum_{r}p(r \mid s,a)r+\gamma \sum_{s'}p(s' \mid s,a)v_{\pi_k}(s')qπk​​(s,a)=∑r​p(r∣s,a)r+γ∑s′​p(s′∣s,a)vπk​​(s′),显然这种方法是需要 model 的。
  • qπk(s,a)=E[Gt∣St=s,At=a]q_{\pi_k}(s,a)=\mathbb{E}[G_t \mid S_t=s,A_t=a]qπk​​(s,a)=E[Gt​∣St​=s,At​=a],这个方法是不需要 model 的。

The procedure of Monte Carlo estimation of action values

​ 下面展示如何采样 action value:

  1. 从状态 (s,a)(s,a)(s,a) 出发,按照策略 πk\pi_kπk​,生成一个 episode
  2. 将 return 记为 g(s,a)g(s,a)g(s,a),g(s,a)g(s,a)g(s,a) 是 GtG_tGt​ 的一个样本,其中 GtG_tGt​ 满足:qπk(s,a)=E[Gt∣St=s,At=a]q_{\pi_k}(s,a)=\mathbb{E}[G_t \mid S_t=s,A_t=a]qπk​​(s,a)=E[Gt​∣St​=s,At​=a]
  3. 假设我们有一系列的 episode,就可以采样到一系列的 {g(j)(s,a)}\{g^{(j)}(s,a)\}{g(j)(s,a)},于是有 qπk=E[Gt∣St=s,At=a]≈1N∑i=1Ng(i)(s,a)q_{\pi_k}=\mathbb{E}[G_t \mid S_t=s,A_t=a] \approx \frac{1}{N}\sum_{i=1}^N g^{(i)}(s,a)qπk​​=E[Gt​∣St​=s,At​=a]≈N1​∑i=1N​g(i)(s,a)

​ 也就是这样的思想:当 model 不可获得的时候,我们就使用 data 来代替 model

Pseudocode

image-20260222143551214

Episode length

​ 我们通过一个例子观察 episode length 对于策略的影响。

5×55 \times 55×5 grid world

Reward setting:rboundary=−1,  rforbidden=−10,  rtarget=1,  γ=0.9r_{boundary}=-1,\;r_{forbidden}=-10,\;r_{target}=1,\; \gamma=0.9rboundary​=−1,rforbidden​=−10,rtarget​=1,γ=0.9

image-20260222144446038

​ 随着 episode length 的增长,policy 会发生如下变化:

image-20260222144557637 image-20260222144625124

  • 可以看到,随着 episode length 变大,target 附近最佳的 policy 的范围变大。
  • 每一个 sss 所对应的 return g(s,a)g(s,a)g(s,a) 越来越趋近于真实的 state value。
  • 在实际中,episode length 需要足够大,但不需要无限大。

MC Exploring Starts

s1→a2s2→a4s1→a2s2→a3s5→a1⋯s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_4} s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \cdotss1​a2​​s2​a4​​s1​a2​​s2​a3​​s5​a1​​⋯

​ 每当有一个 state-action 对 (s,a)(s,a)(s,a) 出现在这个 episode 中,我们就将其称为一个 visit。

​ 在之前的算法中,我们都是采用这样一条 episode 去计算一个 return 并以此估计 qπ(s1,a2)q_\pi(s_1,a_2)qπ​(s1​,a2​),但显然这样数据利用效率太低。

​ 我们可以采用下面的方式:

s1→a2s2→a4s1→a2s2→a3s5→a1⋯[original episode]s2→a4s1→a2s2→a3s5→a1⋯[episode starting from (s2,a4)]s1→a2s2→a3s5→a1⋯[episode starting from (s1,a2)]s2→a3s5→a1⋯[episode starting from (s2,a3)]s5→a1⋯[episode starting from (s5,a1)]\begin{array}{l l} s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_4} s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \cdots & [\text{original episode}] \\[6pt] s_2 \xrightarrow{a_4} s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \cdots & [\text{episode starting from } (s_2, a_4)] \\[6pt] s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \cdots & [\text{episode starting from } (s_1, a_2)] \\[6pt] s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \cdots & [\text{episode starting from } (s_2, a_3)] \\[6pt] s_5 \xrightarrow{a_1} \cdots & [\text{episode starting from } (s_5, a_1)] \end{array}s1​a2​​s2​a4​​s1​a2​​s2​a3​​s5​a1​​⋯s2​a4​​s1​a2​​s2​a3​​s5​a1​​⋯s1​a2​​s2​a3​​s5​a1​​⋯s2​a3​​s5​a1​​⋯s5​a1​​⋯​[original episode][episode starting from (s2​,a4​)][episode starting from (s1​,a2​)][episode starting from (s2​,a3​)][episode starting from (s5​,a1​)]​

​ 通过这种方式,我们可以估计 qπ(s1,a2),qπ(s2,a4),qπ(s2,a3),qπ(s5,a1),…q_\pi(s_1,a_2),q_\pi(s_2,a_4),q_\pi(s_2,a_3),q_\pi(s_5,a_1),\dotsqπ​(s1​,a2​),qπ​(s2​,a4​),qπ​(s2​,a3​),qπ​(s5​,a1​),…

  • 一条 episode 上可能会有多个相同的 visit。有两种方案供采用:
    • first-visit method:只计算一次,下次碰到相同的 visit 不计算
    • every-visit method:计算多次,碰到相同的 visit 依旧计算
  • 面对何时更新策略的问题,也有两种不同的方案:
    • 一种方案是收集所有的以当前 state-action pair 为起点的 episode 的return,计算平均值后更新。
    • 另一种方案是在找到一个符合要求的 episode 后,计算 return 并立刻更新,作为近似的 action value。

Generalized policy iteration

​ 简称为 GPI。It refers to the general idea or framework of switching between policy-evaluation and policy-improvement processes.

​ 许多 model-based 和 model-free 算法都可以归到这个框架里。

Pseudocode

image-20260222161436417

  • 需要注意的是,在这个算法中,是从后向前计算 return value 的。

Exploring starts

​ 理论上,我们需要确保每一个 state-action 对都能被访问。

​ 由于在一条 episode 上,不总是所有的 state-action 对都能被访问,因此总会存在多条 episode,它们的开头 state 不一样。

​ 这点体现在实际上就是我们需要不断改变机器的起始位置,这点非常麻烦。下一个算法可以解决这个问题。

MC Epsilon-Greedy

Soft policy

​ 我们称一个策略是 soft 的,若其采取任何 action 的可能性是大于 0 的。

​ 有了 soft policy,我们就可以确保存在一条足够长的 episode,其可以访问到所有的 state-action 对。此时,可以移除 exploring starts。

ε\varepsilonε-greedy policy

π(a∣s)={1−ε∣A(s)∣(∣A(s)∣−1),for the greedy action,ε∣A(s)∣,for the other ∣A(s)∣−1 actions.\pi(a \mid s) = \begin{cases} 1 - \dfrac{\varepsilon}{|\mathcal{A}(s)|} \left(|\mathcal{A}(s)| - 1\right), & \text{for the greedy action}, \\[10pt] \dfrac{\varepsilon}{|\mathcal{A}(s)|}, & \text{for the other } |\mathcal{A}(s)| - 1 \text{ actions}. \end{cases}π(a∣s)=⎩⎨⎧​1−∣A(s)∣ε​(∣A(s)∣−1),∣A(s)∣ε​,​for the greedy action,for the other ∣A(s)∣−1 actions.​
  • 选择 greedy action 的概率总是比选择非 greedy action 的概率要大的。因为 1−ε∣A(s)∣(∣A(s)∣−1)=1−ε+ε∣A(s)∣≥ε∣A(s)∣1-\frac{\varepsilon}{|\mathcal{A}(s)|}(|\mathcal{A}(s)|-1)=1-\varepsilon+\frac{\varepsilon}{|\mathcal{A}(s)|} \geq \frac{\varepsilon}{|\mathcal{A}(s)|}1−∣A(s)∣ε​(∣A(s)∣−1)=1−ε+∣A(s)∣ε​≥∣A(s)∣ε​

​ ε\varepsilonε 的选择体现了 exploitattion 和 exploration 之间的平衡:

  • 当 ε=0\varepsilon = 0ε=0 时,策略就变得贪婪。每一步都是选择 greedy action,探索性(exploration)变少但利用性(exploitataion)变多。
  • 当 ε=1\varepsilon=1ε=1 时,就变成平均分配了。探索性(exploration)变多但利用性(exploitataion)变少。

How to embed ε\varepsilonε-greedy into MC-based RL algorithms?

​ 在 MC-based 和 MC Exploring Starts 算法中,policy improvement 阶段如下:

πk+1(s)=arg⁡max⁡π∈Π∑aπ(a∣s) qπk(s,a).\pi_{k+1}(s) = \arg\max_{\pi \in \Pi} \sum_{a} \pi(a \mid s)\, q_{\pi_k}(s,a).πk+1​(s)=argπ∈Πmax​a∑​π(a∣s)qπk​​(s,a).

​ 其中 Π\PiΠ 代表所有可能的策略。

​ 根据之前的内容可知,最优策略就是:

πk+1(a∣s)={1,a=ak∗0,a≠ak∗where ak∗=arg⁡max⁡aqπk(s,a)\pi_{k+1}(a \mid s) = \begin{cases} 1, & a = a_k^* \\ 0, & a \ne a_k^* \end{cases} \\ \text{where } a_k^* = \arg\max_{a} q_{\pi_k}(s,a)πk+1​(a∣s)={1,0,​a=ak∗​a=ak∗​​where ak∗​=argamax​qπk​​(s,a)

​ 我们对 policy improvement 阶段进行更改:

πk+1(s)=arg⁡max⁡π∈Πε∑aπ(a∣s) qπk(s,a)\pi_{k+1}(s) = \arg\max_{\pi \in \Pi_{\varepsilon}} \sum_{a} \pi(a \mid s)\, q_{\pi_k}(s,a)πk+1​(s)=argπ∈Πε​max​a∑​π(a∣s)qπk​​(s,a)

​ 其中 Πε\Pi_\varepsilonΠε​ 代表所有可能的 ε\varepsilonε-greedy 策略。

​ 最优策略为:

πk+1(a∣s)={1−∣A(s)∣−1∣A(s)∣ ε,a=ak∗ε∣A(s)∣,a≠ak∗\pi_{k+1}(a \mid s) = \begin{cases} 1 - \dfrac{|\mathcal{A}(s)| - 1}{|\mathcal{A}(s)|}\,\varepsilon, & a = a_k^* \\[10pt] \dfrac{\varepsilon}{|\mathcal{A}(s)|}, & a \ne a_k^* \end{cases}πk+1​(a∣s)=⎩⎨⎧​1−∣A(s)∣∣A(s)∣−1​ε,∣A(s)∣ε​,​a=ak∗​a=ak∗​​

Pseudocode

image-20260222181402773

Advantages and Disadvantages

  • ε\varepsilonε-greedy policy 的优点在于,其探索能力很强,因此 exploration starts condition 就不再需要了。
  • 缺点在于其得到的最优策略不一定是全局的最优策略了(因为其仅仅是ε\varepsilonε-greedy policy 情况下的最优)。

​ 实际中我们可以逐步控制 ε\varepsilonε 的大小

Consistency

image-20260222182552136

  • 注意到当 ε=0.1\varepsilon=0.1ε=0.1 时策略和 ε=0\varepsilon=0ε=0 时的相同。我们称为 consistency。
  • 可以看到,当 ε\varepsilonε 越大的时候,得出的最优策略实际上是越差的。因此在实际中,我们需要保持 ε\varepsilonε 在一个比较小的值。
ZZC

Written by

ZZC
每天研究怎么摸鱼的神人

Comments

评论功能即将上线

On this page

  • Model based & Model free
  • Model based & Model free
  • Motivating example
  • Model-based approach
  • Model-free approach
  • 大数定理
  • MC Basic 算法
  • The procedure of Monte Carlo estimation of action values
  • Pseudocode
  • Episode length
  • MC Exploring Starts
  • Generalized policy iteration
  • Pseudocode
  • Exploring starts
  • MC Epsilon-Greedy
  • Soft policy
  • $\varepsilon$-greedy policy
  • How to embed $\varepsilon$-greedy into MC-based RL algorithms?
  • Pseudocode
  • Advantages and Disadvantages
  • Consistency