目录
前言
学习赵老师讲授的强化学习的数学原理视频,本篇文章记录第五讲 Part 1:蒙特卡洛方法(通过例子介绍蒙特卡洛),记录个人学习笔记,和大家一起分享交流😄
1. Outline
OK,这是我们的第五次课,这次课我们将会介绍 基于蒙特卡洛的强化学习方法,下面是我们这个课程的地图。

相信大家也比较熟悉了,这次我们来到了第五章,上次课我们介绍的是 value iteration 和 policy iteration ,这两节课是什么关系呢?上节课介绍的是 model-based 方法,而这次课我们将介绍整个课程中的第一个 model-free 方法,它们一个是依赖模型的,一个是不依赖模型的。
在开始之前我想说明两点,第一点:我们上节课介绍的 policy iteration 方法,实际上是这一次课的基础。待会大家就会看到,我们把 policy iteration 中依赖模型的部分,替换为不需要模型的方法(采样估计),就得到了今天的算法。
第二点我想说明的是,在我们这门课当中,我们把 value iteration 和 policy iteration 也统称为 model-based reinforcement learning ,但更准确地说,它们应该称为 dynamic programming(动态规划) 方法。
近年来,model-based reinforcement learning(MBRL) 又重新兴起,它研究的是什么呢?例如,先用数据估计出一个模型,再基于这个模型进行强化学习。不过在本课程中,我们仍统一把 value iteration 和 policy iteration 也称为 model-based reinforcement learning 方法。
下面是我们这次课的大纲:

- 1. Motivating example
- 2. The simplest MC-based RL algorithm
- Algorithm: MC Basic
- 3. Use data more efficiently
- Algorithm: MC Exploring Starts
- 4. MC without exploring starts
- Algorithm: MC ε \varepsilon ε-Greedy
首先我会通过一个 motivating example 来介绍 Monte Carlo Estimation 的基本思想,之后会介绍 3 个基于蒙特卡洛的强化学习的算法,这三个算法分别称为 MC Basic 、 MC Exploring Starts 以及 MC ε \varepsilon ε-Greedy ,这里的 MC 是 Monte Carlo(蒙特卡洛)的缩写。
另外想强调的是 这三个算法实际上是环环相扣的,前面一个是后面一个的基础 ,比如说,MC Basic 是最简单的基于蒙特卡洛的强化学习算法,它简单到 在实际当中是没法用的 ,因为效率等各方面都比较差,但它在揭示 "如何去掉模型、不基于模型来实现强化学习" 这一核心 idea 上非常关键。
这个算法经过改进,得到后续两个算法:比如说考虑如何让 数据的使用效率更高 、如何去除 exploring starts 这一假设等。
2. Motivating example: Monte Carlo estimation
下面我们来看第一部分。

其实从 model-based 的 reinforcement learning 过渡到 model-free 的 reinforcement learning,最让人难以理解的应该就是:如何在 没有模型的情况下去估计一些量 。这里有一个重要的方法(思想)--- Monte Carlo Estimation。
下面我通过这样一个例子来说明这个方法,这个例子是什么呢?就是 掷硬币。
假设我手上有一枚硬币,我把它抛到空中,然后硬币会落到我的手心,这枚硬币要么是正面朝上,要么是反面朝上,然后我把这个结果表示为一个 随机变量 X X X ,如果它是正面朝上我就说 X = + 1 X=+1 X=+1 ,如果它是反面朝上我就说 X = − 1 X=-1 X=−1 。
所以我下面要求解的问题就是: X X X 的平均数,也就是它的 expectation (即 E X \mathbb{E}X EX),是多少?
这里有两种方法:

第一种方法是 基于模型的(model-based)。
那就是随机变量 X X X 的 probability distribution 是已知的:
p ( X = 1 ) = 0.5 , p ( X = − 1 ) = 0.5 p(X=1)=0.5, \quad p(X=-1)=0.5 p(X=1)=0.5,p(X=−1)=0.5
比如说它正面朝上的概率是 0.5,反面朝上的概率也是 0.5,那 expectation 就可以直接按定义计算:
E X = ∑ x x p ( x ) = 1 × 0.5 + ( − 1 ) × 0.5 = 0 \mathbb{E}X= \sum_x xp(x) = 1 \times 0.5 + (-1) \times 0.5 = 0 EX=x∑xp(x)=1×0.5+(−1)×0.5=0
公式中 x x x 是取值, p ( x ) p(x) p(x) 是概率,最后算出来是 0。这个方法非常简单。
但是问题是,这么精确的 probability distribution 模型,我们可能无法知道,这也是我们本次课要面对的问题,所以我们能不能在 没有模型的情况 下也去估计呢?
其实答案也非常简单,利用蒙特卡洛估计就行。

