深度Q网络(DQN)中的目标网络与经验回放机制详解
1. 问题背景
深度Q网络(DQN)将Q学习与深度学习结合,用于解决高维状态空间的强化学习问题。但直接将神经网络用于Q学习会面临两个关键挑战:
- 数据相关性:连续的状态转移样本高度相关,导致神经网络训练不稳定。
- 目标非平稳性:Q网络的更新会同时影响当前Q值和目标Q值,如同“移动的目标”,导致训练震荡。
2. 经验回放(Experience Replay)机制
动机:消除样本间的时序相关性,提高数据利用率。
实现步骤:
- 存储经验:智能体每一步交互的转移样本(状态\(s_t\),动作\(a_t\),奖励\(r_t\),下一状态\(s_{t+1}\),终止标志\(done\))存入回放缓冲区(Replay Buffer)。
- 随机采样:训练时从缓冲区随机抽取一小批(Mini-batch)样本,打破相邻样本的关联性。
- 重复利用:旧经验可被多次采样,提升数据效率。
数学原理:
传统Q学习更新公式为:
\[Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_t + \gamma \max_{a'} Q(s_{t+1}, a') - Q(s_t, a_t) \right] \]
在DQN中,损失函数改为均方误差形式:
\[L(\theta) = \mathbb{E}_{(s,a,r,s') \sim \text{Buffer}} \left[ \left( r + \gamma \max_{a'} Q_{\theta}(s', a') - Q_{\theta}(s, a) \right)^2 \right] \]
其中\(\theta\)为Q网络参数,经验回放使得期望计算基于独立同分布样本,收敛更稳定。
3. 目标网络(Target Network)机制
动机:解决目标Q值随当前Q网络频繁变化的问题。
实现步骤:
- 复制网络:创建与当前Q网络结构相同但参数独立的目标网络\(Q_{\theta^-}\)。
- 固定目标:在多次更新中保持目标网络参数\(\theta^-\)不变,计算目标Q值:
\[\text{目标值} = r + \gamma \max_{a'} Q_{\theta^-}(s', a') \]
- 定期同步:每经过\(C\)步训练,将当前Q网络的参数复制给目标网络(\(\theta^- \leftarrow \theta\))。
数学原理:
损失函数修正为:
\[L(\theta) = \mathbb{E}_{(s,a,r,s')} \left[ \left( r + \gamma \max_{a'} Q_{\theta^-}(s', a') - Q_{\theta}(s, a) \right)^2 \right] \]
目标网络提供稳定的监督信号,减少当前Q值与目标Q值的耦合震荡。
4. 联合工作机制
在DQN训练循环中:
- 智能体根据ε-贪婪策略与环境交互,收集经验存入缓冲区。
- 从缓冲区采样一批经验,用目标网络计算目标Q值。
- 通过梯度下降最小化损失函数,更新当前Q网络参数\(\theta\)。
- 每\(C\)步同步一次目标网络参数。
5. 关键优势
- 经验回放:降低方差,提高样本效率。
- 目标网络:延迟目标更新,提升训练稳定性。
两者结合使DQN在Atari等复杂任务中实现突破性进展。