美文网首页
强化学习 12 - 什么是 DQN

强化学习 12 - 什么是 DQN

作者: 不会停的蜗牛 | 来源:发表于2018-12-18 23:58 被阅读263次

    前面我们有一篇文章介绍了 q learning,
    也用 Deep Q Network 做了一个小游戏,
    但是还没有详细的讲DQN的理论,今天我们就来看一下它的概念。

    当状态空间比较小的情况下用 q learning 还是可以的,但是在复杂的情况下,例如一个视频游戏,它的状态空间非常大,如果迭代地计算每一个 q 值是非常耗费时间耗费资源的。
    这个时候我们就想不是直接的用迭代的方式去计算扣只,而是找到一个最优的 q 函数。
    找这个最优的q函数的方法就是用神经网络。
    我们用一个深度神经网络来为每一组状态行为估计它们的 q 值,进而近似的估计出最优的 q 函数。
    将 Q learning 和深度神经网络相结合就是 DQN

    例如我们有一个深度神经网络,
    它的输入是给定环境下的状态,
    它的输出是这个状态时可以采取的每个行动的 q 值。
    这个网络的目标是估计出最优Q函数,
    而且这个函数还要满足 bellman equation ,
    网络的损失函数是,比较输出的 q 值和方程右边的目标 q 值的差距,
    然后用优化算法使这个损失越来越小。

    在 q learning 中是用 bellman equation 来计算和更新Q的,
    在神经网络中也是用 bellman equation 估计 q 值来找到最佳Q函数,

    很多 DQN 只是一些卷积层后面跟着一个全连接层,全连接层的输出就是每个行为的q值。
    例如,如果有4个行为,那么最后一层就会有4个节点,每个节点代表1个行为,这个节点的输出值就是这个行为相应的q值。
    不过在输出层是没有激活函数的,因为我们想要的是没有经过变换的q值

    学习资料:
    https://www.youtube.com/watch?v=wrBUkpiRvCA&t=554s
    https://medium.com/@awjuliani/simple-reinforcement-learning-with-tensorflow-part-4-deep-q-networks-and-beyond-8438a3e2b8df
    https://medium.com/@jonathan_hui/rl-dqn-deep-q-network-e207751f7ae4

    相关文章

      网友评论

          本文标题:强化学习 12 - 什么是 DQN

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