一、深度Q网络(Deep Q-Network,DQN)介绍
1、背景与动机
深度Q网络(DQN)是深度强化学习领域的里程碑算法,由DeepMind于2013年提出。它首次在 Atari 2600 游戏上实现了超越人类的表现,解决了传统Q学习在高维状态空间中的应用难题。DQN在机器人路径规划领域展现出巨大潜力,能够帮助机器人在复杂环境中找到最优路径。
传统Q学习在状态空间维度较高时面临以下挑战:
- Q表无法存储高维状态的所有可能情况
- 特征提取需要手动设计,泛化能力差
- 更新过程容易导致Q值估计不稳定
DQN通过引入深度神经网络作为Q函数的近似器,并采用经验回放和目标网络等技术,有效解决了上述问题。
2、核心思想
DQN的核心思想是使用深度神经网络来近似Q函数,即:
Q ∗ ( s , a ) ≈ Q ( s , a ; θ ) Q^*(s, a) \approx Q(s, a; \theta) Q∗(s,a)≈Q(s,a;θ)
其中, s s s 表示状态, a a a 表示动作, θ \theta θ 表示神经网络的参数。
目标是找到一组参数 θ ∗ \theta^* θ∗,使得网络输出的Q值与实际的Q值尽可能接近。通过不断与环境交互收集数据,使用梯度下降法优化网络参数。
3、算法流程
DQN的算法流程可以概括为以下步骤:
-
初始化:
- 初始化Q网络参数 θ \theta θ
- 初始化目标网络参数 θ − \theta^- θ− 并与Q网络参数同步
- 初始化经验回放缓冲区 D D D
-
与环境交互:
- 在当前状态 s s s 下,根据 ϵ \epsilon ϵ-贪婪策略选择动作 a a a
- 执行动作 a a a,观察奖励 r r r 和下一个状态 s ′ s' s′
- 将经验 ( s , a , r , s ′ ) (s, a, r, s') (s,a,r,s′) 存入经验回放缓冲区 D D D
-
采样与更新:
- 从经验回放中随机采样一批数据 { ( s i , a i , r i , s i ′ ) } \{(s_i, a_i, r_i, s_i')\} {(si,ai,ri,si′)}
- 计算目标Q值:
y i = { r i if s i ′ is terminal r i + γ max a ′ Q ( s i ′