它基本的思想就是:掷硬币很多次(做很多次实验、得到很多 采样 ),然后求它们的 平均数。
具体来说,我们做 N N N 次实验,假设结果分别为 { x 1 , x 2 , ... , x N } \{ x_1,x_2,\ldots, x_N \} {x1,x2,...,xN} ,然后把这些结果相加再除以 N N N ,得到平均值,记作 x ˉ \bar{x} xˉ ,然后用 x ˉ \bar{x} xˉ 来近似 E X \mathbb{E}X EX 。即认为:
E X ≈ x ˉ = 1 N ∑ j = 1 N x j . \mathbb{E}X \approx \bar{x} = \frac{1}{N} \sum_{j=1}^N x_j. EX≈xˉ=N1j=1∑Nxj.
这个就是 Monte Carlo Estimation 的一个基本的思想。

那有的同学可能会说了,你用一个平均数来近似 E X \mathbb{E}X EX ,那是否精确呢?当 N N N 比较小的时候这种近似实际上是不精确的,但 随着 N N N 逐渐增大,这种近似会变得越来越精确,上面这个图清晰地展示了出来。
这个掷硬币任务总共做了 200 次,真实的 expectation 是 0,如果用最开始的两次结果做平均---前两次都是反面(-1)---平均值为负,与真实值相差较大,但随着数据越来越多,平均数会 越来越收敛到真实的 expectation。
这种直观解释有很好的数学支撑,那就是 Law of Large Numbers(大数定律) blog,具体是什么呢?

大数定律
考虑随机变量 X X X 。假设 { x j } j = 1 N \{x_j\}{j=1}^N {xj}j=1N 是 X X X 的独立同分布(iid)样本。令 x ˉ = 1 N ∑ j = 1 N x j \bar{x} = \frac{1}{N} \sum{j=1}^N x_j xˉ=N1∑j=1Nxj 为这些样本的均值。那么,
E x ˉ = E X , Var x ˉ = 1 N Var X . \begin{align*} \mathbb{E}\\bar{x} &= \mathbb{E}X, \\ \text{Var}\\bar{x} &= \frac{1}{N} \text{Var}X. \end{align*} ExˉVarxˉ=EX,=N1VarX.
因此, x ˉ \bar{x} xˉ 是 E X \mathbb{E}X EX 的一个无偏估计,并且随着样本量 N N N 趋向于无穷大,其方差将减小至零。
具体来说,假设有 N N N 个 iid 的样本,iid 即 independent and identically distributed(独立同分布) ,然后用这些样本做平均得到 x ˉ \bar{x} xˉ ,可以证明以下两个结论:
第一个结论:如果把 x j x_j xj 看作 随机变量 ,那么 x ˉ \bar{x} xˉ 也是 随机变量 ,可以对其求期望。它的期望等于真实的 E X \mathbb{E}X EX---所以 x ˉ \bar{x} xˉ 是 E X \mathbb{E}X EX 的 无偏估计。
第二个结论: x ˉ \bar{x} xˉ 的 variance 是 1 N Var X \frac{1}{N}\text{Var}X N1VarX,即 X X X 方差的 1 N \frac{1}{N} N1 。
那么显然,当 N N N 趋向于无穷时,方差 1 N Var X \frac{1}{N}\text{Var}X N1VarX 趋向于 0,方差趋向于 0 意味着 x ˉ \bar{x} xˉ 会收敛到一个常数,而这个正是 expectation E X \mathbb{E}X EX ,具体证明可以参考教材。
所以通过这样一个例子,其实我们就非常清晰地了解了 蒙特卡洛估计的基本的思想。

蒙特卡洛 不仅可以用于掷硬币这样简单的任务,凡是需要 大量采样、再用实验结果进行近似 的方法,都可以称为蒙特卡洛估计方法。
我们在这个课程当中,为什么会需要考虑 Monte Carlo Estimation ?就是因为我们是无模型的,而 Monte Carlo Estimation 恰好也不需要模型。
我们为什么要考虑这个 mean estimation ?为什么要用蒙特卡洛来估计 expectation?就是因为 state value 和 action value ---如果大家还记得的话---它们的定义实际上就是 expectation,所以后面会用到。
结语
本讲第一部分正式拉开了 model-free 强化学习的序幕。通过掷硬币这个简单直观的例子,我们掌握了 Monte Carlo Estimation 的核心思想:当概率模型未知时,不依赖模型的解析计算,而是通过大量采样、求平均来估计期望值。大数定律为这一方法提供了坚实的数学保障---样本均值 x ˉ \bar{x} xˉ 是 E X \mathbb{E}X EX 的无偏估计,且其方差随样本量 N N N 增大而趋于零,因此采样越多、估计越精确。
这一思想之所以对强化学习至关重要,正是因为 state value 和 action value 本质上就是期望值,而蒙特卡洛方法恰好提供了一条绕开模型的估计路径。接下来,我们将看到如何把这一思想融入 policy iteration 的框架---只需将其中的模型依赖部分替换为基于采样的估计,就能得到第一个 model-free 强化学习算法 MC Basic🤗。