什么时候使用蒙特卡洛方法: 蒙特卡洛方法适用于免模型的强化学习任务。(“免模型学习”对应于一类现实的强化 学习任务,在该类任务中,环境的转移概率、奖赏函数往往很难得知,甚至很难知道环境中一共有多少状态,因此,在该类学习任务中,学习算法不依赖于环境建模。) 为什么使用蒙特卡洛方法: 在免模型情形下,由于模型未知而导致无法做全概率展开,策略迭代酸中的策略无法评估,此时,只能通过在环境中执行选择的动作,来观察转移的概率和得到的奖赏。 什么是蒙特卡洛方法: 其主要思想是通过多次“采样”,然后求取平均累积奖赏来作为期望累积奖赏的近似。需要注意:和策略迭代算法不同,模型未知时,对状态值函数V的估计是有一定困难的,于是我们将估计对象从V转变为Q,即估计每一对“状态-动作”的值函数。
First-visit MC Method:对于每一个被采样的episode,在进行对状态值函数或者“状态-动作”值函数进行估计时,只考虑第一个被访问的状态或者动作-状态对。 Every-visit MC Method:对于每一个被采样的episode,在进行对状态值函数或者“状态-动作”值函数进行估计时,考虑了每一个被访问的状态或者动作-状态对。 蒙特卡罗与动态规划不同点:
在动态规划算法中需要知道下一个状态对应的概率分布,而在蒙特卡洛算法中不需要。即不需要计算 p(s′,r|s,a) 。蒙特卡洛方法估计的对象是一个状态或者一个动作状态对,因此对每个状态的估计是相互独立的。蒙特卡罗计算复杂度独立于状态的数目有模型的学习: 根据“状态-动作”值函数可以很好地估计状态值函数,状态值函数可以充分确定策略。 免模型的学习: 对状态值函数的估计并不充分,智能精确地估计每一个动作对应的“状态- 动作”值函数。其原因在于:在真实的episodes中,对于一个已经被确定的策略,有 些存在的动作状态对不一定会被访问到。 针对该种情况,提出如下两种解决方法: (1)探索性开端(相当于随机初始化); (2)随机策略,在每个状态下选择任何动作的概率都是非0的。
蒙特卡洛方法的整体思路是:模拟 -> 抽样 -> 估值。
用蒙特卡洛方法估计最优策略——广义的策略迭代: (1)更新值函数,使其逼近当前策略下值函数的真实值; (2)根据当前的值函数改善当前的策略; 不断的循环迭代,使值函数和策略都逼近最优。
结合通用策略迭代(GPI)的思想。 下面是蒙特卡洛方法的一个迭代过程:
策略评估迭代 (1) 探索 - 选择一个状态(s, a)。 (2) 模拟 - 使用当前策略 π ,进行一次模拟,从当前状态(s, a)到结束,随机产生一段真实迭代序列(episode)。 (3) 抽样 - 获得这段序列上的每个状态(s, a)的回报G(s,a),记录G(s,a)到集合Returns(s,a)。 (4) 估值 - q(s, a) = Returns(s, a)的平均值。 (因为状态(s, a)可能会被多次选择,所以状态(s, a)有一组回报值。)策略优化 - 使用新的行动价值q(s,a)优化策略 π(s) 。蒙特卡洛方法收敛的两个条件: (1)探索性开端; (2)无限多episodes;一般会针对所有的状态-行动,或者一个起始 (s0,a0) 下的所有状态-行动。这也说明持续探索(continual exploration)是蒙特卡洛方法的主题。 实际算法中对无限多episodes的假设处理的方法是: (1)保证在每一步的策略估计中逼近 qπk ,即要确保出错概率和估计偏差的幅度有上界; (2)放弃完整的策略估值(极端情况:值迭代)。
On-policy: 指的是被评估和被改善的是同一个策略。 Off-policy: 指的是被评估和被改善的策略 与 产生数据的策略是不同的策略。
数学基础——Important Sampling 目标: 求函数f在概率分布p下的期望值,即为 方法: 从“提议分布”中采样,对目标分布进行估计
对应到Off-policy Method中: 目标分布p -> 目标策略 提议分布q -> 行为策略 函数值f(z) -> 值函数 其中,目标策略可以表示为: 重要性采样比为: 在普通的重要性采样下( τ(s) 为所有时间序列中s被访问的次数):,这种采样无偏,方差大 在有权重的重要性采样下:,这种采样有偏,方差小
蒙特卡罗估计可以写为递增性形式。假设我们有一系列得回报 G1,G2,...,Gn−1 ,所有都是从同一个状态开始的,并且有随机的权重 Wi ,所以有估计为: 当又得到一个新的回报 Gn 的时候,应该如下进行更新: 则最终的程序框架为: