从 Bellman-Ford 到 DQN:为什么 Target 值比当前 Q 值更值得信?

从 Bellman-Ford 到 DQN:为什么 Target 值比当前 Q 值更值得信?

很多人第一次接触强化学习中的 DQN (Deep Q-Network) 时,都会卡在同一个更新公式上:

Q(st,at)←rt+γmax⁡aQ(st+1,a)Q(s_t, a_t) \leftarrow r_t + \gamma \max_a Q(s_{t+1}, a)Q(st,at)←rt+γamaxQ(st+1,a)

直击灵魂的疑问:

为什么左边的估计值 Q(st,at)Q(s_t, a_t)Q(st,at),要向右边的 target\text{target}target 靠拢?

右边明明也带有一个 QQQ 啊,它也是神经网络自己估出来的,凭什么右边的 target 就更配当"参考答案"?

要真正想通这个问题,最好的切入口不是深度神经网络,而是一个在经典计算机图论中更古老、更朴素的算法------Bellman-Ford(贝尔曼-福特最短路算法)

虽然严格来说,DQN 直接对应的是 Bellman 最优方程;但通过 Bellman-Ford 的"松弛与信息传播",我们能以最直观的方式,看清楚真实世界的信息是如何一轮轮扩散开来的。


1. 先看 Bellman-Ford:一个"真值"是如何逐步铺满全图的?

假设我们有一张简单的有向图,需要求从起点 SSS 出发到达各个节点的最短距离。

节点的连接与边权如下:

  • 起点 S→2AS \xrightarrow{2} AS2 A,权重为 222;同时 S→5BS \xrightarrow{5} BS5 B,权重为 555
  • A→2CA \xrightarrow{2} CA2 C,权重为 222;同时 B→1CB \xrightarrow{1} CB1 C,权重为 111
  • 终点节点 C→3DC \xrightarrow{3} DC3 D,权重为 333

这里边上的权重,全部是真实、确定的物理代价

在算法最开始,除起点外,所有距离都是未知的:

d(S)=0,d(A)=∞,d(B)=∞,d(C)=∞,d(D)=∞d(S) = 0, \quad d(A) = \infty, \quad d(B) = \infty, \quad d(C) = \infty, \quad d(D) = \inftyd(S)=0,d(A)=∞,d(B)=∞,d(C)=∞,d(D)=∞

现在,Bellman-Ford 开始逐轮进行"边松弛(Relaxation)":

第 1 轮:由 SSS 探索相邻的 AAA 和 BBB

通过起点 SSS 的真实边,我们获得了第一批确定信息:

d(A)=d(S)+2=2d(A) = d(S) + 2 = 2d(A)=d(S)+2=2

d(B)=d(S)+5=5d(B) = d(S) + 5 = 5d(B)=d(S)+5=5

此时全图最短距离更新为:S=0,A=2,B=5,C=∞,D=∞S=0, A=2, B=5, C=\infty, D=\inftyS=0,A=2,B=5,C=∞,D=∞。

第 2 轮:由 AAA 和 BBB 更新 CCC

到达节点 CCC 有两条支路:

  • 走 B→CB \to CB→C:距离为 d(B)+1=5+1=6d(B) + 1 = 5 + 1 = 6d(B)+1=5+1=6
  • 走 A→CA \to CA→C:距离为 d(A)+2=2+2=4d(A) + 2 = 2 + 2 = 4d(A)+2=2+2=4

算法自然取最小值(最优解):

d(C)=min⁡(6,4)=4d(C) = \min(6, 4) = 4d(C)=min(6,4)=4

细节亮点 :即使我们先看到了 5+1=65+1=65+1=6 的次优路径,也会立刻被更优的 2+2=42+2=42+2=4 成功纠偏!

此时全图距离更新为:S=0,A=2,B=5,C=4,D=∞S=0, A=2, B=5, C=4, D=\inftyS=0,A=2,B=5,C=4,D=∞。

第 3 轮:由 CCC 更新终点 DDD

顺着最优的 CCC 继续往前走一步:

d(D)=d(C)+3=4+3=7d(D) = d(C) + 3 = 4 + 3 = 7d(D)=d(C)+3=4+3=7

最终全图的最短距离完全收敛锁定:

S=0,A=2,B=5,C=4,D=7S=0, A=2, B=5, C=4, D=7S=0,A=2,B=5,C=4,D=7

看完整张图的演化,最重要的不是代码怎么写,而是它背后的哲学内核

💡 核心洞察

我不需要在一开始就知道通往终点的完整路径有多长。

我只需要拿到**"眼前这一步真实的边权",再加上 "下一站当前的距离估计"**。

只要在全图中反复松弛迭代,局部的真实信息就会像水波涟漪一样,一层一层向远处扩散,最终修正整张图的估计!

