前言
在不了解环境动态特性或已知动态特性有时求解不同状态的概率也很困难的情况下使用MC方法更加合理。
蒙特卡罗算法通过平均样本的回报来解决强化学习问题。它主要利用的是经验,从真实的环境交互或环境交互的仿真中得到一个采样队列(状态、动作和奖励)【这决定了该方法主要针对分幕式任务,即任务在有限步内完成。策略评估和改进都是在整个幕结束后才开始进行。当然,有限可以看做是无限的特例,引入参数在某一步之后不再考虑就将连续问题转化为了离散问题】
与DP的区别:DP的要素会显示了所有可能的转移,MC法则仅显示在当前幕中采样的那些转移。DP的回溯图仅仅包含一步转移,MC包含了到这一幕结束为止的所有转移。在MC中,对每个状态的估计是独立的。对一个状态的估计完全不依赖于对其它状态的估计,与DP完全不同。
优点:可以从实际经历和模拟经历中学习;适合在仅仅需要获得一个或者一个子集的状态的价值函数时使用。可以从这个特定的状态开始采样生成一些幕序列,然后获取回报的平均值,完全不需要考虑其它的状态。
估计原理:一个状态的价值是从该状态开始的期望回报,即未来的折扣收益累积值的期望。比较简单的想法是估算某一个状态的预期回报时,MC方法将每一次进入该状态后的回报求和取平均。估计动作值函数同理,对每一个进入该动作-状态对的回报求和取平均。
状态值函数的估计:
· 根据每次估计的时候加多少数可以分为初次经历和逐次经历两种方式。本章节中主要使用初次经历方法进行估计。(就是回报求和取平均)
· 在有环境模型的情况下,单靠状态值函数就可以确定一个策略(在DP中,只需要向前看一步,选取特定的动作,使得当前收益与后续状态的状态价值函数之和最大即可)。在没有模型的状态下,仅通过状态价值函数无法确认动作与状态之间的关系,所以无法选择最优动作,在这种情况下必须通过显式确定动作的价值函数来制定自己的策略。
动作状态值函数的估计:
· 这里遇到的问题是有些动作状态组可能永远不会被访问到。如果\(\pi\)是一个确定性的策略,那么遵循\(\pi\)意味着每一个状态只会观测到一个动作的回报,在无法获取回报进行平均的情况下,MC方法无法根据经验改善动作价值函数的估计。【解决方法是将指定的状态-动作组作为起点开始采样或考虑那些在每个状态下所有动作都有非零概率被选中的随机策略。】
· MC方法估计准确的一个前提是观测到无限多幕样本序列。有两种方法来解决这个问题:一个是在每次策略评估中对q做出尽量好的逼近(需要一些假设并定义一些测度来分析逼近误差的幅度和出现概率的上下界);另一个是不再要求在策略改进前就完成策略评估,(在MC中可以逐幕交替进行评估和改进,每一幕结束后,使用观测到的回报进行策略评估,然后在该幕序列访问到的每一个状态上进行策略的改进)在每一个评估步骤中,我们并不期望它在进过很多步之前非常接近真实的值,这种想法的一种极端实现形式就是价值迭代 值迭代的就地更新更是如此。
· 当一些动作状态组作为初始状态的条件不能被满足时,唯一的解决方案就是智能体能够持续不断地选择所有可能的动作。一般使用两种方法:同轨(on - policy)策略和离轨(off - policy)策略。