A · 把「建构」写成数学
生成模型与预测编码
上一课说,感知=求后验 后验 ∝ 似然 × 先验。可大脑里没有这道公式,世界又是一层套一层的——光子背后是边缘、边缘背后是物体、物体背后是场景。它到底怎么算出那个后验?这一课给出大脑用的那个省力到惊人的近似办法。
先认清那个「生成模型」
上一课的 似然 是 P(感官信号 | 世界状态)——「如果外面真是这样,我该收到怎样的信号」。能写出这个条件概率,意味着大脑心里揣着一套关于「世界如何生成我接收到的感官输入」的假设。这套假设就叫生成模型 (generative model):给它一个假想的世界原因(这是一张脸、光从左边来),它能往下推出该原因会激起怎样的感官模式。
有了生成模型,推断就是把这个箭头反过来走:我实际收到了这堆信号,最可能是哪个原因生成的?这正是上一课的后验。难点也在这——正向(原因→信号)大脑会算,可反向(信号→原因)要枚举无数可能原因再比较,精确解算不动。预测编码的全部聪明,就在于用正向的预测能力,去近似地解那个反向的难题。
预测编码:只把「意外」往上传
预测编码的回答只有一句话,但它反直觉到值得停下来体会:
每一层把对下一层的预测往下送;下一层只把(实际 − 预测)这个残差往上回传。把方向钉死,别画反:预测自上而下 (top-down),预测误差自下而上 (bottom-up)。 误差就是预测误差 (prediction error)——也可以叫它「意外」:
预测误差 = 实际输入 − 自上而下的预测整个回路像一场层与层之间的来回讨价还价。高层先猜一个原因,向下发出「我预期底层长这样」的预测;底层拿它和真实输入一比,把对不上的那部分(误差)往上顶;高层收到误差,就微调自己的猜测去减小它,再发新预测下来……这样迭代几轮,各层的预测误差一起被压向最小。当全网误差降到趋近 0,意味着「高层这套原因,已经能从上到下解释掉几乎全部输入」——这一刻,网络稳定下来 (settle) 的那组高层信念,就是对后验的近似。感知,就是这场误差消减迭代收敛的结果。
为什么是「只传误差」而不是把原始信号整个往上送?两个理由,都很硬:
机器学习的镜像:生成 vs 判别,以及自编码器
大脑这套「持一个生成模型、靠它预测输入」的打法,在机器学习里有个直接对照——生成模型 vs 判别模型 (generative vs discriminative) 的分野。判别模型直接学 P(标签 | 输入),只关心「把它归到哪一类」;生成模型学 P(输入 | 原因)(连同先验 P(原因)),关心「这数据是怎么被造出来的」。预测编码下的大脑显然站在生成这一边:它不满足于贴标签,它要能从原因往下重建出感官输入。
更贴的镜像是(变分)自编码器 (variational autoencoder, VAE)。自编码器有一个编码器把输入压成内部表征(latent),再用一个解码器从表征重建输入,训练目标就是让重建误差最小。把这两半对到大脑:解码器≈自上而下的生成模型(从高层原因预测低层),编码器≈自下而上的推断(把误差转成对原因的更新)。「重建误差」就是预测误差的工程版。 而预测式自监督(masked prediction、自回归下一步预测)更是把「预测输入、从误差里学」做成了今天大模型的主训练信号——大脑和这些算法,又一次撞在同一道题上。想看生成模型这一支怎么展开,去 生成模型 / 扩散 track。
动手:预测编码回路
下面这个三层回路里,最高层持一个信念,自上而下逐层发出预测;最底层接收真实输入,把误差自下而上回传。点「迭代一步」,看每层的预测误差怎样一轮轮被压向 0——那就是感知在收敛。然后点「注入意外输入」,把底层真实输入猛地换掉:你会看到误差先从底层冒起、逐层上传,再被高层更新过的新预测一层层压回去,重新 settle。注意每层那条「预测↓ / 误差↑」的方向,别记反。
玩完你会抓到本课最关键的那个直觉:感知不是一次性的查表,而是一个动态过程——预测和误差在层间来回收发,直到误差被消减到趋近 0,那一刻稳定下来的高层信念就是大脑「看到」的东西。 而注入意外那一下,正是「意外才抓注意」在回路里的样子:误差冒头、上行、再被新模型解释掉。
常见误解
- 误解:预测编码里,是底层把信号往上送给高层去识别。 (澄清:方向恰好相反才是要点。预测自上而下,底层只把预测误差自下而上回传。把方向画反,整套「省带宽、抓意外」的好处就全没了。)
- 误解:「只传误差」是为了偷懒,会丢信息。 (澄清:不丢。可预测的部分由自上而下的预测携带,误差只补上预测没覆盖的残差,两者合起来仍是完整解释。这跟数据压缩「只存与预测的差」一样——是无损地省带宽,不是扔信息。)
- 误解:预测误差收敛到 0,就证明大脑「看到了真相」。 (澄清:误差为 0 只说明当前生成模型能解释掉输入,不保证那个解释为真——若先验过强,模型可以靠「脑补」把误差压下去而看到不存在的东西(幻觉),这正是第 10 课计算精神病学要讲的「权重失衡」。)
- 误解:预测编码≈自编码器,所以皮层里就是在跑反向传播。 (澄清:相似只在「都最小化重建/预测误差」这一计算层意义上。生物实现仍有争议,反向传播本身在大脑里几乎不可行——见第 07 课。别把类比当同构。)