机器学习【4】:强化学习(Reinforcement Learning),Q-learning方法

一. 强化学习

     什么是强化学习,首先我们要了解强化学习的几个重要概念,也是强化学习四要素:状态(state)、动作(action)、策略(policy)、奖励(reward)

         机器学习【4】:强化学习(Reinforcement Learning),Q-learning方法_第1张图片

    说简单一点,强化学习其实就是实现了智能体自发的与环境进行交互并且达到我们所希望的状态。这个过程就会产生很多动作,下一步动作是依靠上一步动作以及当前状态,上一步状态,以及实施动作之后的奖励所决定的

    在周志华的西瓜书中说到一点:

    智能体处在一个环境中,每个状态为智能体对当前环境的感知;智能体只能通过动作来影响环境,当智能体执行一个动作后,会使得环境按某种概率转移到另一个状态;同时,环境会根据潜在的奖赏函数反馈给智能体一个奖赏。

 

二. Q-learning算法

    1. 简介

    Q-learning算法是强化学习的一个算法模型。接下来详细介绍下这个算法。

    动作值函数(或称「Q 函数」)有两个输入:「状态」和「动作」。它将返回在该状态下执行该动作的未来奖励期望。

   机器学习【4】:强化学习(Reinforcement Learning),Q-learning方法_第2张图片

    Q函数的更新公式为:

    

     分别代表的含义为:新的Q函数 = 当前的Q + 学习率*(奖励+discount_rate*新状态所支持的所有可能动作中能产生最大价值的dong动作-当前的Q函数)       

     其中:
     S 代表当前的状态,a 代表当前状态所采取的行动,
     S’ 代表这个行动所引起的下一个状态,a’ 是这个新状态时采取的行动,
     r 代表采取这个行动所得到的奖励 reward,γ 是 discount 因子,

     由公式可以看出 s,a 对的 Q 值等于 即时奖励 + 未来奖励的 discount。γ 决定了未来奖励的重要性有多大,比如说扫雷游戏,我们到了一个状态,它虽然离目标状态远了一些,但是却离炸弹远了一些,那这个状态的即时奖励就很小,但是未来奖励就很多。

     2. Q-learning算法流程

     机器学习【4】:强化学习(Reinforcement Learning),Q-learning方法_第3张图片

     在训练初期,由于我们的算法模型没有任何经验,所以我们不能基于已有的经验去做判断。

     这个时候涉及到两个概念,一个叫探索,一个叫利用(exploration/exploitation)。
     思路就是,在一开始,我们将使用 epsilon 贪婪策略:
       我们指定一个探索速率「epsilon」,一开始将它设定为 1。这个就是我们将随机采用的步长。在一开始,这个速率应该处于最大值,因为我们不知道 Q-table 中任何的值。这意味着,我们需要通过随机选择动作进行大量的探索。

      然后我们会生成一个随机数。如果这个数大于 epsilon,那么我们将会进行「利用」(这意味着我们在每一步利用已经知道的信息选择动作)。否则,我们将继续进行探索。在刚开始训练 Q 函数时,我们必须有一个大的 epsilon。随着智能体对估算出的 Q 值更有把握,我们将逐渐减小 epsilon。

 

你可能感兴趣的:(#,机器学习算法)