一门炮打不中一架飞机

1940 年代,战争把一群数学家推到一个残酷的问题面前:

如果一架飞机正在高速飞行,防空炮到底应该瞄准哪里?

答案当然不是“瞄准飞机现在的位置”。

等炮弹飞到那里,飞机早就不在了。

但更准确地说,也不是简单地瞄准“飞机未来的位置”。

你真正要找的是一个拦截点

也就是:

如果我现在开炮,
炮弹几秒后会到达哪里?
在同一时刻,飞机会不会也到那里?

防空炮要打中的,不是飞机的“现在”,也不是一个抽象的“未来”。

它要打中的是:

炮弹和飞机在未来某一刻同时到达的那个点。

这听起来像一个预测问题。

只要知道飞机现在的位置、速度、方向,再知道炮弹速度,就能算出几秒后的交会点。

但真实战场没有这么干净。

你看到的飞机位置可能有误差。

雷达和光学设备有延迟。

炮口转过去需要时间。

炮弹会受重力、风、空气阻力影响。

飞行员也不是一颗石头。他会躲。他会突然转向。他会加速、俯冲、爬升。

于是问题不再是“算一次就结束”。

它变成了一条链:

观测:飞机现在在哪里?
估计:它真实的位置和速度是什么?
预测:几秒后可能到哪里?
控制:炮口应该转向哪里?
反馈:新的观测说明刚才错了多少?
修正:下一次该怎么调?

这就是为什么这个问题会请来那么多数学家、工程师和物理学家。

他们要解决的不是一道单独的抛物线题,而是一整套系统问题:

有噪声的观测
有延迟的动作
有不确定性的目标
有误差的预测
有持续变化的环境

于是问题变成了一个循环:

你预测一个拦截点
你调整炮口
飞机继续机动
雷达看到新的位置
你发现预测错了
你重新调整炮口

这类研究最后沉淀出的东西,并不是某一条万能公式。

真正成型的是一种系统观:

要在变化的世界里行动,机器不能只靠一次预测。它必须持续观察结果,把误差带回系统内部,再修正下一次行动。

它更像一次持续追踪。

每一次行动之后,世界都会给你一个回应。你不能只靠开头那一次预测活下去,你必须不断看结果、比误差、修正下一步。

参与这类问题研究的人里,有一位数学家叫 诺伯特·维纳(Norbert Wiener)。

他后来写了一本书,书名很长:

Cybernetics: Or Control and Communication in the Animal and the Machine

中文常译为《控制论:或关于动物和机器中的控制与通信》。

这本书 1948 年出版。

也是在 1948 年,Claude Shannon 发表《通信的数学理论》,定义了现代信息论。

同一年,两个人从不同方向看到了同一件事:

Shannon 看见了信息。

Wiener 看见了反馈。

Shannon 问:

一条消息里有多少信息?

Wiener 问:

一个系统怎样根据结果修正自己?

前一个问题,通向通信、压缩、预测和大语言模型。

后一个问题,通向控制、学习、行动和 Agent。

今天我们要讲的,就是后一个问题。


一、反馈不是评价,是回路

“反馈”这个词现在太常见了。

你写完文章,朋友说“不错”,这是反馈。

你做完汇报,领导说“再改改”,这是反馈。

你发一条朋友圈,看点赞数,也叫反馈。

但在控制论里,反馈不是一句评价。

反馈是一种结构。

它的核心不是“别人说了什么”,而是:

系统把自己的输出结果,重新带回输入端,用来修正下一次输出。

最简单的对比,是开环和闭环。

开环系统:

目标 → 指令 → 行动 → 结束

开环系统不看结果。

你设定闹钟,它到点就响。至于你有没有醒,它不关心。

你写一段脚本,命令它每小时发一封邮件。至于邮件有没有被退回,它不关心。

你让一个早期程序按固定规则走迷宫。至于撞没撞墙,它不关心。

闭环系统不一样。

闭环系统:

目标 → 行动 → 观察结果 → 计算误差 → 修正行动 → 再观察

闭环系统会看结果。

空调就是一个闭环。

你设定 24 度。传感器发现房间 28 度,于是制冷。过一会儿房间降到 25 度,继续制冷。降到 24 度,停止。升到 25 度,再启动。

它并不知道“舒服”是什么。

它只是不断比较:

目标温度 - 当前温度 = 误差

误差驱动修正。

这就是反馈。

