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