[UCAS强化学习]5·无模型控制
1 简介
上一节课我们介绍了无模型预测,即如何在一个未知的 MDP(不知道转移矩阵
- 蒙特卡洛控制
- Sarsa
- Q-学习
其中,蒙特卡洛控制和 Sarsa 都是在策略 (on-policy) 方法,指优化的策略和用于采样的策略是同一个策略;Q-学习是离策略 (off-policy) 方法,指优化的策略与用于采样的策略有所不同。
2 蒙特卡洛控制
2.1 广义策略迭代
策略迭代回顾:策略迭代反复执行两个步骤
- 策略评估:使用矩阵求解或迭代策略评估求解
- 策略提升:使用贪心策略更新策略
该策略迭代算法是 model-based,因为:
- 矩阵求解或迭代策略评估都需要知道模型信息
- 贪心更新需要模型信息
我们现在希望将其变成 model-free 的。第一个问题很容易解决,考虑用上节课介绍的无模型预测方法即可,例如 MC;对于第二个问题,注意贪心策略也可以用
至此,原本基于模型的策略迭代算法被我们改成了如下无模型的策略迭代算法:
- 策略评估:使用 MC 估计
- 策略提升:使用贪心策略更新策略
不过现在出现了一个新的问题。由于我们在第一步中使用了基于采样的无模型预测方法,而采样的分布是上一轮迭代的第二步中寻找到的确定性贪心策略,这将导致采样失去随机性,许多状态-动作对
解决方法非常简单,只需要为第二步的贪心策略引入一定的随机性即可,这样的贪心称作
- 策略评估:使用 MC 估计
- 策略提升:使用
策略更新策略
这就是蒙特卡洛控制算法。上述改进过程如图所示:
将贪心策略改成了
不过,该收敛证明基于假设——策略评估时 MC 的估计是准确的,但这往往需要采样多条轨迹才能做到。为了提高效率,我们自然问一个问题:能否在做 MC 估计的时候,只采样一条轨迹呢?如此不准确的策略评估能否收敛到最优策略呢?
2.2 GLIE
- 所有状态-动作对都能被无限次访问到:
- 策略最终会收敛到贪心策略:
这样的策略称为 GLIE (Greedy in the Limit with Infinite Exploration).
一个自然简单的想法是,随着学习的进行,逐步减小
可以证明,GLIE MC 能够收敛到最优的动作-价值函数,即
3 Sarsa
上一节中我们始终采用 MC 进行策略评估。鉴于 TD 对 MC 的优势,自然可以想到将 MC 替换为 TD,这样就引出了 Sarsa 算法。也就是说,如果上一节的算法称作蒙特卡洛控制 (MC control),那么 Sarsa 其实就是时间差分控制 (TD control).
3.1 Sarsa
使用 TD 作为策略评估方法代入策略迭代算法,得到 Sarsa 算法:
由于第 6 行算法的更新依赖于
Sarsa 的收敛性由以下定理保证:若以下条件得到满足:
- 策略序列
满足 GLIE - 更新步长
序列满足 Robbins-Monro 要求:
则 Sarsa 能收敛到最优的动作-价值函数,即
但是实践中我们一般不会考虑第 2 个条件,甚至有时都不考虑第 1 个条件,Sarsa 依然能 work.
3.2 n-step Sarsa
可以看出,上述 Sarsa 算法对应着使用 TD(0) 进行策略评估,于是我们自然可以得到 n-step Sarsa 和 Sarsa(λ).
首先将 Sarsa 扩展到 n-step Sarsa:
定义 n-step Q-回报:
3.3 Sarsa(λ)
对 n-step Sarsa 做几何级数的加权求和,即是 Sarsa(λ). 与 TD(λ) 类似,我们有前向 Sarsa(λ) 和后向 Sarsa(λ).
前向 Sarsa(λ) 需要先把各
4 Q-学习
4.1 在策略和离策略
上文中,无论是蒙特卡洛控制还是 Sarsa,它们在策略提升中要优化的策略与策略评估时用于采样的策略(称作行为策略)是相同的,即根据策略
- 有时智能体需要观察人类或别的智能体的行为去学习
- 有时需要重复利用旧策略
产生的经验去学习 - 执行探索性的策略去学习最优策略
- 执行单一的策略去学习多个策略
为了实现离策略学习,首先介绍一种采样方法——重要性采样。
4.2 重要性采样
重要性采样 (importance sampling) 通过将对分布
基于重要性采样,在离策略学习中,假设智能体在策略
离策略 MC 学习:现在,基于行为策略
- 它要求对
的动作-状态对,有 中的多项连乘将导致极大的方差,使得算法极其不稳定
离策略 TD 学习:相比离策略 MC 学习,更实用的是离策略 TD 学习。只需在 TD(0) 的基础上,对 TD 目标乘上重要性权重:
说了这么多,离策略学习到底有什么用呢?回忆上文中我们提到,当行为策略和优化策略都是贪心策略时,算法无法探索足够多的状态-动作对,导致难以找到最优解;但当行为策略和优化策略都是
4.3 Q-学习
以
- 采样动作
,获得奖励 ,转移到状态 ,采样动作 - 更新
时使用重要性采样: - 策略提升:
就得到离策略的 Sarsa 算法。
然而,其实我们根本没有必要采样动作
4.4 Q-学习与价值迭代
回顾这一路推导,我们其实都是围绕策略迭代不断地改进,但是最终得到的 Q-学习却与针对动作-价值函数的价值迭代很类似:
4.5 Double Q 学习
Q-学习常常会遇到过高估计的问题。考虑这样的 MDP:1 个状态,2 个动作,每个动作获得期望奖励为 0,那么显然有:
为了解决这个问题,Double Q 学习将样本分为两组,分别定义两个独立的估计
- 使用一个
函数计算贪心动作: - 使用另一个
函数估计 的价值: - 获得无偏估计:
仍然考虑上面的例子,假设第 1 步中选择
Double Q 学习的算法流程如下所示:
5 小结
通过这几节课的学习,我们已经发现许多算法之间具有对应和发展的关系,这里,我们将 DP 和 TD 的算法总结如下表:
其中,