model-free 强化学习方法基础——蒙特卡罗策略优化

一.不基于模型的强化学习方法

在上一章中,我们讲到了基于模型的强化学习方法,它要求对环境充分的了解。这种要求极高的情况在我们的应用中是很少见的。如果我们不知道环境该怎么解决问题?我们如何从与环境进行交互得到的经历中获得信息?这些都是本章要讲述的重点。

二.蒙特卡罗方法

1.定义

蒙特卡洛方法的主要思想是“当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。是一种基于大数定律的统计方法。

2.举例——圆周率的估计(摘自@搬砖的旺财)

当我们对于圆周率进行估算的时候就可以用到MC方法。

在上图中,一个圆内接于方形,则我们可以通过面积的比来推出圆周率

 面积之比又可以用MC估计:在区域内随机投点,若点在圆内则计数+1,圆外不计数,则面积的比例可以估计为:圆内点的个数/方形内点的个数(总投点数)。

 常见的投针法等等都是基于蒙特卡罗方法实现对真实值的估算。我们可以通过该方法实现强化学习任务中因环境位置而导致未知量的估算。具体实现就是:在不清楚MDP状态转移概率和即时奖励的情况下,直接从经历完整的episode来学习状态价值,通常情况下某状态的价值等于在多个episode中以该状态算得到的所有收获的平均。

三.蒙特卡洛法求解强化学习问题

1.回顾Q-table

为了清晰的体现整个求解过程,我们利用Q-table 来展示行为价值函数的变化情况。同时,Q-table 也是大脑,有储存和指导的功能 。Q函数:Q_{\pi}(s,a)中有两个元素,分别是状态和动作,分别作为横纵轴,可以给出Q-table的形式:

 其中,储存作用体现在其可以储存当前估计下,动作价值函数的值;指导体现在当完成了Q-table的估算与更新,获得最优Q-table时,可以根据查表的方法选择动作。

2.蒙特卡罗策略评估

蒙特卡罗方法需要随机采样进行估算,在强化学习中,随机采样的形式就是随机获取的episode,可以理解为智能体与环境进行交互之后获得的信息,一段经历。如何描述这段经历?

 在图中表示的就是episode。其中黄色圆点表示的就是是一个状态,包含的信息是状态是什么和状态对应的奖励。蓝色小点代表着动作。一段从开始到终止状态的过程就是一个episode。可以举例:走迷宫的完整路径。

在episode中,我们可以计算出在本次路径中,经过的状态所对应的回报G(在该状态之后获得的奖励折扣累加,在知道后续奖励和结束状态时是可以通过定义式计算得出的)。当我们拥有足够多的episode,从中提取出足够多的G,通过Q_{\pi}(s,a)=\mathbb{E}[G_{t}|S_t=s,A_t=a]期望定义式计算出在当前的策略下(初始是随机策略)。同样V_{\pi}(s)也可以求出。这样就完成了策略评估的任务而无需任何对环境的先验知识。

当我们采样的次数足够多,我们计算得到的蒙特卡洛评估解就无限趋近于真实的状态价值

蒙特卡罗策略评估分为first visit与every visit。在一条episode中可能会重复访问一个状态很多次。以计算状态价值函数为例,first visit方法只提取这个episode中第一次访问状态时对应的回报,而every visit提取所有访问状态s时对应的回报。

#every visit 计算目标状态的状态价值函数流程

target_state= statex
S = 0#用来存储回报的加和
N = 0#用来记录访问的次数
for each_episode in data:
    for each_state in each_episode:
        if each_state == target_state:
            S = S + G_t
            N = N + 1

V_pi(target_state) = S/N

3.蒙特卡罗策略评估在线形式

我们可以很轻松的把累加形式转换为增量式:Q_{\pi}(s,a)=Q_{\pi}(s,a) + \frac{1}{N}(G_{t}-Q_{\pi}(s,a))

但是,在这个过程中,N在不断变化,引起更新复杂的情况。而且,在环境存在变化的时候,旧的信息参考价值在不断递减,直到过时,但是在我们传统的更新式中,新旧信息同等看待,这会导致更大的问题,所以我们根据这些问题改进价值函数的更新式:

Q_{\pi}(s,a)=Q_{\pi}(s,a) + \alpha(G_{t}-Q_{\pi}(s,a))

这里的α是一个固定的数字,类似于在深度学习梯度下降算法中的步长,解决了上述的两个问题。同样,状态价值函数也存在这样的更新形式:新估计值 <- 旧估计值 + 步长 * [目标 - 旧估计值]

V_{\pi}(s)=V_{\pi}(s) + \alpha(G_t + V_{\pi}(s)).

这种增量形式的另一种理解方式就是:我们在不断地让估计值贴近真实交互获得的回报。缩进估计与真实值的距离。

4.蒙特卡罗方法的策略改进

在进行蒙特卡洛策略评估到价值函数波动较小或达到允许范围内时,我们完成了一次的策略评估,之后就要根据评估结果进行策略改进。

在基于模型的DP方法中,策略改进是一种贪婪策略,即:选择Q-table中每个状态对应动作中动作价值函数最大的动作作为新的策略。但是贪婪的策略在不i知道模型的时候并不适用:当我们对环境存在未知的时候,仅仅凭借当前一致的片面信息(蒙特卡罗策略评估)容易陷入局部最优的状态。所以,对环境进行探索在无模型的状态下很重要。

我们使用ε-greedy贪心算法来均衡已有信息的利用和未知信息的探索。

 这表示在新策略动作的选择时,动作价值函数最大的动作不一定会被选择,其他的动作也有一定机会被选择。

5.总览

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值