你的身体也在做同样的事。

血糖高了,胰岛素上来。体温低了,开始发抖。跑步时氧气不够,呼吸加快。走路快摔倒时,肌肉在毫秒级调整重心。

身体并不是先拿到一张完美计划书,再照着执行。

它是在一刻不停地测量、比较、纠偏。

活着,本身就是一个巨大的闭环。


二、负反馈:世界把你拉回来

反馈有很多种,其中最重要的是 负反馈

“负”不是坏。

负反馈的意思是:系统的输出偏离目标后,反馈信号会把它往目标拉回来。

空调温度太高,制冷增强。

车偏离车道,你把方向盘往回打。

身体太热,开始出汗。

偏高 → 往低处修正
偏低 → 往高处修正

这就是稳定性的来源。

没有负反馈,系统会越走越远。

一个没有反馈的司机,只能在出发前把方向盘角度设好,然后闭着眼一路开下去。

一个没有反馈的学生,只能做完一套题以后永远不看答案。

一个没有反馈的 AI,只能把话说完,然后假装自己一定是对的。

所以,反馈带来的第一件事,不是“变聪明”。

而是不至于一路错到底

反馈的最小公式

如果非要给反馈一个最小的数学骨架,它其实不复杂。

先定义误差:

误差 = 目标 - 当前状态

e_t = r - y_t

这里的 r 是目标,y_t 是系统现在的状态,e_t 是当前误差。

空调的目标是 24 度,当前是 28 度,误差就是 4 度。

防空炮的目标是拦截点,当前炮口指向偏了一点,误差就是这个偏差。

然后系统根据误差修正下一次行动:

下一次行动 = 这一次行动 + 增益 × 误差

u_{t+1} = u_t + k e_t

这不是完整的控制理论。

真实系统里会有延迟、噪声、惯性、积分、微分,也就是后来工程里熟悉的 PID 控制。

但这个最小公式已经抓住了反馈的灵魂:

让误差参与下一次行动。

这里的 k 很关键。

k 太小,系统反应迟钝。房间已经热了很久,空调还慢慢悠悠。

k 太大,系统会震荡。车只是偏了一点,你猛打方向盘,车反而左右摇摆。

所以反馈不是越强越好。

好的反馈,要有合适的尺度。

现在再回到前面那句话:

反馈让系统不至于一路错到底。

这很重要。

很多人把智能想象成一次性给出正确答案的能力。

但真实世界里,更重要的能力往往是:

错了以后,系统能不能知道自己错在哪里,然后改下一步。

一个人学骑自行车,不是先在脑中推导出一套完整的自行车动力学方程。

他上车,歪了,脚撑地,重新来。又歪了,身体反向调整。摔几次,肌肉学会了。

这个过程里当然有大脑,但更底层的是反馈。

身体做出动作。

世界给出结果。

神经系统调整下一次动作。

智能不是从“知道”开始的。

很多智能,都是从一次次被纠正开始的。


三、Wiener 看见了动物和机器之间的共同结构

Wiener 最敏锐的地方,不是发明了某个单独的机器。

他看见的是一种跨越领域的结构。

防空炮、自动舵、神经系统、动物行为、社会组织,看起来完全不同,但都可以被同一套语言描述:

目标
观察
误差
修正
通信
控制

1943 年,Wiener 和 Arturo Rosenblueth、Julian Bigelow 发表了一篇论文,题目叫 Behavior, Purpose and Teleology

这篇文章讨论了一个当时很大胆的想法:

有目的的行为,可以不必诉诸神秘的“意志”,而可以用反馈回路来解释。

一个系统看起来像是在追求目标,未必是因为里面藏着某种神秘意志。

也可能是因为它有一个目标状态,并不断用反馈减少自己和目标之间的差距。

目标:保持航向
当前:偏左
反馈:偏差为左
行动:向右修正

这就是“有目的行为”的工程解释。

导弹追踪目标,看起来像“想击中”。

恒温器维持温度,看起来像“想舒适”。

动物寻找食物,看起来像“想生存”。

当然,导弹和动物不是同一种东西。

但 Wiener 看到:它们之间有一层共同结构。

这层结构就是控制论。

它不问“机器有没有灵魂”。

它问:

一个系统如何通过信息流控制自己的行为?

这句话放到今天,几乎可以直接改写成:

一个 AI 如何通过反馈信号改善自己的下一步输出?


