强化学习(2)TD Learning
由于我们的目标是需要一个QQQ函数,因此可以使用神经网络来作为QQQ函数,比如超级玛丽游戏中,他的行为可以有:
- up
- right
- left
那么此时我们的神经网络可以设计为:输入是某个时刻的图像(假定当时游戏的图像就是状态),该图像可以使用CNN直接提取特征,然后后续添加网络,使得输出为3个值,分别为每个行为的概率。
这样我们就实现了一个DQN,在这个过程中,TD Learning是我们在DQN中常用的优化算法
DQN 中的时序差分学习(TD Learning)
时序差分学习(TD Learning)是 深度 Q 网络(DQN)算法的核心驱动力。它为 DQN 提供了训练信号(Loss Function),使神经网络能够在没有传统标签数据的情况下自我学习,逼近最优的**动作价值函数 Q∗(s,a)Q^*(s, a)Q∗(s,a)。
1. 从 Q-Learning 到 DQN
传统的 Q-Learning 使用一个 Q 表(Q-Table)来存储每个状态-动作对的价值。当状态空间过大或连续时,DQN 引入了深度神经网络来代替这个表格。
- Q 网络:DQN 使用一个神经网络 Q(s,a;θ)\mathbf{Q}(s, a; \theta)Q(s,a;θ) 来估计 Q 值,其中 θ\thetaθ 是网络的权重(参数)。
2. TD 误差与损失函数
TD 学习的目标是最小化 时序差分误差(Temporal Difference Loss)。这个误差衡量了当前 Q 值的预测与通过贝尔曼方程得到的新 Q 值(TD 目标)之间的差距。
DQN 使用 TD 误差的平方作为其损失函数(类似于监督学习中的均方误差 MSE),并通过梯度下降来优化网络权重 θ\thetaθ:
Loss(θ)=E[(Rt+γmaxa′Q(St+1,a′;θ−)⏟TD目标(TargetQ)−Q(St,At;θ)⏟预测Q值(CurrentQ))2]Loss(\theta) = \mathbb{E} \left[ \left( \underbrace{R_{t} + \gamma \max_{a'} Q(S_{t+1}, a'; \theta^{-})}_{{TD 目标(Target Q)}} - \underbrace{Q(S_t, A_t; \theta)}_{{预测 Q 值(Current Q)}} \right)^2 \right]Loss(θ)=E TD目标(TargetQ) Rt+γa′maxQ(St+1,a′;θ−)−预测Q值(CurrentQ) Q(St,At;θ) 2
3. 核心机制:TD 目标(TD Target)
TD 目标是 Q-Learning 的精髓,它利用了当前学习到的价值函数来估计一个更准确的未来价值。
对于TD Target的公式可以很容易得出,就是ttt时刻的价值函数GGG
G=Rt+γ⋅Rt+1+γ2⋅Rt+2+... G=R_t+\gamma · R_{t+1} + \gamma ^ 2 · R_{t+2} + ... G=Rt+γ⋅Rt+1+γ2⋅Rt+2+...
将后面的γ\gammaγ进行抽取,然后整理会发现后面的表达式为t+1t+1t+1时刻的价值函数,那么就有:
G=Rt+γ⋅Gt+1 G = R_t+\gamma · G_{t+1} G=Rt+γ⋅Gt+1
然后为了消除后续随机性,我们对其进行求期望,就得到了上面的表达式(上面的表达式中有权重θ\thetaθ我在推导时候进行简化了而已)
TD 目标=即时奖励+γ×下一状态的最大 Q 值估计\text{TD 目标} = \text{即时奖励} + \gamma \times \text{下一状态的最大 Q 值估计}TD 目标=即时奖励+γ×下一状态的最大 Q 值估计
| 组成部分 | 符号 | 作用 |
|---|---|---|
| 即时奖励 | Rt+1R_{t+1}Rt+1 | 智能体在当前步获得的实际奖励。 |
| 折扣因子 | γ\gammaγ | 衡量未来奖励的重要性。 |
| 最大未来 Q 值 | maxa′Q(St+1,a′;θ−)\max_{a'} Q(S_{t+1}, a'; \theta^{-})maxa′Q(St+1,a′;θ−) | 估计下一状态 St+1S_{t+1}St+1 下,遵循最优策略能获得的最佳回报。 |
4. 关键的稳定化技术:固定 Q 目标(Fixed Q-Targets)
如果 TD 目标中的 Q(St+1,a′)Q(S_{t+1}, a')Q(St+1,a′) 也使用正在训练的网络 θ\thetaθ 来计算,就会出现“追逐移动目标”的问题:
- 网络 θ\thetaθ 在不断变化。
- 目标值(Target Q)也随着 θ\thetaθ 变化。
- 这导致训练不稳定,可能出现震荡或发散。
DQN 的解决方案是引入一个目标网络(Target Network),记为 Q−(s,a;θ−)\mathbf{Q}^{-}(s, a; \theta^{-})Q−(s,a;θ−),来计算 TD 目标。
- 目标网络 θ−\theta^{-}θ− 的权重与在线网络 θ\thetaθ 相同,但它不参与梯度计算,其权重是固定的。
- 每隔 CCC 个训练步,才将在线网络 θ\thetaθ 的权重复制给目标网络 θ−\theta^{-}θ−
通过使用稳定的 θ−\theta^{-}θ− 计算 TD 目标,DQN 极大地提高了训练的稳定性和收敛性。
总结来说: TD Learning 使得 DQN 能够利用当前经验(Rt+1,St+1R_{t+1}, S_{t+1}Rt+1,St+1)和自身的估计(maxQ\max QmaxQ)来生成一个虚拟的“标签”(TD 目标),然后像监督学习一样训练神经网络,不断减小预测值和目标值之间的时序差分误差。
更多推荐
所有评论(0)