DQN算法

作者: 西部的玫瑰 | 来源:发表于2019-10-30 11:10 被阅读0次

    强化学习概要

    定义

    1、环境指的是智能体执行动作时所处的场景,而智能体则表示强化学习算法。环境首先向智能体发送一个状态(S),然后智能体基于其知识采取动作(A)来响应该状态。之后,环境发送下一个状态,并把奖励(R)返回给智能体。智能体用环境所返回的奖励来更新其知识,对上一个动作进行评估。这个循环一直持续,直到环境发送终止状态来结束这个事件。

    2、策略(π):智能体根据当前状态决定下一步动作的策略。

    3、价值(V):折扣(discount)下的长期期望返回,与R代表的短期返回相区分。Vπ(s) 则被定义为策略π 下当前状态s的期望长期返回值。

    4、Q 值或行动值(Q):Q 值与价值相似,不同点在于它还多一个参数,也就是当前动作a。Qπ(s,a) 指当前状态s在策略π下采取动作a的长期回报。

    无模型(Model-free)与基于模型(Model-based)

    Model-based:模型学习从当前状态s0 和动作 a 到下一个状态s1 的转移概率T(s1(s0,a))。如果成功地学习了转移概率,那么智能体将知道给定当前状态和动作时,进入特定状态的可能性。

    Model-free:无模型算法依赖试错来更新知识。因此,它不需要空间来存储所有状态和动作的组合。

    在策略(on-policy)与离策略(off-policy)

    on-policy:在策略智能体基于当前动作 a 学习价值。

    off-policy:离策略智能体基于局部最优的贪心行为(greedy action)a* 学习价值。

    DQN

    定义

    强化学习算法可以分为三大类:value based, policy based 和 actor critic。常见的是以DQN为代表的value based算法,这种算法中只有一个值函数网络,没有policy网络,以及以DDPG,TRPO为代表的actor-critic算法,这种算法中既有值函数网络,又有policy网络。

    而已Q-Learning对于任意的(Q(s,a)我们都可以由公式求出它的值函数,即用一个查询表lookup table来表示值函数不同的是,DQN使用深度神经网络值函数近似Q ̂(s,a,ω)≈Q_π (s,a)。

    且DQN分离目标网络,由于Q 值与 next Q 使用同一个网络时,是在一边更新一边学习,会不稳定。所以,这个算法其实就是将神经网络拆分成2 个,一个 Q网络,用于同步更新Q 值,另一个是 target 网络,用于计算目标 Q 值,并且每隔一段时间,自动将最新的Q 网络的权值同步给 target 网络。

    算法原理

    强化学习是个反复迭代的过程,在这个过程中,强化学习要不断的根据策略来求值函数,并依据所求得的值函数更新策略网络。

    DQN是通过神经网络近似求得值函数,具体是神经网络的输入是一个observation(即state,s),输出是值函数Q(s,a)(a是action a)。通过神经网络得到值函数,DQN使用ϵ−greedy策略来输出action。步骤是环境先给出一个obs,智能体根据神经网络求得关于这个obs的所有值函数Q(s,a),再根据ϵ−greedy策略选择action并做出决策,环境接收到此action后会给出一个奖励Rew及下一个obs。这是一个step。此时我们根据Rew去更新值函数网络的参数。接着进入下一个step。如此循环下去,直到我们训练出了一个好的值函数网络。

    算法流程

    相关文章

      网友评论

        本文标题:DQN算法

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