Q-Learning可以很好的解决迷宫问题,但这终究是个小问题,它的状态空间和动作空间都很小。而在实际的情况下,大部分问题都有巨大的状态空间或动作空间,建立Q表,内存是不允许的,而且数据量和时间开销也是个问题。
NIPS 2013 Playing Atari with Deep Reinforcement Learning
Nature 2015 Human-level Control through Deep Reinforcement Learning
我们可以使用神经网络来表示我们的 Q 函数,每层网络的权重就是对应的值函数,取 4 四帧游戏图像作为 state,输出每个 action 对应的 Q 值。如果我们想要执行 Q 值的更新,或者选择具有最高 Q 值的对应的 action,我们只需经过整个网络一次就能立刻获得任意动作对应的 Q 值。DQN的原始输入为连续的4帧图像,不只使用一帧画面是为了感知环境的动态性。
左图:简单的DQN模型,右图:DeepMind改进的DQN模型
假设一帧图像有84个像素点,那么四帧图像就有84844个像素。每一个像素点的取值是0-255可能,所有的可能性就有256^84844。
DeepMind使用的网络结构如下: