传统的Q-learning,我们使用表格来存储每一个状态 state, 和在这个 state 下,每个行为 action 所拥有的 Q 值。传统的Q-learning不适用状态多的情况。
a1 | a2 | |
s1 | Q(s1,a1) | Q(s1,a2) |
s2 | Q(s2,a1) | Q(s2,a2) |
...... | ...... | ...... |
DQN将神经网络和Q-learning结合。 我们可以将状态和动作当成神经网络的输入, 然后经过神经网络分析后得到该动作的 Q 值; 还有一种形式的是这样, 我们也能只输入状态值, 输出所有的动作值, 然后按照 Q learning 的原则, 直接选择拥有最大值的动作当做下一步要做的动作。莫烦老师的课程采用第二种形式。
DQN两大利器:
Experience replay:每次 DQN 更新的时候, 我们都可以随机抽取一些之前的经历进行学习
Fixed Q-targets:在 DQN 中使用到两个结构相同但参数不同的神经网络, 预测 Q 估计 的神经网络具备最新的参数, 而预测 Q 现实 的神经网络使用的参数则是很久以前的
具体算法如下: