RL经典mode/value/policy/step/on/off

来源:互联网 发布:淘宝客销量有权重吗 编辑:程序博客网 时间:2024/06/10 15:35

什么是强化学习?

强化学习是一类算法,是让计算机实现从一开始什么都不懂,脑袋里没有一点想法,通过不断地尝试,从错误中学习,最后找到规律,学会了达到目的的方法.这就是一个完整的强化学习过程.实际中的强化学习例子有很多.比如近期最有名的 Alpha go,机器头一次在围棋场上战胜人类高手,让计算机自己学着玩经典游戏Atari,这些都是让计算机在不断的尝试中更新自己的行为准则,从而一步步学会如何下好围棋,如何操控游戏得到高分.既然要让计算机自己学,那计算机通过什么来学习呢?

原来计算机也需要一位虚拟的老师,这个老师比较吝啬,他不会告诉你如何移动,如何做决定,他为你做的事只有给你的行为打分,那我们应该以什么形式学习这些现有的资源,或者说怎么样只从分数中学习到我应该怎样做决定呢?很简单,我只需要记住那些高分,低分对应的行为,下次用同样的行为拿高分,并避免低分的行为.

比如老师会根据我的开心程度来打分,我开心时,可以得到高分,我不开心时得到低分.有了这些被打分的经验,我就能判断为了拿到高分,我应该选择一张开心的脸,避免选到伤心的脸.这也是强化学习的核心思想.可以看出在强化学习中,一种行为的分数是十分重要的.所以强化学习具有分数导向性.我们换一个角度来思考.这种分数导向性好比我们在监督学习中的正确标签.

他要通过一次次在环境中的尝试,获取这些数据和标签,然后再学习通过哪些数据能够对应哪些标签,通过学习到的这些规律,竟可能地选择带来高分的行为 (比如这里的开心脸).这也就证明了在强化学习中,分数标签就是他的老师,他和监督学习中的老师也差不多.

强化学习是一个大家族,他包含了很多种算法,我们也会一一提到之中一些比较有名的算法,比如有通过行为的价值来选取特定行为的方法,包括使用表格学习的 q learning, sarsa,使用神经网络学习的 deep q network,还有直接输出行为的policy gradients,又或者了解所处的环境,想象出一个虚拟的环境并从虚拟的环境中学习等等.

 

Model-free 和 Model-based

我们可以将所有强化学习的方法分为理不理解所处环境,如果我们不尝试去理解环境,环境给了我们什么就是什么.我们就把这种方法叫做 model-free,这里的 model就是用模型来表示环境,那理解了环境也就是学会了用一个模型来代表环境,所以这种就是model-based方法.我们想象.现在环境就是我们的世界,我们的机器人正在这个世界里玩耍,他不理解这个世界是怎样构成的,也不理解世界对于他的行为会怎么样反馈.举个例子,他决定丢颗原子弹去真实的世界,结果把自己给炸死了,所有结果都是那么现实.不过如果采取的是 model-based RL,机器人会通过过往的经验,先理解真实世界是怎样的,并建立一个模型来模拟现实世界的反馈,最后他不仅可以在现实世界中玩耍,也能在模拟的世界中玩耍 ,这样就没必要去炸真实世界,连自己也炸死了,他可以像玩游戏一样炸炸游戏里的世界,也保住了自己的小命.那我们就来说说这两种方式的强化学习各用那些方法吧.

Model-free 的方法有很多, Qlearning, Sarsa, Policy Gradients都是从环境中得到反馈然后从中学习. model-based RL只是多了一道程序,为真实世界建模,也可以说他们都是 model-free的强化学习,只是 model-based多出了一个虚拟环境,我们不仅可以像 model-free那样在现实中玩耍,还能在游戏中玩耍,而玩耍的方式也都是 model-free中那些玩耍方式,最终 model-based还有一个杀手锏是 model-free超级羡慕的.那就是想象力.

Model-free ,机器人只能按部就班,一步一步等待真实世界的反馈,再根据反馈采取下一步行动.model-based,他能通过想象来预判断接下来将要发生的所有情况.然后选择这些想象情况中最好的那种.并依据这种情况来采取下一步的策略,这也就是围棋场上AlphaGo能够超越人类的原因.接下来,我们再来用另外一种分类方法将强化学习分为基于概率和基于价值.

基于概率 和 基于价值

基于概率是强化学习中最直接的一种,他能通过感官分析所处的环境,直接输出下一步要采取的各种动作的概率,然后根据概率采取行动,所以每种动作都有可能被选中,只是可能性不同.而基于价值的方法输出则是所有动作的价值,我们会根据最高价值来选着动作,相比基于概率的方法,基于价值的决策部分更为铁定,毫不留情,就选价值最高的,而基于概率的,即使某个动作的概率最高,但是还是不一定会选到他.

我们现在说的动作都是一个一个不连续的动作,而对于选取连续的动作,基于价值的方法是无能为力的.我们却能用一个概率分布在连续动作中选取特定动作,这也是基于概率的方法的优点之一.那么这两类使用的方法又有哪些呢?

比如在基于概率这边, policy gradients,在基于价值这边有 q learning, sarsa.而且我们还能结合这两类方法的优势之处,创造更牛逼的一种方法,叫做 actor-critic, actor会基于概率做出动作, critic会对做出的动作给出动作的价值,这样就在原有的policy gradients上加速了学习过程.

回合更新 和 单步更新

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

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

在线学习 和 离线学习

这个视频的最后一种分类方式是在线学习和离线学习,所谓在线学习,就是指我必须本人在场,并且一定是本人边玩边学习,而离线学习是你可以选择自己玩,也可以选择看着别人玩,通过看别人玩来学习别人的行为准则,离线学习同样是从过往的经验中学习,但是这些过往的经历没必要是自己的经历,任何人的经历都能被学习.或者我也不必要边玩边学习,我可以白天先存储下来玩耍时的记忆,然后晚上通过离线学习来学习白天的记忆.那么每种学习的方法又有哪些呢?

最典型的在线学习就是 sarsa,还有一种优化 sarsa的算法,叫做 sarsa lambda,最典型的离线学习就是 Q learning,后来人也根据离线学习的属性,开发了更强大的算法,比如让计算机学会玩电动的Deep-Q-Network.


原创粉丝点击