目录
- 前言
- 1. Outline
- 2. Motivating example: Monte Carlo estimation
- 结语
- 参考
前言
学习赵老师讲授的强化学习的数学原理视频,本篇文章记录第五讲 Part 1:蒙特卡洛方法(通过例子介绍蒙特卡洛),记录个人学习笔记,和大家一起分享交流😄
video:https://www.bilibili.com/video/BV1sd4y167NS
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 XX,如果它是正面朝上我就说X = + 1 X=+1X=+1,如果它是反面朝上我就说X = − 1 X=-1X=−1。
所以我下面要求解的问题就是:X XX的平均数,也就是它的expectation(即E [ X ] \mathbb{E}[X]E[X]),是多少?
这里有两种方法:
第一种方法是基于模型的(model-based)。
那就是随机变量X XX的probability distribution是已知的:
p ( X = 1 ) = 0.5 , p ( X = − 1 ) = 0.5 p(X=1)=0.5, \quad p(X=-1)=0.5p(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 = 0E[X]=x∑xp(x)=1×0.5+(−1)×0.5=0
公式中x xx是取值,p ( x ) p(x)p(x)是概率,最后算出来是 0。这个方法非常简单。
但是问题是,这么精确的probability distribution模型,我们可能无法知道,这也是我们本次课要面对的问题,所以我们能不能在没有模型的情况下也去估计呢?
其实答案也非常简单,利用蒙特卡洛估计就行。
它基本的思想就是:掷硬币很多次(做很多次实验、得到很多采样),然后求它们的平均数。
具体来说,我们做N NN次实验,假设结果分别为{ x 1 , x 2 , … , x N } \{ x_1,x_2,\ldots, x_N \}{x1,x2,…,xN},然后把这些结果相加再除以N NN,得到平均值,记作x ˉ \bar{x}xˉ,然后用x ˉ \bar{x}xˉ来近似E [ X ] \mathbb{E}[X]E[X]。即认为:
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.E[X]≈xˉ=N1j=1∑Nxj.
这个就是Monte Carlo Estimation 的一个基本的思想。
那有的同学可能会说了,你用一个平均数来近似E [ X ] \mathbb{E}[X]E[X],那是否精确呢?当N NN比较小的时候这种近似实际上是不精确的,但随着N NN逐渐增大,这种近似会变得越来越精确,上面这个图清晰地展示了出来。
这个掷硬币任务总共做了 200 次,真实的expectation是 0,如果用最开始的两次结果做平均—前两次都是反面(-1)—平均值为负,与真实值相差较大,但随着数据越来越多,平均数会越来越收敛到真实的 expectation。
这种直观解释有很好的数学支撑,那就是Law of Large Numbers(大数定律)[blog],具体是什么呢?
大数定律
考虑随机变量X XX。假设{ x j } j = 1 N \{x_j\}_{j=1}^N{xj}j=1N是X XX的独立同分布(iid)样本。令x ˉ = 1 N ∑ j = 1 N x j \bar{x} = \frac{1}{N} \sum_{j=1}^N x_jxˉ=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*}E[xˉ]Var[xˉ]=E[X],=N1Var[X].
因此,x ˉ \bar{x}xˉ是E [ X ] \mathbb{E}[X]E[X]的一个无偏估计,并且随着样本量N NN趋向于无穷大,其方差将减小至零。
具体来说,假设有N NN个iid的样本,iid即independent and identically distributed(独立同分布),然后用这些样本做平均得到x ˉ \bar{x}xˉ,可以证明以下两个结论:
第一个结论:如果把x j x_jxj看作随机变量,那么x ˉ \bar{x}xˉ也是随机变量,可以对其求期望。它的期望等于真实的E [ X ] \mathbb{E}[X]E[X]—所以x ˉ \bar{x}xˉ是E [ X ] \mathbb{E}[X]E[X]的无偏估计。
第二个结论:x ˉ \bar{x}xˉ的variance是1 N Var [ X ] \frac{1}{N}\text{Var}[X]N1Var[X],即X XX方差的1 N \frac{1}{N}N1。
那么显然,当N NN趋向于无穷时,方差1 N Var [ X ] \frac{1}{N}\text{Var}[X]N1Var[X]趋向于 0,方差趋向于 0 意味着x ˉ \bar{x}xˉ会收敛到一个常数,而这个正是expectationE [ X ] \mathbb{E}[X]E[X],具体证明可以参考教材。
所以通过这样一个例子,其实我们就非常清晰地了解了蒙特卡洛估计的基本的思想。
蒙特卡洛不仅可以用于掷硬币这样简单的任务,凡是需要大量采样、再用实验结果进行近似的方法,都可以称为蒙特卡洛估计方法。
我们在这个课程当中,为什么会需要考虑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]E[X]的无偏估计,且其方差随样本量N NN增大而趋于零,因此采样越多、估计越精确。
这一思想之所以对强化学习至关重要,正是因为 state value 和 action value 本质上就是期望值,而蒙特卡洛方法恰好提供了一条绕开模型的估计路径。接下来,我们将看到如何把这一思想融入 policy iteration 的框架—只需将其中的模型依赖部分替换为基于采样的估计,就能得到第一个 model-free 强化学习算法 MC Basic🤗。
参考
- https://www.bilibili.com/video/BV1sd4y167NS
- https://github.com/MathFoundationRL/Book-Mathmatical-Foundation-of-Reinforcement-Learning