一、背景
DeepMind2013年的论文《Playing Atari with Deep Reinforcement Learning》指出:从高维感知输入(如视觉、语音)直接学习如何控制 agent 对强化学习(RL)来说是一大挑战。
之前很多RL算法依赖于手工选取的特征和线性函数逼近(对value function(值函数) 或 policy进行逼近)。但这些系统都依赖于特征的选取质量。
深度学习(DL),尤其是CNN(卷积神经网络),可以很好的提取图像的高维特征, 那么我们很自然的想到是否可以将其应用于强化学习(RL)上?
二、DL和RL结合的挑战
那么很自然,我们需要关注DL和RL的结合有哪些挑战:
- 深度学习方法的成功应用案例大部分都具备很好的数据集标签(labels),而RL没有明确的标签,只能通过一个有延迟(也可能有噪声)的reward来学习。
- 另外,深度学习一般假设其样本都是独立同分布的,但在RL中,通常会遇到一段相关度很高的状态量(state),且状态的分布也不相同。
- 过往的研究表明,使用非线性网络表示值函数时出现网络不稳定,收敛困难等问题。
三、DQN的解决方案
DQN将卷积神经网络(CNN)与Q学习结合起来,通过以下方法,对DL与RL结合存在的问题进行解决:
- 采用Q learning的目标值函数来构造DL的标签,从而构造DL的loss function;
- .采用了记忆回放(experience replay mechanism) 来解决数据关联性问题;
- 使用一个CNN(MainNet)产生当前Q值,使用另外一个CNN(Target)产生Target Q值。(在2015年DeepMind的论文Human-level Control Through Deep Reinforcement Learning新版DQN中采用)
3.1 loss function 构造
RL原理此不赘述,Q learning的更新方程如下:
Q ( s , a ) = Q ( s , a ) + α [ r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s,a) = Q(s,a)+\alpha[r+\gamma \max_{a'}Q(s',a')-Q(s,a)] Q(s,a)=Q(s,