
<a id="n31-title"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-title)


# 多个合理来处，不等于一张平均答案

王德泉 · Coding with AI · Lecture 04


<a id="n31-2ffda412c4ac"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-2ffda412c4ac)

上一页说明了怎样从已知照片造题。这一页先拿一个更直观的遮挡例子观察信息缺失：杯子的两侧都被挡住，可见部分同时容得下“杯柄在左”和“杯柄在右”两种来处。当前输入没有提供足够证据排除其中一个；训练时留有原图，也不意味着作答模型凭眼前输入就总能唯一找回它。


<a id="n31-4efd4168565c"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-4efd4168565c)

把两张完整来处逐像素平均，会在两边都留下半透明杯柄。这个折中在数值上可能接近两种答案，却没有选出一只完整杯子。这与 N17 的认识相同。本页新增的问题是：扩散训练里的平方误差会鼓励条件平均，为什么它仍可能产生清楚的完整样本？


[课程图解] 当前遮挡容许两种来处，但逐像素平均给出的双影不等于一个完整样本。；图中标签与关系：可能来处 A 同一遮挡输入 可能来处 B 像素平均 留下两个半透明杯柄 平均图
当前遮挡容许两种来处，但逐像素平均给出的双影不等于一个完整样本。


<a id="n31-34e7b74d72e5"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-34e7b74d72e5)

关键在于平均发生在哪一层。给定一个当前状态，平方误差下最合适的局部预测可能是所有相容来处所对应目标的条件均值；它可以是噪声、方向或干净图的估计。但采样并不是把这一估计直接存成最终照片就结束。更新规则改变当前状态，模型在新的状态与时刻再次作预测。不同起点和后续扰动可以产生不同路径，后续条件也随路径改变。


<a id="n31-c3199b5a10ee"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-c3199b5a10ee)

**“那为什么不让最终图同时保留两个杯柄，诚实表达不确定性？”** 如果交付物是一张不确定性地图，这样展示可能有用；本题要求的是一个完整样本，一只半透明双柄杯通常不符合这一要求。表达多个可能性可以交付多张各自完整的候选，而不必把它们在像素上叠成一张。


<a id="n31-99afb835dc8f"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-99afb835dc8f)

**“完全对称的状态若给出平均方向，是否证明所有生成都会困在平均图？”** 不能。这只描述该条件下的一个局部预测。要推出整套采样失败，还必须检查不同起点、全部更新和随机性。反过来，也不能因为有多步更新就保证模型已正确表达所有模式。简单的局部转移分布不限制最终分布一定只有一个峰，但模型误差、步数和更新方式仍可能破坏生成质量。


<a id="n31-143c05f3bf44"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-143c05f3bf44)

本页的遮挡与双柄平均是具体反例；后面的两条路径是生成机制示意，不能当作训练出的模型已解决不确定性的成绩。它们帮助我们把“这一刻如何预测”与“最后交付什么”分开。


<a id="n31-e37b46196954"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-e37b46196954)

下一页把这两层真正接起来：预测器输出一份调整信息之后，谁计算下一状态，又是谁在下一时刻继续判断？


<a id="n31-states"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-states)


## 画面怎样推进


<a id="n31-b0"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-b0)

同时遮住杯子两侧，当前输入不足以排除左右杯柄两种来处。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N31.html?step=b0)


<a id="n31-b1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-b1)

完整图片逐像素平均形成双柄重影，未必是一只成立的杯子。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N31.html?step=b1)


<a id="n31-b2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-b2)

一次生成沿更新路径构成完整候选；局部均值预测不能被直接当作最终整图平均。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N31.html?step=b2)


<a id="n31-materials"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-materials)


## 继续阅读与实验


<a id="n31-learning-unit-001"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-learning-unit-001)


## 条件均值不在数据端点，为什么仍能生成样本？


<a id="n31-learning-unit-002"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-learning-unit-002)

LAB05只允许干净值−1或+1。看到带噪值0.5时，两种来处仍可能；本例后验给+1约90.22%的概率，干净条件均值约0.8045。这个均值是对当前观察的平方误差最优估计，却不是数据中的第三个合法端点。


<a id="n31-learning-unit-003"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-learning-unit-003)

采样不会把每次条件均值直接保存成最终答案：它先更新当前状态，再在新位置、下一时刻重新预测。不同起点可以进入不同路线。需要检验的是完整终点分布是否覆盖两个端点，不能由一个局部平均就断言所有输出都模糊，也不能由“有多步”保证覆盖成立。


<a id="n31-learning-unit-004"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-learning-unit-004)

接着读：[两点分布的后验与局部平均](https://codingai-lec04.pages.dev/lecture.html#ch05-local-average)。


<a id="n31-chapter-reading"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-chapter-reading)


### [CLS 05 · 扩散：训练、采样与少步生成](https://codingai-lec04.pages.dev/lecture.html#ch05)

按连续正文理解这条方法的训练信号、使用过程与算例；数学与实践在相关问题旁展开。

先看：第5章，从对象和问题开始


<a id="n31-lab09-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-lab09-practice)


### [LAB 09 · 学得去噪器与完整采样](https://codingai-lec04.pages.dev/course/notebooks/e6fcbdfe3ca2418c9ed09344b4ae2b33.html)

固定初始噪声，仅改采样步数；把网络近似误差与数值步进误差分开。

先看：先看保存结果与读图解释


<a id="n31-lab05-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-lab05-practice)


### [LAB 05 · 扩散的条件均值与流积分](https://codingai-lec04.pages.dev/course/notebooks/be6db259db4f48478c7481ab51129971.html)

先读本册保存结果，再按实现顺序核对一个算例；最后只改一个变量。

先看：先看保存结果与读图解释


<a id="n31-material-1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-material-1)


### [LAB 05｜条件均值、噪声预测与流积分](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/be6db259db4f48478c7481ab51129971)

计算同一带噪值下的后验均值，解释它为何不是±1之一，却仍可作为采样器局部预测。

先看：第1节及第2节解释


<a id="n31-material-2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N31.html#n31-material-2)


### [Diffusion Models](https://mit-6s978.github.io/assets/pdfs/lec5_diffusion.pdf)

把逆条件中的不确定性，与后续多次更新产生样本的过程分开阅读。

先看：第25–38页

