蒙特卡洛方法

xiaoxiao2021-02-28  74

什么时候使用蒙特卡洛方法:  蒙特卡洛方法适用于免模型的强化学习任务。(“免模型学习”对应于一类现实的强化  学习任务,在该类任务中,环境的转移概率、奖赏函数往往很难得知,甚至很难知道环境中一共有多少状态,因此,在该类学习任务中,学习算法不依赖于环境建模。)  为什么使用蒙特卡洛方法:  在免模型情形下,由于模型未知而导致无法做全概率展开,策略迭代酸中的策略无法评估,此时,只能通过在环境中执行选择的动作,来观察转移的概率和得到的奖赏。  什么是蒙特卡洛方法:  其主要思想是通过多次“采样”,然后求取平均累积奖赏来作为期望累积奖赏的近似。需要注意:和策略迭代算法不同,模型未知时,对状态值函数V的估计是有一定困难的,于是我们将估计对象从V转变为Q,即估计每一对“状态-动作”的值函数。

First-visit MC Method and Every-visit MC Method

First-visit MC Method:对于每一个被采样的episode,在进行对状态值函数或者“状态-动作”值函数进行估计时,只考虑第一个被访问的状态或者动作-状态对。  Every-visit MC Method:对于每一个被采样的episode,在进行对状态值函数或者“状态-动作”值函数进行估计时,考虑了每一个被访问的状态或者动作-状态对。  蒙特卡罗与动态规划不同点:

在动态规划算法中需要知道下一个状态对应的概率分布,而在蒙特卡洛算法中不需要。即不需要计算 p(s,r|s,a) 。蒙特卡洛方法估计的对象是一个状态或者一个动作状态对,因此对每个状态的估计是相互独立的。蒙特卡罗计算复杂度独立于状态的数目

Monte Carlo Estimation of Action Values

有模型的学习:  根据“状态-动作”值函数可以很好地估计状态值函数,状态值函数可以充分确定策略。  免模型的学习:  对状态值函数的估计并不充分,智能精确地估计每一个动作对应的“状态-  动作”值函数。其原因在于:在真实的episodes中,对于一个已经被确定的策略,有  些存在的动作状态对不一定会被访问到。  针对该种情况,提出如下两种解决方法:  (1)探索性开端(相当于随机初始化);  (2)随机策略,在每个状态下选择任何动作的概率都是非0的。

Monte Carlo Control

蒙特卡洛方法的整体思路是:模拟 -> 抽样 -> 估值。

用蒙特卡洛方法估计最优策略——广义的策略迭代:  (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 and Off-policy

On-policy:  指的是被评估和被改善的是同一个策略。  Off-policy:  指的是被评估和被改善的策略 与 产生数据的策略是不同的策略。

数学基础——Important Sampling  目标:  求函数f在概率分布p下的期望值,即为      方法:  从“提议分布”中采样,对目标分布进行估计 

对应到Off-policy Method中:  目标分布p -> 目标策略  提议分布q -> 行为策略  函数值f(z) -> 值函数  其中,目标策略可以表示为:  重要性采样比为:  在普通的重要性采样下( τ(s) 为所有时间序列中s被访问的次数):,这种采样无偏,方差大  在有权重的重要性采样下:,这种采样有偏,方差小

Incremental Implementation

蒙特卡罗估计可以写为递增性形式。假设我们有一系列得回报 G1,G2,...,Gn1 ,所有都是从同一个状态开始的,并且有随机的权重 Wi ,所以有估计为:    当又得到一个新的回报 Gn 的时候,应该如下进行更新:      则最终的程序框架为: 

转载请注明原文地址: https://www.6miu.com/read-32521.html

最新回复(0)