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


# 从可能结果，到生成过程，再到行动


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

一张红杯照片只记录了一个结果。怎样用许多这样的记录，学会生成不同却相容的红杯？本讲先辨认条件与多解，再沿自回归、潜表示、对抗反馈和逐步更新理解“学什么、怎样生成”，最后把预测接到编辑、语言与行动。


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



![六只杯型、光照、视角不同的红杯，都由桌面支撑。](https://codingai-lec04.pages.dev/assets/conditional-cups.jpg.webp)**相容：允许不止一种答案**杯型、光照和视角可以不同。


![桌面上的蓝杯，旁边有梨和书；杯子的颜色不满足红杯条件。](https://codingai-lec04.pages.dev/assets/classroom/opening/cup-blue.png)**不相容：违反已给条件**杯子再逼真，蓝色仍不满足“红杯”。



共同条件：一只红杯由桌面支撑。先检查颜色与支撑关系，再讨论允许的外观变化。右图多出的梨和书并未被这条条件禁止；杯子的颜色已足以判定它不相容。



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

这些课程 ImageGen 示意帮助分清“共同条件”和“允许变化”，不是仅改变一个变量的受控模型实验。有限的几张图不能确定完整概率分布。真正训练和预训练推理的结果在下面相应路径中另行标明。


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


## 这几种材料分别帮你完成什么


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


| 入口 | 适合怎样使用 |
| --- | --- |
| 课堂 Slides | 跟随对象、图示和停点，形成一条故事线 |
| 这份 Guide | 数分钟建立地图，选择眼前最想解释的现象 |
| 八章 Lecture | 连续读懂训练信号、生成过程、算例、边界与方法之间的联系 |
| 本页说明 | 回到当前画面，补足其中一个关系或推理步骤 |
| 学习材料 | 先接课内解释与算例，再到网页实验、Deepnote和原始来源 |
| CLS / LAB / DERIV | 连续概念阅读 / 保存结果与可执行实验 / 按问题选读数学 |


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


## 先辨认模型改变了什么


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



**自回归**
- 已有前缀
- 抽取下一项
- 更长的前缀

重复追加，直到结束。学习时，以真实序列的下一项提供反馈。




**VAE**
- 先验抽样 z
- 解码器
- 新样本

生成时不必先输入原图。学习时，同时处理重建与潜分布约束。




**GAN**
- 随机输入 z
- 生成器 G
- 新样本

判别器 D 传回的梯度用于训练；生成时通常只需 G。




**扩散 / Flow**
- 初始噪声
- 预测并更新状态
- 新样本

中间一步反复执行，权重保持不变。学习的局部目标可为噪声或速度等。



从左向右读生成动作，再读下方的训练反馈。VAE 与 GAN 都可从随机起点生成，但训练信号不同；自回归延长序列，扩散 / Flow 反复更新同一个样本的状态。



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

这四条路线可以组合。先验从哪里来、反馈改变的是参数还是当前样本、条件怎样进入每一步，比记住方法名更能帮助你读懂代码。下面七条路径各给一个可以看到、计算或改变的入口。


<a id="path-answers"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-answers)


## 同一条件怎样产生不同答案


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

下面每幅图先比较理论完整路径概率（深蓝）与抽样频率（黄色），再比较0.35、1、2三档温度。温度调整每个前缀后的条件分布；完整路径概率仍要沿路径相乘。[第1章的鞋对表](https://codingai-lec04.pages.dev/lecture.html#ch01-joint-table)另解释了为什么部件分别正确，还可能拼成不相容的整体。


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

![LAB01固定两步概率模型，比较温度0.35、1、2下A0、A1、B0、B1的理论完整路径概率与重复抽样频率；深蓝为理论概率，黄色为频率。](https://codingai-lec04.pages.dev/assets/labs-v13/lab01-temperature.png)


<a id="path-answers-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-answers-practice)

固定概率表，只改温度0.35、1、2，比较重复抽样频率。这是解析实验，没有训练语言模型。写下局部贪心为什么可能错过整条最可能路径。


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

[第2章：连续理解](https://codingai-lec04.pages.dev/lecture.html#ch02) · [网页LAB01：先读保存结果](https://codingai-lec04.pages.dev/course/notebooks/39071d41f84d4621ad69c6140a6dccc9.html) · [Deepnote阅读与运行](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/39071d41f84d4621ad69c6140a6dccc9)


<a id="path-latent"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-latent)


## 重建怎样接上一个可用的生成入口


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

下面这组图给两个真正训练的图像 VAE 同一组标准正态起点，并保留初始化对照。β=0的重建更好，却把训练图的编码推到很远；β=1让潜区域更贴近先验，重建与先验样本仍模糊、重复。


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

![同一组标准正态起点分别进入初始化、β0训练后和β1训练后的解码器；每列保持z不变，没有输入原图。](https://codingai-lec04.pages.dev/course/experiments/vae/prior_same_seed.png)


<a id="path-latent-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-latent-practice)

先在LAB07对照原图、重建和同起点采样，再只改KL权重。LAB02的可解高斯算例帮助区分先验、真实后验与q；它不能代替图像编码器训练。


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

[第3章：连续理解](https://codingai-lec04.pages.dev/lecture.html#ch03) · [网页LAB07：先读保存结果](https://codingai-lec04.pages.dev/course/notebooks/6567b1168915486c8de4ab9cfea54a8e.html) · [Deepnote阅读与运行](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/6567b1168915486c8de4ab9cfea54a8e)


<a id="path-constraints"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-constraints)


## 配对、循环与学得反馈分别提供什么


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

真正训练的二维 GAN 在固定随机输入上逐渐把输出送到数据的八个模式附近。D:G=1:1覆盖8/8模式、近模式54.25%；3:1覆盖6/8、近模式85.64%。更集中和覆盖更多不是同一个量。


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

![真正训练的二维 GAN 在固定随机输入上逐渐把输出送到数据的八个模式附近。D:G=1:1覆盖8/8模式、近模式54.25%；3:1覆盖6/8、近模式85.64%。更集中和覆盖更多不是同一个量。](https://codingai-lec04.pages.dev/course/experiments/learned/lab08-training.png)


<a id="path-constraints-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-constraints-practice)

LAB08只改D:G更新比，明确它也改变总D计算。沿固定随机输入读训练过程，再分别比较覆盖率与集中程度。


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

[第4章：连续理解](https://codingai-lec04.pages.dev/lecture.html#ch04) · [网页LAB08：先读保存结果](https://codingai-lec04.pages.dev/course/notebooks/f16324b960a446e2aa03168c17e9fc0b.html) · [Deepnote阅读与运行](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/f16324b960a446e2aa03168c17e9fc0b)


<a id="guide-constraints-cycle"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#guide-constraints-cycle)


### 循环能回来，身份仍可能错配


<a id="guide-buildings-cycle"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#guide-buildings-cycle)

![四类建筑的错误双射：尖顶住宅变成平顶楼，平顶楼变成双塔，双塔变成圆顶馆，圆顶馆变成尖顶住宅；反向映射分别回到原建筑。循环误差为零，中间身份却全部错配。](https://codingai-lec04.pages.dev/assets/labs-v13/lab03-buildings-cycle.png)


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

沿每列先比较上排与中排的屋顶、门窗和建筑类型，再看下排：输入确实回来了，中间却换成另一栋建筑。如果任务要求建筑身份保持，循环约束还缺跨域对应信息；一条正确配对锚点可把24种等频双射缩到6种，两条相容锚点缩到2种。这是LAB03的有限构造与枚举，不是训练出的CycleGAN效果。


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

[第4章：配对提供什么](https://codingai-lec04.pages.dev/lecture.html#ch04-pix2pix-three-parts) · [循环为什么仍有歧义](https://codingai-lec04.pages.dev/lecture.html#ch04-cycle-counterexample-figure) · [网页LAB03：改变配对锚点](https://codingai-lec04.pages.dev/course/notebooks/caf19cffbd744fafb371912863a03e30.html) · [同册Deepnote阅读与运行](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/caf19cffbd744fafb371912863a03e30)


<a id="path-prediction"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-prediction)


## 局部预测怎样接成一次完整生成


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

图中的路线来自已学习的时间条件去噪器；权重固定以后，采样器更新的是点的位置。八模数据、初始噪声和网络固定，20步与100步的近模式比例为58.89%与80.03%。


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

![图中的路线来自已学习的时间条件去噪器；权重固定以后，采样器更新的是点的位置。八模数据、初始噪声和网络固定，20步与100步的近模式比例为58.89%与80.03%。](https://codingai-lec04.pages.dev/course/experiments/learned/lab09-trajectories.png)


<a id="path-prediction-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-prediction-practice)

先看训练前后误差，再只改采样步数。用解析预测器作参照，分开网络近似误差与数值更新误差；不要把LAB05的可解场误说成神经网络训练。


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

[第5章：连续理解](https://codingai-lec04.pages.dev/lecture.html#ch05) · [网页LAB09：先读保存结果](https://codingai-lec04.pages.dev/course/notebooks/e6fcbdfe3ca2418c9ed09344b4ae2b33.html) · [Deepnote阅读与运行](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/e6fcbdfe3ca2418c9ed09344b4ae2b33)


<a id="path-image"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-image)


## 实际生成与修改一张图


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

每行固定初始潜变量，比较CFG 1、4、8。seed37在CFG4时是一只红杯，CFG8时红杯旁又出现了大型红色容器：红色更明显，不等于数量、关系与外观一起变正确。三组起点也不能建立普遍单调规律。


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

![三行分别为seed11、23、37，三列分别为CFG1、4、8；每行固定初始潜变量、模型和其余设置。seed37的CFG8图中，红杯旁出现了大型红色容器。](https://codingai-lec04.pages.dev/course/experiments/image-lab/figures/cfg.png)


<a id="path-image-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-image-practice)

从同一状态的空条件与有条件预测手算一次CFG，再看真实组件轨迹：文本表示→两支预测→组合→采样更新→最终VAE解码。每行保持起点不变，观察条件强度如何影响相容关系。


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

[第6章：连续理解](https://codingai-lec04.pages.dev/lecture.html#ch06) · [网页LAB06：先读保存结果](https://codingai-lec04.pages.dev/course/notebooks/aa278b6be88e4114bdfea0de5b8aee33.html#block-16f70debaa8f4a2c8cb0cb3d614bfa8a) · [Deepnote阅读与运行](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/aa278b6be88e4114bdfea0de5b8aee33)


<a id="guide-image-editing"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#guide-image-editing)


### 从生成转向局部编辑


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

![原图、矩形遮罩与未经修饰的编辑结果；本次改蓝没有可靠成功。](https://codingai-lec04.pages.dev/course/experiments/image-lab/figures/inpainting.png)


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

编辑先明确允许改哪里、目标是什么，再分别检查保护区域与目标属性。图生图与遮罩编辑保留两次“改蓝”未可靠成功的结果。保存结果先行，重算需要相应模型资源。


<a id="guide-editing-next"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#guide-editing-next)

[第6章：编辑的接口与检查](https://codingai-lec04.pages.dev/lecture.html#ch06-img2img-results) · [网页LAB06：读保存的编辑结果](https://codingai-lec04.pages.dev/course/notebooks/aa278b6be88e4114bdfea0de5b8aee33.html)


<a id="path-language"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-language)


## 语言能否换一种生成次序


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

逐个追加与多位置恢复都要维护一整句话的相容关系。图中分开已知、未知和每轮提交位置；一次并行提出候选，不保证它们同时成立。


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

![逐个追加与多位置恢复都要维护一整句话的相容关系。图中分开已知、未知和每轮提交位置；一次并行提出候选，不保证它们同时成立。](https://codingai-lec04.pages.dev/assets/labs-v13/lab04-token-traces.png)


<a id="path-language-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-language-practice)

在同一小语法任务只改提交策略，读最终联合合法率。已提交词不变是一项采样策略；复用其余位置的旧预测，还要检查上下文依赖。小语法轮数不是大语言模型延迟。


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

[第7章：连续理解](https://codingai-lec04.pages.dev/lecture.html#ch07) · [网页LAB04：先读保存结果](https://codingai-lec04.pages.dev/course/notebooks/3585d77fe4f740a0a28f9e9f6dc620fd.html) · [Deepnote阅读与运行](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/3585d77fe4f740a0a28f9e9f6dc620fd)


<a id="path-action"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-action)


## 生成怎样支持下一次行动


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

旧记录总是“走近并按按钮，然后开门”，所以两种门机制都解释得通。图中单独按按钮或只走近，让候选预测分叉；反馈由独立环境返回，不能由猜测替自己证明。


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

![旧记录总是“走近并按按钮，然后开门”，所以两种门机制都解释得通。图中单独按按钮或只走近，让候选预测分叉；反馈由独立环境返回，不能由猜测替自己证明。](https://codingai-lec04.pages.dev/course/experiments/lab10/action-feedback.png)


<a id="path-action-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/guide.html#path-action-practice)

先写竞争预测，再选一次有区分力的动作，读真实返回值并更新历史。比较有记忆与忘记历史的后续选择；没有记忆也可能用更费力的联合动作开门。这个构造环境没有训练通用世界模型。


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

[第8章：连续理解](https://codingai-lec04.pages.dev/lecture.html#ch08) · [网页LAB10：先读保存结果](https://codingai-lec04.pages.dev/course/notebooks/cc09b0442e194df5b0dd09251ac79985.html) · [Deepnote阅读与运行](https://deepnote.com/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/cc09b0442e194df5b0dd09251ac79985)


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


## 带走一次可以解释的观察


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

无需同时做完七条路径。选一个疑问，留下四句话：固定了什么、只改了什么、实际看到了什么、它支持怎样的机制解释。失败与反例同样是结果；可选实验不新增课程计分要求。


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

需要深入时进入八章Lecture；需要计算时去DERIV01；需要复现时下载Notebook和实验数据。下一讲继续追问：序列怎样组织，上下文怎样进入每一步计算？


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

[从第一章开始](https://codingai-lec04.pages.dev/lecture.html#ch01) · [回到课堂收束](https://codingai-lec04.pages.dev/classroom/N60.html?step=b2) · [课前阅读问卷](https://tally.so/r/rj7Mlo)

