使用表格来存储每一个状态 state, 和在这个 state 每个行为 action 所拥有的 Q 值. 而当今问题是在太复杂, 状态可以多到比天上的星星还多(比如下围棋). 如果全用表格来存储它们, 恐怕我们的计算机有再大的内存都不够, 而且每次在这么大的表格中搜索对应的状态也是一件很耗时的事. 不过, 在机器学习中, 有一种方法对这种事情很在行, 那就是神经网络.
问题1:
两种DQN的设计想法:
我们可以将状态和动作当成神经网络的输入, 然后经过神经网络分析后得到动作的 Q 值, 这样我们就没必要在表格中记录 Q 值, 而是直接使用神经网络生成 Q 值.
还有一种形式的是这样, 我们也能只输入状态值, 输出所有的动作值, 然后按照 Q learning 的原则, 直接选择拥有最大值的动作当做下一步要做的动作.
根据看了大量文章,一般使用第一种:生成q表的DQN
问题2:
Nature DQN:应该是两个网络
如图:https://blog.csdn.net/JohnJim0/article/details/109557173
如图:https://blog.csdn.net/qq_41427568/article/details/87614031
如图:https://zhuanlan.zhihu.com/p/435128189
以上几张图都强调了DQN有两个网络,一个target网络产生标签,用来给另一个网络训练。(本来是不需要target网络的,但是这样的话,每次的训练标签都会变,参数不稳定,如下:https://zhuanlan.zhihu.com/p/110769361 :固定Q目标(Fixed Q-targets))
如图:两个q网络更新一个就行 https://zhuanlan.zhihu.com/p/110620815