四、从 Shannon、Bayes、Markov 到 Wiener

到这里,我们可以把前面几篇文章串起来。

Shannon 关心信息。

Bayes 关心信念更新。

Markov 关心状态转移。

Wiener 关心反馈控制。

这四个人像是在同一张地图上点亮了四盏灯。

他问的问题AI 里的对应物
Shannon这条消息有多少信息?交叉熵、压缩、预测下一个 token
Bayes看到新证据后,信念如何更新?先验、后验、微调、对齐
Markov站在当前状态,下一步是什么?序列建模、状态转移、Agent action
Wiener行动之后,如何根据结果修正?梯度下降、RLHF、强化学习、闭环 Agent

如果只看 Shannon,AI 像一台压缩机。

如果只看 Bayes,AI 像一个更新信念的观察者。

如果只看 Markov,AI 像一个在时间中选择下一步的系统。

但到了 Wiener 这里,AI 才真正碰到世界。

因为反馈意味着:

我不只是预测。
我会行动。
行动之后,世界会改变。
世界改变之后,我必须重新看。

这就是从“文本补全”到“现实操作”的关键一步。

大语言模型可以在没有外部反馈的情况下写出一整段话。

但 Agent 不行。

Agent 每一步都可能打开文件、调用工具、运行测试、搜索网页、提交代码。

一旦它行动,世界就会回它一个结果:

测试通过 / 测试失败
网页找到 / 网页没找到
文件存在 / 文件不存在
命令成功 / 命令报错
用户满意 / 用户打断

这些结果不是装饰。

它们决定 Agent 下一步怎么走。

没有这些回来的信号,工具调用只是一串动作。

有了这些信号,动作才连成回路。


五、训练神经网络,本质上就是反馈

先不要看 Agent。

最普通的神经网络训练,本身就是一个反馈过程。

你给模型一个输入。

模型给出预测。

你拿预测和正确答案比较,得到误差。

误差通过反向传播传回模型,调整参数。

下一次,模型预测得稍微好一点。

输入 → 预测 → 损失函数 → 梯度 → 更新参数 → 再预测

这就是一个闭环。

梯度下降不是“机器突然悟了”。

它只是让机器每次错一点,就沿着让错误变小的方向改一点。

你在《看见数学(十五):梯度下降》里已经写过“蒙眼下山”的比喻。

现在可以换一种说法:

梯度就是反馈信号。

损失函数告诉模型:

你离目标还有多远?
往哪个方向改,错误会变小?

没有这个反馈,神经网络只是一堆随机数字。

有了这个反馈,它才开始学习。

这就是为什么“预测下一个 token”这个目标如此强大。

每一个 token 都贡献一次误差。

一篇文章有一万个 token,就有一万次小测验。

整个互联网有万亿级 token,就有万亿级微小纠偏。

大模型不是读完互联网后“理解”了世界。

更准确地说,它是在万亿次微小纠错中,被文本世界一点点塑形。


六、RLHF:当反馈从“对错”变成“偏好”

但这里有一个问题。

预测下一个 token 的反馈很清楚:

正确 token 是什么?
模型给它多少概率?

这适合预训练。

可是人类真正关心的回答,不只是“像不像训练文本”。

我们还关心:

  • 这个回答有没有帮助?
  • 有没有礼貌?
  • 有没有胡说?
  • 有没有危险?
  • 有没有按照指令来?
  • 有没有承认不确定性?

这些东西没有唯一标准答案。

你问:

我应该怎样安慰一个失去亲人的朋友?

不存在一个“正确 token 序列”。

有些回答冷冰冰。

有些回答空洞。

有些回答真诚但越界。

有些回答简短却恰到好处。

这时,反馈从“对错”变成了“偏好”。

这就是 RLHF 的位置。

RLHF(Reinforcement Learning from Human Feedback)做的事情,可以粗略理解为:

模型生成多个回答
人类比较哪个更好
训练一个奖励模型
让语言模型更倾向于高奖励回答

它不是把新知识塞进模型。

它是在改变模型的行为倾向。

预训练像是在荒野里修出无数条路。

RLHF 像是在这些路上放路标:

这条路更有帮助
那条路更危险
这条路更符合人类偏好
那条路虽然能走,但别走

所以 RLHF 本质上也是反馈。

只不过这个反馈不再来自“正确答案”,而来自“人类喜欢什么”。

这也解释了它的风险。

