基于蒙特卡罗的强化学习算法——MC Basic
理解算法的核心问题
要理解本次课介绍的第一个算法,一个核心问题是如何将policy iteration算法转变为model free的形式。其实质是把policy iteration里依赖模型的部分替换成一个model free的模块。
要掌握这个转变,需要熟悉policy iteration(若不熟悉可回顾上节课内容)以及蒙特卡罗estimation(通过前面的motivation example已有所了解)。
Policy Iteration转变为Model Free的过程
在policy iteration的每一个iteration中,包含两个步骤:
- Policy evaluation:有一个策略 π k \pi_k πk,通过求解贝尔曼公式求出它的state value v π k v_{\pi_k} vπk。
- Policy improvement:知道 v π k v_{\pi_k} vπk后进行改进,即求解一个最优化问题,得到新的策略 π k + 1 \pi_{k+1} πk+1 。
在这个过程中,核心的量是 q π k q_{\pi_k} qπk(action value)。计算 q π k q_{\pi_k} qπk有两种方法:
- 依赖模型的方法:这是value iteration算法所使用的,先得到 v π k v_{\pi_k} vπk,由于知道模型,所以可以求出 q π k q_{\pi_k} qπk。
- 不依赖模型的方法:依据action value最原始的定义,即从状态 s s s出发,采取动作 a a a,得到一个return(这是一个随机变量),求它的平均或期望。基于蒙特卡罗的方法就是用这个不依赖模型的式子来计算,这是一个mean estimation的问题,蒙特卡罗estimation可用于求解该问题。
具体求解时,从任意的一个状态-动作组合 ( s , a ) (s, a) (s,a)出发,根据当前的策略得到一个episode,计算出这个episode所对应的discounted return,用 g s , a g_{s,a} gs,a表示( g s , a g_{s,a} gs,a是这个随机变量的一个采样)。如果有很多这样的采样集合,就可以用这些采样求平均值,来估计 g s , a g_{s,a} gs,a的期望值。
MC Basic算法介绍
当没有模型时,就依赖数据(在统计或概率里叫sample,在强化学习中有个特殊名字叫experience经验)。
这个算法名为mc basic(mc是蒙特卡罗首字母的缩写)。算法过程如下:
- 从一个初始的策略出发(这个策略可能不好,后续会改进)。
- Policy valuation:计算 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a),对所有的状态-动作对 ( s , a ) (s, a) (s,a)都要得到 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a) 。方法是从 ( s , a ) (s, a) (s,a)出发,得到很多episode,对episode的return求平均。
- Policy improvement:在上一个步骤得到 q π k q_{\pi_k} qπk后,求解优化问题,得到一个新的策略。
它和policy iteration的第二步是一样的,唯一区别在于第一步:policy iteration第一步先求解state value,再得到action value和 q π k q_{\pi_k} qπk 。
MC Basic算法的伪代码简要过程:
在每一个iteration中,遍历每一个状态
s
s
s,遍历每一个状态
s
s
s所对应的动作
a
a
a,从
(
s
,
a
)
(s, a)
(s,a)出发,得到很多的episode,计算它的average return,并认为这就是
q
π
k
(
s
,
a
)
q_{\pi_k}(s,a)
qπk(s,a) ,然后在下一个步骤中进行策略改进。
关于MC Basic算法的强调点
- 与Policy Iteration的关系:mc basic是policy iteration的一个变形,是把基于model的模块拿掉,换成不需要model的模块。理解mc basic需要先明白基于模型的policy iteration算法,可能会存在一些疑问,比如为什么选择action最大的来作为策略等。
- 算法的作用与局限性:mc basic算法很有用,能清晰揭示从model base到model free的转变过程,但并不实用。后续会介绍两个更实用的算法(mc basic这个名字是特意起的,因为要把最核心的想法和其他复杂因素剥离开)。后续会涉及更高效地利用数据、更新数据,去掉一些实际中难以实现的假设等,这些会让算法更复杂但也更实用。
- Action Value的估计方式:mc basic中直接估计action value,而在policy iteration中是先估计state value,再转成action value。原因是估计state value后再转成action value会依赖模型,所以要直接估计action value。
- 算法的收敛性:policy iteration是收敛的,mc basic和policy iteration本质类似,只是估计action value的方法有差别,其收敛性仍然能保证。但随着后续算法变得越来越复杂,收敛性可能逐渐消失或其分析会越来越复杂。