【限时免费】 Easy-RL项目深度Q网络(DQN)原理详解

Easy-RL项目深度Q网络(DQN)原理详解

【免费下载链接】easy-rl 强化学习中文教程(蘑菇书🍄),在线阅读地址:https://datawhalechina.github.io/easy-rl/ 【免费下载链接】easy-rl 项目地址: https://gitcode.com/datawhalechina/easy-rl

深度Q网络(Deep Q-Network, DQN)是深度强化学习领域的重要算法,它将深度学习与Q学习相结合,解决了传统强化学习在连续状态空间中的维度灾难问题。本文将全面解析DQN的核心原理及其关键技术。

价值函数近似:从表格到神经网络

传统Q学习使用表格存储每个状态-动作对的Q值,但在连续状态空间或状态数量巨大时,这种方法面临存储和计算的双重挑战。DQN采用价值函数近似方法,使用神经网络来拟合Q函数:

$$ Q_{\phi}(\boldsymbol{s}, \boldsymbol{a}) \approx Q_{\pi}(\boldsymbol{s}, \boldsymbol{a}) $$

其中$\phi$是神经网络的参数。这种表示方式具有以下优势:

  1. 参数共享:相似状态自动获得相近的Q值
  2. 泛化能力:可处理未见过的状态
  3. 存储高效:无需存储所有状态-动作对

评论员视角:状态价值与动作价值

在DQN框架中,神经网络充当"评论员"角色,评估策略的好坏。评论员有两种形式:

状态价值函数V(s)

状态价值函数$V_{\pi}(s)$评估在状态$s$下,遵循策略$\pi$所能获得的期望累积奖励。其特点包括:

  1. 输入为状态,输出为标量值
  2. 评估与特定策略$\pi$绑定
  3. 可通过蒙特卡洛或时序差分方法训练

蒙特卡洛方法需要完整轨迹,计算从状态到终点的实际回报作为目标值。时序差分(TD)方法则基于相邻状态的估计值进行更新:

$$ V_{\pi}(s_t) = V_{\pi}(s_{t+1}) + r_t $$

两种方法各有优劣:蒙特卡洛方差大但偏差小,TD方差小但会传播估计误差。

动作价值函数Q(s,a)

动作价值函数$Q_{\pi}(s,a)$评估在状态$s$采取动作$a$后,遵循策略$\pi$的期望累积奖励。其实现方式有两种:

  1. 输入状态和动作,输出单个Q值(适用于连续动作)
  2. 输入状态,输出所有可能动作的Q值(仅适用于离散动作)

Q函数的关键性质是允许策略改进:给定Q函数,我们可以构造更优的策略$\pi'$:

$$ \pi'(s) = \arg\max_a Q_{\pi}(s,a) $$

数学上可以证明$V_{\pi'}(s) \geq V_{\pi}(s)$,即新策略不劣于原策略。

DQN三大关键技术

1. 目标网络(Target Network)

DQN使用两个网络:

  • 主网络$Q$:参数实时更新
  • 目标网络$\hat{Q}$:定期从主网络同步参数

更新公式为: $$ Q(s_t,a_t) = r_t + \gamma \hat{Q}(s_{t+1},\pi(s_{t+1})) $$

这种方法稳定了训练过程,类比"猫追老鼠":

  • 猫(主网络)频繁移动
  • 老鼠(目标网络)偶尔移动
  • 固定目标使优化更稳定

2. 探索机制

为避免策略陷入局部最优,DQN采用以下探索策略:

ε-贪心策略

以$1-\varepsilon$概率选择最优动作,以$\varepsilon$概率随机探索。通常$\varepsilon$随时间衰减。

玻尔兹曼探索

动作选择概率与$e^{Q(s,a)/T}$成正比,温度系数$T$控制探索程度:

  • $T$大:均匀探索
  • $T$小:偏向高Q值动作

3. 经验回放(Experience Replay)

经验回放机制包含:

  1. 回放缓冲区:存储大量转移样本$(s_t,a_t,r_t,s_{t+1})$
  2. 随机采样:训练时从缓冲区随机抽取小批量样本

优势包括:

  • 打破样本相关性
  • 提高数据效率
  • 实现异策略(off-policy)学习

DQN训练流程

完整DQN算法流程如下:

  1. 初始化主网络$Q$和目标网络$\hat{Q}$(参数相同)
  2. 初始化回放缓冲区$D$
  3. for 每个episode do
    1. 初始化状态$s$
    2. for 每个时间步 do
      1. 使用ε-贪心策略选择动作$a$
      2. 执行$a$,观察$r$和$s'$
      3. 存储$(s,a,r,s')$到$D$
      4. 从$D$中采样小批量转移
      5. 计算目标值$y = r + \gamma \max_{a'}\hat{Q}(s',a')$
      6. 更新$Q$参数以最小化$(y-Q(s,a))^2$
      7. 定期同步$\hat{Q}=Q$
      8. $s \leftarrow s'$

总结

DQN通过结合深度神经网络与强化学习,解决了传统方法在复杂环境中的局限性。其三大核心技术——目标网络、探索机制和经验回放——共同确保了算法的稳定性和效率。理解这些原理对于掌握深度强化学习至关重要,也为后续更先进的算法如Double DQN、Dueling DQN等奠定了基础。

【免费下载链接】easy-rl 强化学习中文教程(蘑菇书🍄),在线阅读地址:https://datawhalechina.github.io/easy-rl/ 【免费下载链接】easy-rl 项目地址: https://gitcode.com/datawhalechina/easy-rl

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值