如果反馈信号奖励的是“讨人喜欢”,模型就会学会讨人喜欢。

如果反馈信号奖励的是“显得自信”,模型就会学会自信。

如果反馈信号奖励的是“永远给答案”,模型就会越来越不愿意说“不知道”。

反馈不会自动产生真理。

反馈只会放大被奖励的方向。

这句话是理解 AI 安全的钥匙。


七、DeepSeek-R1:简单奖励为什么能长出复杂思考

DeepSeek-R1 让很多人惊讶的地方,不是它用了一个特别复杂的算法。

恰恰相反。

它最震撼的地方是:

给模型一个很简单的反馈信号,它竟然自己长出了复杂的推理行为。

在数学题、代码题这类任务里,答案是可以验证的。

数学题算对就是对,算错就是错。

代码能通过测试就是通过,不能通过就是失败。

这类任务不需要人类给每一步打分。

只需要一个结果反馈:

答对:奖励
答错:没有奖励
格式不合要求:扣分

然后模型开始试。

它发现:先列步骤,正确率更高。

它发现:最后检查一遍,能修掉一些错误。

它发现:一种方法走不通,换一种思路有时能成功。

于是这些行为被奖励保留下来。

看起来像“思考”的东西,就这样从反馈里长出来了。

这不是说模型有了人类意识。

但它说明了一件非常重要的事:

复杂策略可以从简单反馈中涌现。

这和骑自行车很像。

没人把“如何保持平衡”的微分方程逐项教给你。

世界只给你一个粗暴反馈:

没倒:继续
倒了:疼

你的身体在这个反馈中学会了平衡。

DeepSeek-R1 的故事,是这件事在语言和推理空间里的现代版本。


八、Agent:世界终于开始回话

到 Agent 这里,反馈变得更真实。

普通聊天模型生成一段回答后,很多时候回路就断了。

它说完了。

至于答案是否真的解决了问题,要靠用户自己判断。

Agent 不一样。

Agent 会行动。

它会写文件、运行命令、调用 API、打开网页、检索文档、修改代码。

行动一发生,世界就会返回结果。

这时反馈不再只是一个抽象分数,而是具体的环境回声:

pytest 失败:
E   AssertionError: expected 3, got 4

网页返回:
404 Not Found

编译器返回:
TypeError: expected string, got None

用户返回:
不是这个意思,重来

这些反馈比“点赞/点踩”强得多。

因为它们直接来自任务环境。

一个 coding agent 真正有用,不是因为它第一次就写对。

而是因为它能:

写代码
跑测试
读错误
定位原因
修改代码
再跑测试

这就是工程里的闭环。

没有这条闭环,AI 写代码只是“生成看起来像代码的文本”。

有了这条闭环,它才开始接近真正的工程劳动。

所以 Agent 的核心不只是“会调用工具”。

工具只是手。

反馈才是神经。

参数固定以后,反馈去了哪里?

这里有一个很容易被忽略的问题。

一个 LLM 在预训练、微调、RLHF 之后,参数通常就固定了。

用户今天告诉它“你错了”,它不会立刻在大脑里反向传播一次,把几千亿个参数改掉。

从模型本体看,它的能力似乎已经固化了。

但 Agent 改变了这件事。

反馈不一定非要进入参数。

它还可以进入上下文、记忆、技能库、工具调用策略和任务环境。

训练阶段:
反馈 → 更新参数

部署阶段:
参数固定
反馈 → 更新上下文、记忆、技能、工具调用策略、任务环境

换句话说:

训练阶段的反馈,改变的是模型参数。部署阶段的反馈,更多改变的是模型周围的系统。

instruction 把模型已有能力引导出来。

memory 把过去的经验保留下来。

skills 把反复成功的动作固化成可复用流程。

工具让模型把语言变成行动。

所以,Agent 的关键不只是“模型更聪明了”。

而是一个固定参数的模型,被接入了一个可以持续积累、持续修正的外部回路。

参数没有变,但系统变了。

同一个模型,在普通聊天框里像一个回答机器;放进 Agent 框架里,却开始像一个能做事的系统。

这也提醒我们:反馈有不同的去处。

反馈层次被修正的东西例子
控制反馈下一次动作防空炮、空调、自动驾驶
学习反馈模型参数预训练、反向传播、微调
偏好反馈行为倾向RLHF、DPO、人类偏好排序
环境反馈外部状态和任务策略Agent 跑测试、读报错、改代码
记忆反馈可复用经验memory、skills、instruction 更新

