2.3 蒙特卡洛方法

category
type
status
slug
date
summary
tags
password
icon
本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记.
本节我们将介绍强化学习中的蒙特卡洛方法.

2.3.1 MC Basic

2.3.1.1 mode-based方法

之前我们介绍的策略迭代中第二步PI, 计算新的策略:
我们知道这一步的主要是计算, 它依赖于已知概率分布: , 也就是已知系统模型. 所以值迭代和策略迭代我们都称之为mode-based方法.

2.3.1.2 mode-free方法: MC Basic

那么如果我们并不知道系统模型, 但是却有大量观测到的数据. 我们就可以用数据来近似表达:
其中的采样, 样本一共有个. 当足够大时, 样本的均值就可以表达的期望.
这类不基于系统模型, 而是基于观测数据的方法叫做mode-free方法. 上面介绍的直接用样本均值的基础方法叫MC Basic方法.

2.3.1.3 例子

notion image
我们以图中这个例子来说明MC Basic方法, 我们可以看到除了其他的策略已经是最优了, 所以我们主要介绍计算.
首先要对每个状态的每个动作进行实验并求均值作为期望, 以为例:
  • 向上
可以看到如果选择向上, 会碰到边界并停留在, 而当前的策略是, 所以会陷入循环:
它的动作值是:
  • 向右
它的动作值是:
  • 向下
它的动作值是:
  • 向左
它的动作值是:
  • 不动
它的动作值是:
有了完整的动作值, 很显然都是最优动作:
这个例子较为简单, 当仿真世界复杂时, 我们采样并不会无限进行下去. 可因此一般会人为设置一个最大采样长度, 来提升效率.

2.3.2 MC exploring starts

2.3.2.1 对MC Basic的两个提升

MC Basic中, 有很明显的重复计算, 比如我们在计算时, 实际上以及把后续每个状态的既有动作都算了. 但是在计算其他状态时, 就也可能重复的进行这些计算, 显然完全没有必要.
一个简单的改进就是, 如上式, 将这些后续的每个都作为子样本记录下来, 并且可以分为两种使用方法:
  • first-visit method: 后续只要遇到同样的, 就直接使用之前记录的值
  • every-visit method: 每次遇到同样的, 重新计算并作为一个新的样本值更新期望.
 
MC Basic的另一个是缺点是: 每个都要等N次episode取均值之后, 才进行一次策略更新. 这样同样会比较慢, 简单的办法就是我们可以值进行有限次episode, 就更新. 这样得到的精确性会降低, 但是提高了效率.
notion image
这两个改进之后的算法就是MC exploring starts方法.

2.3.3 MC epsilon greedy

我们之前介绍过, 贝尔曼最优公式的解是确定性策略, 因此我们会使用贪婪最优策略. 在整体策略并未收敛到最优时, 贪婪策略的概率是1, 其他都是0.
这样就造成了, 必须要逐个采样才能保证完整的覆盖到所有策略, 显然很低效. 甚至如果为了保证完备性, 我们需要从所有的开始采样, 才能保证被全部覆盖.
可以这样对其进行改进: 设置一个超参数, 使得贪婪策略是一个小于1的大值; 其他策略有相同的较小概率被选择.
 
这样就在MC exploring starts算法的策略收敛过程中, 鼓励了探索性. 也就是MC epsilon greedy方法.
显然是一个平衡exploitationexploration的参数. 越大, 越鼓励策略探索其他的策略.
这样我们就可以只从一个或某几个状态开始采样, 只要将采样长度设置的足够大, 就能够覆盖所有的.
notion image
这里给出了从出发, 和采样长度设置为不同的值时, 一次episode探索到的所有状态和动作.
MC epsilon greedy使得算法丧失最优性, 也就是不保证收敛到最优解, 但是大幅提高了效率.
notion image
这是不同参数下, MC epsilon greedy的策略结果.
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...