(六) 强化学习——Sarsa,Saras(λ),Q-Learning算法

1.前言
我们上一节介绍了MC强化学习方式和TD强化学习学习方式(五)强化学习——蒙特卡罗强化学习(MC) and 时序差分强化学习(TD)。从这一结开始,我们开始介绍一些具体的运用了这两种强化学习方式的强化学习算法。

2.同轨策略和离轨策略
先来看看两种学习方式。同轨策略方法(on-policy,在线学习)方法,在同轨方法中,用于生成采样数据序列的策略和用于实际决策的待评估和改进的策略是相同的。而在离轨策略(off-policy,离线学习) 中,用于评估或者改进的策略与生成采样数据的策略是不同的,即生成的数据“离开”了待优化的策略所决定的决策序列轨迹。后面所介绍的Sarsa算法就属于同轨策略下的时序差分控制。Q-learning算法属于离轨策略下的时序差分控制。

3.Sarsa算法
在学习经典的强化学习算法DQN之前,我们先来看看什么是Sarsa算法,Sarsa算法是使用时序差分方法来解决控制(优化)问题的一种算法。如下图所示,Sarsa的名字拼写是有意义的。S表示的是状态,A表示的是基于某个策略agent在状态S下所做出的动作。S´表示的是环境接受到动作A后,返回的下一个状态,R是环境接受到动作后放回的奖励值。A´表示的是agent接受S´后的下一个动作。这就是一个5元组(S,A,R,S´,A´),sarsa的名字就是这样来的。这里需要注意的是,个体在状态 S’ 时遵循当前的行为策略产生一个新行为 A’,个体此时并不执行该行为,而是通过动作价值函数(什么是动作价值函数)得到后一个状态行为对 (S’,A’) 的价值,利用这个新的价值和即时奖励 R 来更新前一个状态行为对 (S,A) 的价值。
在这里插入图片描述

图3.1:Sarsa算法示意图

Sarsa 算法在单个状态序列内的每一个时间步,在状态 S 下采取一个行为 A 到达状态 S’ 后都要更新状态行为对 (S,A) 的价值 Q(S,A)。这一过程同样使用 ϵ-贪婪策略来更新策略。这里需要注意的是这里的A’动作,不仅仅是用来更新,而是真正的下一步需要执行的动作。

在这里插入图片描述

图3.2:Sarsa更新公式

在这里插入图片描述

图3.3:Sarsa算法流程
直接看伪代码可能不是很懂,我们来读一下,输入是一些序列,两个超参数,输出动作-状态价值函数Q,然后是初始化,接下来是两个循环,外层循环是序列的数量,内层循环是每一个序列的遍历。在 Sarsa 算法中,Q(S,A) 的值使用一张大表来存储的,这不是很适合解决规模很大的问题;对于每一个状态序列,在 S 状态时采取的行为 A 是基于当前行为策略的,也就是该行为是与环境进行交互实际使用的行为,也就是说Sarsa是同轨策略下的时序差分控制。

4.Saras(λ)算法
这个算法的名字相比于Saras算法就多了个λ符号。这个其实就是步数的意思。如下图图4.1所示,这里的 qt 对应的是一个状态行为对 (st, at),表示的是在某个状态下采取某个行为的价值大小,也就是动做价值函数。如果 n = 1,则表示状态行为对 (st, at) 的 Q 价值可以用两部分表示,一部分是离开状态 st得到的即时奖励 Rt+1,即时奖励只与状态有关,与该状态下采取的行为无关;另一部分是考虑了衰减因子的状态行为对 (st+1, at+1) 的价值:环境给了个体一个后续状态 st+1,观察在该状态基于当前策略得到的行为 at+1 时的价值 Q(st+1, at+1)。当 n = 2 时,就向前用 2 步的即时奖励,然后再用后续的 Q(st+2, at+2) 代替;如果 n 趋向于无穷大,则表示一直用带衰减因子的即时奖计算 Q 值,直至状态序列结束。

在这里插入图片描述

图4.1:n-步 Q 收获

在这里插入图片描述

Sarsa(λ)算法流程

5.Q-Learning算法
离轨策略下的时序差分控制算法的提出是强化学习早期的一个重要突破。这个突破性算法就叫做Q学习,其定义为:
在这里插入图片描述

图4.1:Q学习更新

这里的maxQ指的是选取在状态St+1下所有动作中的最大Q值来参与更新,这里的动作a,只是仅仅用来更新Q(st,at),具体下一个动作选啥,现在还没有选出,不要和sarsa算法搞混了。
在这里插入图片描述

图4.2:Q学习算法流程

6.总结
对于sarsa算法和Q-learning算法,我们可以从他们的动作-状态价值函数的更新可以看出,sarsa算法在更新Q值的时候是考虑了未来下一个动作的Q值的,因为在更新Q(s,a)的时候,用到了Q(s’,a’),下一个动作已经被选出。而Q-learning没有,只是用下一个状态的最大动作的Q值来更新,但是并没有选出来执行。之后的强化学习算法应用中,我们虽然很少用到这两种算法来解决问题,但学习这两种算法对后面其他算法的理解至关重要。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值