也就是:

新的估计=眼前真实的一步+后续状态的当前估计\text{新的估计} = \text{眼前真实的一步} + \text{后续状态的当前估计}新的估计=眼前真实的一步+后续状态的当前估计

理解了这一点,你就已经掌握了 DQN 最核心的秘密。


2. DQN 做的,其实是同一件事

现在,我们把目光从图论切回深度强化学习。

DQN 每次更新时的标杆目标值(Target)写做:

Target=rt+γmax⁡aQ(st+1,a)\text{Target} = r_t + \gamma \max_a Q(s_{t+1}, a)Target=rt+γamaxQ(st+1,a)

两相对照,你会发现它们的结构完全一致:

视角 核心公式 构成拆解
Bellman 视角 V(s)←min⁡ac(s,a,s′)+V(s′)V(s) \leftarrow \min_a \big c(s,a,s') + V(s') \\bigV(s)←minac(s,a,s′)+V(s′) 一步真实代价 (来自真实边)+ 后续估计(来自当前值)
DQN 视角 Q(st,at)←rt+γmax⁡aQ(st+1,a)Q(s_t, a_t) \leftarrow r_t + \gamma \max_a Q(s_{t+1}, a)Q(st,at)←rt+γmaxaQ(st+1,a) 一步真实奖励 (环境即时反馈)+ 未来价值估计 (后继状态的 QQQ)

在 DQN 中,智能体与环境交互的真实流程是:

  1. 当前处于状态 sts_tst,执行动作 ata_tat;
  2. 真实环境向前推进了一步 :智能体真真切切拿到了即时奖励 rtr_trt,并且真的来到了下一个状态 st+1s_{t+1}st+1;
  3. 到了新状态 st+1s_{t+1}st+1 之后,未来还能拿多少奖励?此时只能再借助神经网络进行估计:max⁡aQ(st+1,a)\max_a Q(s_{t+1}, a)maxaQ(st+1,a)。

因此,这个 Target 可以被精准地拆成两截:

Target=rt⏟真实发生的一步+γmax⁡aQ(st+1,a)⏟后续仍然是估计\text{Target} = \underbrace{r_t}{\text{真实发生的一步}} + \underbrace{\gamma \max_a Q(s{t+1}, a)}_{\text{后续仍然是估计}}Target=真实发生的一步 rt+后续仍然是估计 γamaxQ(st+1,a)

而等号左边智能体当前的 Q(st,at)Q(s_t, a_t)Q(st,at) 呢?

它只是网络在迈出这一步之前,凭空脑补出来的"纯预测"!


3. 为什么 Target 比当前 Q 更值得信一点?

答案可以用一句话说明白:

🎯 DQN 每次用真实环境走一步,把一个"纯预测",纠正成了"1步真实 + 后续预测"。

它并不是绝对真理(因为后半截依然包含神经网络的估计),但它切切实实融入了一步现实世界的客观事实

举一个形象的数值例子:

text 复制代码
网络原先猜:
Q(s_t, a_t) = 10 分 (这只是网络旧参数下的主观臆测)

智能体在真实环境里走了这一步:
1. 真的拿到了即时奖励 r_t = 3 分
2. 真的落到了新状态 s_{t+1},网络评估这个新状态未来大约值 8 分

计算新参考答案(假设折扣因子 γ = 0.9):
Target = 3 + 0.9 × 8 = 10.2 分

你看,新算出来的标杆 10.210.210.2 分,是用**"落地拿到的 3 分真金白银"**替换掉了原来那部分空中楼阁的猜测。

即便环境带有随机性,这一步也是一次来自物理现实的客观采样。通过海量经验样本的反复回放迭代,真实世界的信息就会一步步倒灌并校准整个 Q 网络。


4. 既然 Target 更好,为什么还需要 Target Network?

