“在上一章中,我们了解了函数逼近如何帮助强化学习代理在不同状态间泛化知识,从而克服了表格方法在大型状态空间中的局限性。虽然线性函数逼近带来了一些改进,但许多问题涉及状态与价值之间高度复杂的关系,线性模型难以捕捉这些关系。设想这样的任务,例如直接从屏幕像素玩视频游戏,或者根据高维传感器输入控制机器人。这里的状态空间极其庞大,最优策略可能取决于输入中复杂的非线性模式。”为了处理大规模且包含复杂非线性模式的问题,深度神经网络展现出其作用。神经网络擅长从高维输入中学习复杂的层次化特征和非线性映射。通过使用神经网络来逼近动作价值函数 $Q(s, a)$,我们能够在视觉信息丰富或状态表示高度复杂的环境中,学习到有效的策略。我们称这种方法为深度Q学习(Deep Q-Learning),所用的神经网络通常被称为深度Q网络(DQN)。我们不将Q值存储在表格中或使用简单的线性函数,而是使用一个神经网络,其参数(权重和偏置)统称为 $\theta$。这个网络将状态表示 $s$ 作为输入,并输出该状态下每个可能动作 $a$ 的Q值估计。一种常见的架构是输出一个Q值向量,每个动作一个条目:$Q(s, \cdot; \theta) \approx Q^*(s, \cdot)$此处,$Q(s, \cdot; \theta)$ 代表网络在给定参数 $\theta$ 下对状态 $s$ 的输出,旨在逼近真实的最佳动作价值函数 $Q^*(s, \cdot)$。例如,如果一个代理正在处理游戏屏幕的图像(状态 $s$),DQN可能会输出按下左键、按下右键、跳跃或射击的预期累积未来奖励。因此,目标是训练网络,这意味着我们需要找到参数 $\theta$,使网络的输出 $Q(s, a; \theta)$ 能够良好逼近最优 $Q^*(s, a)$。我们如何做到这一点呢?我们可以采用Q学习的原理和贝尔曼最优方程。回顾一下,标准的Q学习更新依赖于TD目标:$y = R + \gamma \max_{a'} Q(S', a')$。这个目标代表了基于获得的奖励 ($R$) 和从下一状态 ($S'$) 估计的最大未来价值的最优Q值估计。在深度Q学习中,我们将网络的训练视为一个监督学习问题。对于给定的转换 $(S, A, R, S')$,网络预测当前的Q值 $Q(S, A; \theta)$。我们使用奖励 $R$ 和网络自身的对下一状态 $S'$ 最大Q值的估计来计算目标值 $y$。理想情况下,我们希望网络的预测 $Q(S, A; \theta)$ 与这个目标 $y$ 匹配。我们可以定义一个损失函数,用于衡量预测与目标之间的差异。一个常见的选择是均方误差(MSE):$$ L(\theta) = \left( y - Q(S, A; \theta) \right)^2 $$$$ L(\theta) = \left( \underbrace{R + \gamma \max_{a'} Q(S', a'; \theta)}{\text{目标Q值 (y)}} - \underbrace{Q(S, A; \theta)}{\text{预测Q值}} \right)^2 $$我们的目标是最小化关于网络参数 $\theta$ 的这个损失函数。我们可以通过使用梯度下降算法来实现这一点,例如随机梯度下降(SGD)或其变体如Adam。通过反复采样转换 $(S, A, R, S')$ 并调整网络权重 $\theta$ 以减少损失,网络逐渐学会逼近最优动作价值函数。这种结合前景看好。它使我们能够将Q学习应用于那些由于状态空间庞大的规模和复杂性而以前无法处理的问题。然而,在标准RL循环中直接应用神经网络带来了一系列特有的挑战。代理与环境交互生成的数据具有序列化、相关联的特性,这违反了监督学习中常做的独立性假设。此外,目标值 $y$ 本身依赖于正在更新的网络参数 $\theta$,这可能导致训练期间的不稳定性。接下来的章节将讨论这些挑战,并介绍为DQN开发的核心技术:经验回放和目标网络,这些技术旨在稳定学习过程。