美文网首页
强化学习(Q-funcation,DQN)基本介绍

强化学习(Q-funcation,DQN)基本介绍

作者: NH3_ | 来源:发表于2020-02-10 09:27 被阅读0次

    强化学习和监督,无监督学习的关系

    这三种同属于机器学习的范畴。

    • 与监督学习的区别:
      强化学习(RL)没有预先准备好的训练数据的输出值(label)。
      RL只有奖励值,当然奖励值也不是事先给出的,它是延后给出的。
    • 与无监督学习的区别:
      无监督学习没有label,也没有奖励值,只有一堆的数据特征。

    强化学习的基本要素

    基本要素
    • agent

    agent时RL中的中心组成部分,我们可以称之为学习者或者是决策者。

    • environment

    与agent进行交互的外界,我们称之为environment。

    • action

    action就是agent在当前环境中有可能采取的动作。

    • reward

    奖励就是agent在当前环境下采取action后的一种回应,所以奖励基本上就像一个反馈,衡量在那个环境中所采取的行动的好坏,成功或失败。奖励可以是立即的,你采取行动,你立即得到一个奖励;奖励也可以是延后的,今天,你采取了一个行动,你可能直到明天或后天才能得到收益。

    以上要素,它们不断地交互,agent选择动作,环境响应这些动作并向agent呈现新的情况。
    环境也会带来回报,随着时间的推移,agent通过选择行动来最大化回报。
    这就是强化学习的基本过程。

    基于奖励的概念,我们可以得出强化学习中的一个重要公式

    In general, we seek to maximize the expected return, where the return, denoted G_t , is
    defined as some specific function of the reward sequence. In the simplest case the return
    is the sum of the rewards:
    G_t=R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+ \cdots

    其中\gamma是0~1范围的值,如果\gamma =0,则该agent只关心当前立即奖励的最大化。当\gamma接近1时,agent会更多地考虑未来的奖励,所以agent变得更加有远见。

    目前强化学习的算法

    基本算法分类

    强化学习的算法基本上都包含了价值函数。一种价值函数是关于状态的价值函数f(s),用来评判agent所处状态的好坏;另一种价值函数是关于状态-动作的价值函数f(s,a),用来评判当前状态s下所采取的行动a的好坏。
    关于model-free 和 model-based的区别(个人觉得这位网友的评论比较容易理解):

    • Model based learning attempts to model the environment, and then based on that model,choose the most appropriate policy.
    • Model-free learning attempts to learn the optimal policy in one step。

    价值函数Q-function介绍

    首先我们先来定义Q-function:
    Q(s,a)=\mathbb{E}(G_t),其中G_t=R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+ \cdots
    Q-function 有两个输入,其中一个是状态s,还有一个是在当前状态下agent执行的动作a。我们希望用Q-function来表示agent在状态s下采取动作a后未来可以获得的总奖励的期望。

    策略Policy介绍

    首先,我们要知道强化学习它的最终目标,就是给定任意的状态,我要让agent在那个状态下,采取一个最优的行动。
    所以,agent需要一个策略policy\pi (s)来指导它做行动。
    当然,很容易得到最优的策略定义是\pi ^*(s)=argmax _aQ(s,a)

    Deep Q Networks介绍

    这里谈一下为什么要用到DQN呢,就是我们现实中的任务,基本上是有很多状态的,比如一个游戏,每一帧,它都是一个状态,而且每一帧包含的信息都是高维度的信息,想把这些状态和对应的Q值存下来几乎不可能,所以我们用神经网络来映射状态到Q值的关系。


    DQN模型

    左边的模型把一个状态和一个可能的动作作为输入,得到相应的Q值。这个模型的问题是,如果我们现在想要使用我们的策略,为了得到最优的Q值,我们必须循环的输入对应的状态和所有可能的行动,然后找到最大的Q值。这显然是不合理且费时的。
    为了解决该问题,我们介绍右边的模型,现在我们只输入状态,DQN将会计算所有可能行动的Q值,这意味着,如果我们想在给定状态下采取行动,我们只需将状态反馈给网络,它就会返回所有的Q值。
    这两个情况都可以根据下方的Q-loss来更新网络的参数。

    关于DQN的具体细节,一些技巧和设置可以阅读该文章(Nature 2015 DQN)(https://web.stanford.edu/class/psych209/Readings/MnihEtAlHassibis15NatureControlDeepRL.pdf)

    相关文章

      网友评论

          本文标题:强化学习(Q-funcation,DQN)基本介绍

          本文链接:https://www.haomeiwen.com/subject/rlawxhtx.html