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


# 四条路线，都在把可能性变成一个完整结果

王德泉 · Coding with AI · Lecture 04


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

四行结果可能都很像真实对象，但辨认方法时，应先看它从哪里开始、怎样得到完整结果。终图本身通常不足以告诉我们用了哪一种生成模型。


<a id="n08-672fc23548bb"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N08.html#n08-672fc23548bb)

自回归把结果拆成有顺序的部分：先作一个选择，再把已有结果作为下一步条件。VAE 建立潜变量与图像之间的联系：生成时从规定的起点分布取值，再由解码器产生可见结果。GAN 用一个学到的评价者参与训练，让生成器逐渐缩小生成样本与真实样本的差别；常见使用路径是从随机起点经生成器直接出图。扩散则从受扰状态出发，利用预测与更新规则反复改动同一份状态，逐渐形成样本。


[课程图解] 沿各行的起点和生成过程比较；相似终图不能代替生成过程的区别。；图中标签与关系：AR 已有部分 红左鞋 选择下一部分 成对 VAE 小起点 同一解码器 整体 GAN 随机输入 生成器 候选 扩散 同一状态 连续更新
沿各行的起点和生成过程比较；相似终图不能代替生成过程的区别。


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

这张地图比较的是常见的组织方式，不是四个完全不相交的盒子。VAE 和 GAN 都可以从紧凑的随机起点出发，区别还涉及训练关系；自回归和扩散也可以在潜在表示里工作，共享同一个图像解码器。只看到“随机数→神经网络→图片”，还无法分清整套方法。


<a id="n08-49ccd2a6f739"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N08.html#n08-49ccd2a6f739)

**“GAN 有评价者，每次生成都要让它挑图吗？”** 通常不用。评价者主要在训练时提供反馈，使生成器参数发生改变；训练好之后，生成器可以直接产生样本。训练时需要什么，与使用时实际走哪条路径，要分开追踪。


<a id="n08-8556669aa116"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N08.html#n08-8556669aa116)

比较一个方法时，可以按五件事理解：任务要求什么，结果用什么表示，训练反馈来自哪里，参数怎样更新，使用时怎样取出样本。网络结构只是其中一环。Transformer 不是自回归的同义词，U-Net 也不是扩散的定义；相同网络可以服务不同目标和采样过程。


<a id="n08-565869f9b06e"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N08.html#n08-565869f9b06e)

下面先从最容易亲自做出的过程开始：既然要交付一双同色鞋，选完左鞋后，右鞋该怎样决定？这次我们不只检查组合，而是用依赖关系真正组织一次生成。


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


## 画面怎样推进


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

观察起点与中间状态：逐步追加、从紧凑起点解码、生成器出图和反复更新有不同组织。

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


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

四种路线区别涉及表示、学习反馈与采样过程，不能只由终图或网络名字区分。

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


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

GAN评价者主要在训练中改变生成器，通常不是每次使用时的必经关口；部件与系统可组合。

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


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


## 继续阅读与实验


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


### 只看“随机数进、图片出”，能认出模型路线吗？


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

VAE 与 GAN 都可能在使用时把随机潜变量交给一个网络直接出图；只看这条箭头，无法区分二者。还需读训练：VAE 怎样用输入推断潜分布并兼顾重建与先验，GAN 怎样让判别器反馈改变生成器。两套训练关系可以产生外表相似的使用接口。


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

自回归要追踪已提交部分如何成为下一步条件；扩散要追踪同一带噪状态怎样反复更新。自检：图中用了 Transformer，能否认定是自回归？不能，网络结构决定怎样计算，目标与采样规则决定它在做哪种生成。比较方法时把表示、反馈、参数更新与使用路径分别写清。


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

[继续读：四条路线的训练与使用分工](https://codingai-lec04.pages.dev/lecture.html#ch01-model-map)


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


### [CLS 01 · 从条件多解到生成目标](https://codingai-lec04.pages.dev/lecture.html#ch01)

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

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


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


### [LAB 01 · 自回归：联合概率、贪心与温度](https://codingai-lec04.pages.dev/course/notebooks/39071d41f84d4621ad69c6140a6dccc9.html)

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

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


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


### [Introduction](https://mit-6s978.github.io/assets/pdfs/lec1_intro.pdf#page=29)

用这组拆分重新标注四条路线，分清生成组织、网络结构和训练反馈。

先看：第29–36页：建模、表示、目标与采样

