一、前言
在强化学习系列(四):动态规划中,我们介绍了采用DP (动态规划)方法求解environment model 已知的MDP(马尔科夫决策过程),那么当environment model信息不全的时候,我们会采用什么样的方法求解呢?蒙特卡洛方法(Monte Carlo)、时间差分(Temporal Difference,TD)、n-step Bootstrapping 都可以用来求解无模型的强化学习问题,本章主要介绍蒙特卡洛方法(Monte Carlo)。
在解决实际问题中,我们通常不太容易获得环境的准确模型,例如打牌的时候,不知道对手会出什么牌,这样各个state间的转移概率就不太容易直接表示。相对而言,获得采样数据通常比较容易实现,比如打牌,可以打好多次牌,然后逐渐就可以估计对手的出牌风格。根据统计数学的思想,我们可以通过不断采样然后求平均的方式实现对环境模型的学习。这种近似方式我们称为经验方式。
Monte Carlo正是这样一种用经验来估计环境模型的方法,可以在环境模型未知的情况下,根据经验(experience,从环境中获取的一系列的state、action、reward采样) 来进行学习。为了方便使用Monte Carlo,本章假设所需解决的强化学习问题都是episode的,即存在一个终止状态(terminal state),使得每次对环境的采样以有限步结束。
这里将第四章中的GPI(general policy iteration) 思想用于Monte Carlo,将问题分为 prediction 和 control来进行讨论。
二、Monte Carlo Prediction
2.1 Prediction 问题
预测问题:给定一个策略 π π ,求解 state-value function vπ(s) v π ( s )
回想一下,我们在第二章中提到的多臂老虎机问题,假设给定一个策略 π π ,对任意state,每次摇动拉杆都按照策略 π π 选择action。需要估计state-value function vπ(s) v π ( s ) 。老虎机每次摇动拉杆获得的数据是 S,A,R S , A , R ,仅包含一个state 和 一个 action。要估计某一特定state s 的value function 可以根据统计多次采样中出现state s的数目 N(s) N ( s ) ,然后求多次实验获得的reward的平均值来估计。求解过程如下:
Average Reward
To evaluate state s
when state s is visited in an episode
increment counter N(s)←N(s)+1 N ( s ) ← N ( s ) + 1
increment total reward S(s)←S(s)+R S ( s ) ← S ( s ) + R
Value is estimated by mean reward V(s)=S(s)/N(s) V ( s ) = S ( s ) / N ( s )
By law of large numbers, V(s)→vπ(s) V ( s ) → v π ( s ) as N(s)→∞ N ( s ) → ∞
而很多问题远比老虎机问题复杂,因为每次采样所获得的采样数据是一系列的state、action、reward,如 S0,A0,R1,...,ST−1,AT−1,RT S 0 , A 0 , R 1 , . . . , S T − 1 , A T − 1 , R T , 状态和动作序列间存在联系,不能单独将state s所获得的reward 单独剥离出来求平均值,因此Monte Carlo考虑了根据state s 出现后的return(reward 之和)来进行策略估计。但一组采样中 state s 可能多次出现,那么计算哪一次出现 state s到terminal state 的return呢?这里衍生出两种Monte Carlo:first-visit MC 和 every-visit MC。两个方法的求解过程分别如下:
First-Visit MC policy evaluation (Average Return)
To evaluate state s
The first time-step t t that state s is visited in an episode,
increment counter
increment total return S(s)←S(s)+Gt S ( s ) ← S ( s ) + G t
(where Gt