这张表很重要。

否则我们很容易把“反馈”误解成只有一种形式:改参数。

但现实中的智能系统,往往不是只靠一个大脑变聪明。

它还靠笔记、工具、流程、记忆、工作环境,以及一次次行动之后留下来的痕迹。


九、为什么“反馈”比“预测”更接近现实

预测当然重要。

没有预测,就没有计划。

你不预测车会往哪里开,就无法过马路。

你不预测用户下一步想要什么,就无法设计产品。

你不预测代码修改会带来什么后果,就无法重构系统。

但现实世界不会因为你预测完就结束。

现实世界会给出后果。

你预测错了。

世界会告诉你错了。

你行动过度了。

系统会震荡。

你奖励错了指标。

模型会钻空子。

你把考试分数当成教育目标。

学生就会学会刷题。

你把点击率当成内容质量。

平台就可能学会制造愤怒。

你把“让用户满意”当成 AI 的最高目标。

AI 就可能学会迎合,而不是诚实。

这就是反馈的另一面。

反馈能让系统学习。

也能让系统偏航。

关键不在于“有没有反馈”。

关键在于:

你到底把什么信号接进了回路?

这就是 Goodhart 定律反复警告我们的事:

当一个指标变成目标,它就不再是一个好指标。

控制论看起来是工程学。

但往深处走,它会变成伦理学。

因为一个会学习的系统,最终会变成它所接收的反馈。


十、智能不是答案,是闭环

现在回到开头那门防空炮。

如果你只看第一步,它像一个预测问题:

飞机几秒后会在哪里?

但如果你看完整过程,它其实是一个反馈问题:

我观测飞机
我估计轨迹
我预测拦截点
我调整炮口
世界给出新的位置
我根据误差修正

这才是智能在现实中的形状。

一次性给出答案,是考试里的智能。

持续修正行动,是现实里的智能。

这也是为什么大语言模型之后,整个 AI 方向自然会走向 Agent、机器人、自动驾驶、工具调用、可验证奖励。

因为文本预测只完成了前半步。

后半步是:

让模型进入世界,并让世界纠正它。

我们可以把这一系列文章压缩成一条线:

Shannon:信息可以被度量
Bayes:信念可以被更新
Markov:未来可以从状态推出
Wiener:行动可以被反馈修正

如果说 Shannon 给了 AI 一只耳朵,让它听见信息。

Bayes 给了 AI 一套信念,让它根据证据更新判断。

Markov 给了 AI 一个现在,让它知道下一步从哪里出发。

那么 Wiener 给了 AI 一条神经回路。

这条回路让机器第一次不只是“算”。

而是能看见行动后的结果,并在结果中改变下一步。

维纳没有想到 ChatGPT。

他也没有想到 RLHF、DeepSeek-R1、coding agent、自动驾驶和机器人。

但他看见了一件更底层的事:

一个系统只要想在时间中行动,就必须听见自己行动后的回声。

没有反馈,智能只是一次猜测。

但反馈还不是终点。

反馈只能告诉系统:你错了,偏了多少。

它未必告诉系统:你为什么错。

防空炮没有打中飞机,可能是飞机转向了,可能是风速估错了,可能是炮口转动慢了,也可能是雷达观测有延迟。

这时,系统需要的不只是反馈,而是因果。

它要知道:哪个动作导致了哪个结果?如果我换一种动作,世界会不会不同?

再往前一步,就是世界模型。

所谓世界模型,就是系统在行动之前,先在内部预演一下:

如果我这样做,
世界会怎样回应?

反馈让系统知道自己错了。

因果让系统知道为什么错。

世界模型让系统在下一次行动前,先想一遍:如果我这样做,世界会怎样回应。

有了反馈,猜测才开始变成学习。


本文涉及的公众号文章

  • 《Shannon 没有想到的事——当信息论遇上有限算力》
  • 《贝叶斯没有想到的事——一个牧师的赌博公式,如何成为 AI 的第一性原理》
  • 《马尔可夫的幽灵——从预测下一个词到预测下一步行动》
  • 《DeepSeek-R1:一个模型如何学会「思考」》
  • 《大理石假说——为什么微调不是在教 AI 新东西》
  • 《AI 为什么“一本正经地胡诌”?——幻觉的底层逻辑》

主要参考与延伸