强化学习

深度Q网络(deep Q-network, DQN)

/ deep kyoo NET-werk /

深度 Q 网络,即 DQN,是把两个想法——Q学习与深度神经网络——熔铸成「能直接看着屏幕学会玩电子游戏」之物的那次突破。它所解决的问题很直白:经典 Q学习为每一种情形单记一个数字,可一款游戏可能出现的屏幕画面,多到你永远列不完。DQN 用一个神经网络替下了那本不可能的笔记本:网络看着原始像素,为每个按钮估出一个 Q 值——并能推广到它从没见过的画面。

然而,把神经网络生硬地拴到 Q学习上,会炸:训练变得不稳定,常常发散。DQN 真正的贡献,是两个驯服了它的把戏。经验回放把过去的片刻存进一个记忆缓冲区,再从中随机取样来训练,打破了相邻帧之间那种有害的相关性。一个独立的、缓慢更新的目标网络,则为贝尔曼更新提供一个稳定的参照,于是网络不必去追一个每一步都猛地乱晃的目标。两者合起来,才让深度 Q学习真正运转了起来。

在 2013 至 2015 年,DeepMind 展示了单单一个 DQN——同一套算法、同样的结构、同样的设置——仅凭像素与分数,从零学会了几十款雅达利游戏(每款分别训练一份新副本),并在许多款上击败了人类高手。这是「从原始感知出发进行通用学习」的一座里程碑。但要诚实面对它的局限:它需要海量的游玩,远多于任何人类;它在需要长远规划的游戏上束手无策(《蒙特祖玛的复仇》臭名昭著);而且它只在动作是一小撮离散选项时才管用,这就是为什么连续控制需要别的方法。

玩雅达利《打砖块》时,DQN 只看到屏幕像素和分数。它压根不知道什么是「球」或「挡板」,却在数百万帧之中学会了移动挡板、让球不死——甚至自行发现了那个高手才会的诀窍:从一侧凿出通道,把球弹到砖块后面去。

仅凭像素学玩雅达利——靠经验回放和冻结的目标网络撑起来。

DQN 那句招牌「一套算法,玩遍多款游戏」是真的,却极易被夸大:每款游戏都是从零另训一个网络,而非一个网络同时通吃所有。而且它在需要长程规划或奖励稀疏的游戏上栽了大跟头——这恰恰证明,「从像素学习」与「理解这款游戏」并不是一回事。

又称
DQN深度Q网络深度Q網路deep Q-learning