既然 Target 的形式是 r+γmax⁡Q(s′,a)r + \gamma \max Q(s', a)r+γmaxQ(s′,a),那直接用当前正在训练的 Q 网络来计算 Target 不就行了吗?为什么 DQN 还要大费周章地搞出两个网络?

在标准 DQN 中,通常存在结构完全相同的两个网络:

  • Online Q Network(在线网络 / 评估网络):参数时刻在通过梯度下降被更新,智能体探索选动作也主要靠它。
  • Target Q Network(目标网络):参数被冻结,只负责安安静静地计算训练目标,慢半拍才同步一次。

为什么不能"自己给自己出题并打分"?

因为如果同一个网络既负责被训练,又同时负责生成它自己的参考答案,损失函数就会变成:

Loss=Qonline(st,at)−(rt+γmax⁡aQonline(st+1,a))2\text{Loss} = \left Q_{\\text{online}}(s_t, a_t) - \\left(r_t + \\gamma \\max_a Q_{\\text{online}}(s_{t+1}, a)\\right) \\right^2Loss=Qonline(st,at)−(rt+γamaxQonline(st+1,a))2

仔细看这个公式:等号两边都在跟着同一个网络参数实时变动!

这就好比一个人在追逐自己的影子:

你刚调整参数让左边往右边靠了一点,右边的 Target 马上因为同一个参数的改动又跑远了。目标不断晃动甚至相互放大,训练极易发散、崩溃!


5. 贪吃蛇追苹果:Target Network 的"慢镜头哲学"

理解 Target Network 的精髓,可以用**"贪吃蛇追苹果"**的绝妙比喻:

场景 A:没有 Target Network(追动态靶)

想象一条蛇在追苹果。如果蛇每往前挪动半步,苹果就像幽灵一样跟着瞬间位移:

  • 蛇走一步 →\to→ 苹果移位;
  • 蛇再走一步 →\to→ 苹果又漂移;
  • 蛇甚至分不清到底是在抓苹果,还是在追自己乱动的尾巴!
    学习过程充满震荡,极难收敛。

场景 B:引入 Target Network(追相对固定靶)

DQN 的做法非常朴素而优雅:

  1. 苹果先钉在桌上一动不动:把 Target Network 的参数暂时冻结(一段时间内不更新);
  2. 蛇朝着稳定的苹果全力靠近:Online Network 专心致志地进行梯度下降,朝固定的标杆逼近;
  3. 定期同步:经过几千个 step 之后,再把 Online Network 的最新参数一把拷贝给 Target Network(把苹果挪到下一个更新的位置);
  4. 循环往复

此时的损失函数变成了:

Loss=Qonline(st,at)−(rt+γmax⁡aQtarget(st+1,a))2\text{Loss} = \left Q_{\\text{online}}(s_t, a_t) - \\left(r_t + \\gamma \\max_a Q_{\\text{target}}(s_{t+1}, a)\\right) \\right^2Loss=Qonline(st,at)−(rt+γamaxQtarget(st+1,a))2

🌟 核心结论

Target Network 绝不是因为"它比 Online Network 更聪明",它仅仅是一个**"慢一点的自己"**。

它的全部价值就在于------提供一个短时间内不会乱跑的稳定标杆,让复杂的非线性神经网络能够在稳定的水温中完成策略迭代。


6. 最后,把整个 DQN 压缩成三句话

读完本文,如果合上屏幕只能带走三句话,请记住它们:

  1. Bellman-Ford 启示:局部的真实信息,完全可以通过反复松弛迭代,逐步浸润并铺满整张全局图。
  2. DQN Target 为什么可信:因为每一次环境交互,都把原本虚无缥缈的"纯预测",替换成了**"1步真实世界反馈 + 后续预测"**。
  3. Target Network 的本质:它故意慢半拍,不是为了更聪明,而是为了把标杆暂时钉住,避免陷入"自己追自己尾巴"的震荡陷阱。

下次再看到强化学习里复杂的数学公式时,不妨在脑海中浮现出这两个画面:

  • 终点湖面上被投下一颗石子,真值像涟漪一样一圈一圈泛回起点;
  • 一条小蛇正坚定地爬向一颗被稳稳固定在桌面上的红苹果。
相关推荐
CV山月1 天前
大模型强化学习对齐:从 RLHF 框架到 PPO 算法原理
人工智能·python·大模型·强化学习·多模态·研究生
机器学习之心3 天前
基于强化学习的股票价格预测与智能交易实战
强化学习·股票价格预测
XLYcmy3 天前
Self-Adapting Language Models论文分享
自然语言处理·llm·微调·sft·论文笔记·强化学习·自进化
指掀涛澜天下惊4 天前
强化学习进阶篇八 策略梯度算法
深度学习·学习·算法·强化学习
盼小辉丶4 天前
PyTorch强化学习实战——融合人类示范数据的高效强化学习
人工智能·pytorch·python·深度学习·强化学习
爱听歌的周童鞋4 天前
强化学习的数学原理 | 赵世钰 | 西湖大学 | 笔记 | Lecture 5 | Part 2 | 蒙特卡洛方法(MC Basic 算法介绍)
强化学习·monte carlo·estimation·model-free·mc basic
爱听歌的周童鞋5 天前
强化学习的数学原理 | 赵世钰 | 西湖大学 | 笔记 | Lecture 5 | Part 3 | 蒙特卡洛方法(MC Basic 算法例子)
强化学习·example·monte carlo·mc basic·episode length
盼小辉丶6 天前
PyTorch强化学习实战——基于图像-文本融合的自动化网页导航
人工智能·pytorch·深度学习·自动化·强化学习
Mid_search6 天前
Dueling Network
人工智能·深度学习·强化学习·dueling network