强化学习——蒙特卡洛方法

学习目标

  1. 理解Prediction和Control的差别;
  2. 理解什么是first-visit和every-visit;
  3. 理解什么是on-policy和off-policy;
  4. 理解蒙特卡洛方法的Prediction和Control问题;

Prediction和Control

其实这两个名词在总结动态规划方法的文章中也提到过了,但是没有细说,这里再简单的说明一下。预测(Prediction)和控制(Control)是MDP中的两类问题:

预测问题

  • 输入:MDP ⟨ S , A , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma\rangle S,A,P,R,γ 和策略 π \pi π
  • 输出:状态值函数 v π v_{\pi} vπ 或者状态动作值函数 q π q_{\pi} qπ

控制问题

输入:MDP ⟨ S , A , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma\rangle S,A,P,R,γ
输出:最优状态值函数 v ∗ v_{*} v 或者最优状态动作值函数 q ∗ q_{*} q,和最优策略 π ∗ \pi_{*} π

比如上一节的动态规划方法,两者的对应关系如下图:

蒙特卡洛方法简述

动态规划方法是建立在模型已知的情况下,但是往往大多数情况下模型是未知的,实际应用中我们不可能完全了解一个环境的所有知识,比如说得出它的状态转移矩阵。这个时候蒙特卡洛算法就派上用场了,它只需要从经验(experience)中去学习,这个经验包括样本序列的状态(state)、动作(action)和奖励(reward)。得到若干样本的经验后,通过**平均所有样本的回报(return)**来解决强化学习的任务。

类似于DP方法,MC求解也可以看作是一种广义的策略迭代过程,即先计算当前策略所对应的值函数,再利用值函数来改进当前策略,不断循环这两个步骤,从而得到最优值函数和最优策略。两个步骤细节上与DP不同,下面就慢慢道来。

蒙特卡洛方法的预测问题——策略评估

回想一下值函数的求解公式,即回报的期望:

v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=\mathbb{E}_{\pi}\left[G_{t} | S_{t}=s\right] vπ(s)=Eπ[GtSt=s]

但是蒙特卡洛方法在策略评估时不是求的回报的期望,而是使用经验平均回报(empirical mean return)。随着我们的样本越来越多,这个平均值是会收敛于期望的。

一个episode就可以看作是一个样本,假设对于状态 s s s ,给定策略 π \pi π ,要计算其值函数 v π ( s ) v_{\pi}(s) vπ(s) 。在一个episode中,每次状态 出现都称为一次visit,当然在一个episode中, s s s 可能出现多次。我们称第一次出现该状态为first-visit,因此first-visit蒙特卡洛方法(first-visit MC method)就是将所有第一次访问到 s s s 得到的回报求均值。根据大数定理,当样本足够大的时候,该均值就趋近于 v π ( s ) v_{\pi}(s) vπ(s)。顾名思义,every-visit蒙特卡洛方法(first-visit MC method)就是将所有访问到 s s s 得到的回报求均值。下面的算法就是估计 v π v_{\pi} vπ的first-visit MC方法:

说了这么多,估计状态值函数对于我们有用吗?回想一下DP方法中我们是怎么计算 v π ( s ) v_{\pi}(s) vπ(s) 的:

v k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v k ( s ′ ) ) v_{k+1}(s)=\sum_{a \in \mathcal{A}} \pi(a | s)\left(\mathcal{R}_{s}^{a}+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^{a} v_{k}\left(s^{\prime}\right)\right) vk+1(s)=aAπ(as)(Rsa+γsSPssav

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值