深度Q网络(Deep Q-Network, DQN)是强化学习中将Q-learning与深度学习结合的经典算法,由DeepMind在2013年提出,并在Atari游戏上实现了超越人类的表现。以下是DQN的核心要点:
1. 基础概念
- Q-learning:一种值函数方法,通过维护Q表(状态-动作对的预期累积奖励)选择动作。但在高维状态(如图像)下,Q表难以存储。
- DQN创新:用神经网络(称为Q网络)替代Q表,输入状态,输出每个动作的Q值,解决高维问题。
2. 关键组件
(1) 经验回放(Experience Replay)
- 作用:打破数据相关性,提高样本效率。
- 机制:将智能体的经历(状态、动作、奖励、下一状态)存入记忆库,训练时随机抽取批次数据。
- 优势:减少连续样本间的相关性,稳定训练。
(2) 目标网络(Target Network)
- 作用:缓解Q值估计的波动。
- 机制:使用一个独立的目标网络(定期更新)计算TD目标值,而非当前Q网络。
- 更新方式:每隔固定步数将主网络参数复制到目标网络(或软更新)。
3. 算法流程
- 初始化:创建主Q网络和目标Q网络(参数相同),空的经验回放池。
- 交互与环境:
- 根据当前状态,用ε-greedy策略选择动作(探索与利用平衡)。
- 执行动作,获得奖励和下一状态,存储经验到回放池。
- 训练:
- 从回放池随机采样批次数据。
- 计算TD目标:( y = r + \gamma \max_{a'} Q_{\text{target}}(s', a') )。
- 最小化损失函数:( L = \mathbb{E}[(y - Q_{\text{main}}(s, a))^2] )。
- 更新目标网络:定期同步主网络参数到目标网络。
4. 数学核心
- 损失函数:
[
L(\theta) = \mathbb{E}{(s,a,r,s') \sim D} \left[ \left( r + \gamma \max{a'} Q_{\text{target}}(s', a'; \theta^-) - Q_{\text{main}}(s, a; \theta) \right)^2 \right]
]
其中 ( \theta ) 是主网络参数,( \theta^- ) 是目标网络参数。
5. 改进与变体
- Double DQN:解耦动作选择与评估,减少过估计。
- Dueling DQN:分离状态值函数和优势函数,提升策略评估。
- Prioritized Experience Replay:优先回放高TD误差的经验,加速学习。
6. 优缺点
- 优点:
- 处理高维状态空间(如图像)。
- 经验回放提升数据效率。
- 目标网络稳定训练。
- 缺点:
- 对超参数敏感(如学习率、回放池大小)。
- 难以处理连续动作空间(需后续算法如DDPG)。
7. 应用场景
- 游戏AI(如Atari、星际争霸)。
- 机器人控制。
- 资源调度等离散决策问题。
DQN是深度强化学习的里程碑,后续算法(如Rainbow)通过整合多种改进进一步提升了性能。理解DQN是掌握现代强化学习的重要基础。