![v2-13f5ed835abf82343c6dd05a2c4de508_1440w.jpg?source=172ae18b](http://img-03.proxy.5ce.com/view/image?&type=2&guid=1dbef51c-bd2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-13f5ed835abf82343c6dd05a2c4de508_1440w.jpg?source=172ae18b)
前言:
本文算是个人笔记,如有不足或需要讨论的,欢迎交流。
有大佬知道如何搭网络的(如多少层和每层多少个神经元等参数怎么调),求请教。
了解DQN必须从Q-learning讲起。不过先说明一点,不论是DQN还是Q learnging 都是基于值的方法,至于基于值和基于策略的区别,我打算放在下一章。(因为这不是我要讲的重点)
Q-learning不会的话可以去翻下我的前一篇,
宇宙大魔王:强化学习:Q-Learning详解zhuanlan.zhihu.com![v2-d588cb01860b8c90a27c4594bf94c897_ipico.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=1dbef51c-bd2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-d588cb01860b8c90a27c4594bf94c897_ipico.jpg)
(说实话,本文主要也是承接前文来写的,如果有不懂的地方建议先看下前文)
DQN与Q learning最大的区别在于Q表,在Q learning中这是一个表,输入(s,a)即可查询对应的Q值,在DQN中,这是一个由神经网络替代的函数,输入(s,a)即可输出对应Q值。
使用DQN的原因:在动作a的种类少的时候,可以使用一张表表示。每次选择a都是通过比较Q值,选Q值最大的a。但当a变多的时候,这种比较就变得相当耗时。比如Q learning可以接受 A(向左,向右),但很难接受 A(向左多少米,向右多少米)这种连续动作。
如何获得/定义Q函数呢,和Q learning一样,两种基本方法--蒙特卡洛(MC)和时间差分法(TD)。
如何去更新Q函数呢?用梯度上升/下降的方法。
先说下如何去更新网络。
Q函数定义为Q(s,a|θ),参数为状态s、动作a,以及定义网络的各种未知数θ,输出为此状态的Q值。
我们当前状态s,进行动作a,对应Q值为Q(s,a),我们在经过MC或者TD方法获得的新的奖励所更新的Q值设为Q'。ps:当然是求偏导![]()
很明显,这里的就相当于监督学习中的loss,为什么要这么定义呢?我打算放到文章末尾。
蒙特卡洛(MC):
- 0:初始化Q函数(神经网络)
- 1:随机选取一个状态S开始游戏
- 2:直到游戏终或者行动步数到达最大时,获得一个(s,a)序列,以及每个对应的奖励。
- 3:对序列中的(s,a),利用(s,a)所能获得的奖励值R以及本身的(s,a)值,计算新的Q值,写为Q',利用Q'更新Q网络的参数θ。
- 4:重复1步骤,直到收敛(即Q值不再变化,或变化很小),但要求每个状态s都能够被选到。
时间差分法(TD)
- 1:随机选取一个状态S开始游戏
- 2:此s状态下选取a(根据贪婪 或者 ε-贪婪),并在动作a的状态下获得s',即下一状态,继续在s'使用策略获得a'。
- 3:使用(s,a)状态下的反馈奖励r以及(s',a')的未来奖励(Q值)计算(s,a)的新的Q值(Q'),利用Q'更新Q网络的参数θ。
- 4:重复1步骤,(但要求每个状态s都能够被选到。)
为什么设置为'loss':
此处要提及Q-learning的收敛的定义是什么:在一个静态任务中,Q表存在一个或多个确定的最优解。 ps:找不到原文,按照个人理解说的。
举个例子,在一个棋盘里,左上角是起点,右下角是终点,所有格子都可以走,但一次只能走一格。这些条件都不会改变,所以最优的走法之一就是沿着边向下然后向右,当然同路程的走法也还有很多,但所消耗的步数都是相同的,所以都是一样的最优解。
Q'为我们更新后的值,Q为我们目前的值,如果在更新到某次之后,Q'==Q的话,那就说明Q不会再改变,那也就意味着其达到最优解之一,即为收敛。所以更新以Q'-Q(s,a)为loss,使用梯度方法使Q逼近Q'。
目前为止,DQN所要讲的都讲完了。接下来就是police gradient,这是一种policy-base的方法。
如果对你有帮助,请点个赞,如果有问题,请提出。
照常:
![v2-7982b35229fb88509a3774680fee4f49_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=1dbef51c-bd2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-7982b35229fb88509a3774680fee4f49_b.jpg)