RL(二)强化学习的算法分类

1、强化学习的分类

前一篇博客对强化学习有了一个大概的认识,现在按强化学习的算法的不同进行一个分类。其实强化学习的算法要分类的话有很多不同的类型,有按有无模型,基于策略还是基于价值等等。这里只是对算法进行一个分类,后面会详细讲解每种算法。

上一篇博客讲了强化学习最基本的一些东西,其实说到强化学习还有一个概念肯定会被谈到,那就是马尔科夫决策过程(Markov Decision Process,MDP)。马尔科夫在学数学的人眼里还是比较熟悉的,在其他学科知道的人可能比较少。在随机过程这本书中介绍了马尔科夫过程的的相关内容和理论,有兴趣的人可以自己去百度或其他人的博客查看具体内容。这里我们提出马尔科夫决策过程重要的原因就是它的一个性质:马尔科夫性:未来状态只与当前状态有关,与历史状态无关。这个有什么用呢?前面我们讲到有一个状态转移模型P(状态转移概率),它表示在状态s下采取动作a,转到下一个状态s′的概率。其实严格来说,转化到下一个状态s′的概率既与上一个状态s有关,还与上上个状态,以及上上上个状态有关。就好比今天下午我饿了,为什么饿呢?因为中午没吃饭,为什么中午没吃饭呢?因为中午没钱,等等,,,,。可以看出一个状态其实是被前面的很多状态影响了的,但是影响最大最直接的还是前面一个状态(即中午没吃饭导致下午饿)。而且如果太钻牛角尖的话,其实这个问题是没有答案的,我们不可能把所有的有关的状态全部纳入我们的考虑范围,这样不现实,也没有办法做到,我们能做得就是想办法简化模型,运用现在已经能过运用的手段对问题进行建模。同时之后要讲到的状态值函数和动作值函数都和MDP有关,这就是要引入马尔科夫决策过程的原因。

2、基于有无模型来分类

引入MDP的原因是简化状态转移模型P,而这个P就是我们对RL按有无模型分类的那个模型。简单点说就是,如果事先知道这个模型P,并且作为输入,我们就认为它是有模型的,它解决问题的一些算法就会和没有模型不一样。当然,不知道这个概率P就是无模型了。

那这个有模型和无模型的真正的区别在哪呢?其实从这个状态转移概率P的定义就可以看出:当我们知道了状态s和采取的行动a,我们就知道了下一个状态s′的概率。就好比在缺水的情况下给西瓜苗浇水,那西瓜苗长得更好的概率就是90%。如果提前知道这个P,那相当于提前给模型一个模拟的环境,让他明白做这个动作有多大的概率得到什么结果。有模型和无模型的一个区别就好像是有模型的RL有了想象力。无模型中, 计算机只能按部就班,一步一步等待真实世界的反馈,再根据反馈采取下一步行动。而有模型总,能通过想象来预判断接下来将要发生的所有情况,然后选择这些想象情况中最好的那种,并依据这种情况来采取下一步的策略。
就好比下面这个图:
在这里插入图片描述

但是现实问题中这个状态转移模型很难提前知道。所以现实的问题中的解决方案都是按着无模型的算法做的,比如:蒙特卡罗算法,Q_Learning、Sarsa、Policy Gradients等。
用有模型的算法有:动态规划等。

3、基于策略和基于价值

基于策略是强化学习中最直接的一种, 他能通过感官分析所处的环境,输出下一步要采取的各种动作的概率,根据概率采取行动,所以每种动作都有可能被选中,只是概率不同。而基于价值的方法输出则是所有动作的价值,根据最高价值来选着动作,相比基于概率的方法,基于价值的决策部分更为肯定,就选价值最高的,而基于概率的,即使某个动作的概率最高, 但是还是不一定会选到他.
但是对于选取连续的动作,基于价值的方法是无能为力的。我们却能用一个概率分布在连续动作中选取特定动作, 这也是基于概率的方法的优点之一

在这里插入图片描述
基于价值和算法有Q _Learning, Sarsa等,基于策略的有Policy Gradients等,他们有各自的优缺点,当把他们的优点几种到一起时就有了Actor-Critic算法。actor 会基于概率做出动作, 而 critic 会对做出的动作给出动作的价值, 这样就在原有的 policy gradients 上加速了学习过程。

4、单步更新和回合更新

强化学习还能用另外一种方式分类, 回合更新和单步更新, 想象强化学习就是在玩游戏, 游戏回合有开始和结束. 回合更新指的是游戏开始后, 我们要等待游戏结束, 然后再总结这一回合中的所有转折点, 再更新我们的行为准则. 而单步更新则是在游戏进行中每一步都在更新, 不用等待游戏的结束, 这样我们就能边玩边学习了.

Monte-carlo learning 和基础版的 policy gradients 等 都是回合更新制, Qlearning, Sarsa, 升级版的 policy gradients 等都是单步更新制. 因为单步更新更有效率, 所以现在大多方法都是基于单步更新. 比如有的强化学习问题并不属于回合问题.

在这里插入图片描述

5、在线学习和离线学习

在线学习, 就是指我必须本人在场, 并且一定是本人边玩边学习, 而离线学习是你可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则, 离线学习同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习. 或者我也不必要边玩边学习, 我可以白天先存储下来玩耍时的记忆, 然后晚上通过离线学习来学习白天的记忆。举个简单的例子就是我们在手机上看电影,你可以直接在线观看,也可以把电影下载好,有时间再看。离线控制和在线控制的区别主要在于在线控制一般只有一个策略(最常见的是ϵ−贪婪法)。而离线控制一般有两个策略,其中一个策略(最常见的是ϵ−贪婪法)用于选择新的动作,另一个策略(最常见的是贪婪法)用于更新价值函数。
在这里插入图片描述

在线控制(on-policy)算法最常见的是SARSA算法;离线控制算法最常见的是Q-Learning算法。

6、强化学习的基本问题

以上就是RL的算法的一个大概分类,除了按算法来分类之外呢,还可以按RL需要解决的问题来分类。RL一般要解决的问题就两个:预测问题和控制问题。

预测问题:即给定强化学习的5个要素:状态集S, 动作集A, 即时奖励R,衰减因子γ, 给定策略π, 求解该策略的状态价值函数v(π)。
控制问题:也就是求解最优的价值函数和策略。给定强化学习的5个要素:状态集S, 动作集A, 即时奖励R,衰减因子γ, 探索率ϵ, 求解最优的动作价值函数 q ∗ q^∗ q和最优策略 π ∗ π^∗ π

其实,控制问题是包含预测问题的,即有时候在进行迭代的时候我们是需要预测问题所求得的状态价值函数v(π)的。这两个问题时RL的基本问题,不管是不是基于模型或者其他的算法都需要解决这两个问题。

下一篇:MDP与贝尔曼方程

参考博客:https://blog.csdn.net/jiaoyangwm/article/details/79763168https://www.cnblogs.com/pinard/p/9463815.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值