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


# 旧方法怎样成为新系统的部件？

王德泉 · Coding with AI · Lecture 04


<a id="n20-6cade8529cd9"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N20.html#n20-6cade8529cd9)

上一路径从已有图像出发：编码器产生表示，解码器把它还原成图像。下一条路径拿掉已有图像，让表示生成器从随机起点产生新的表示，再交给同一个解码器。末端部件没变，表示的来源变了。


<a id="n20-46c5f6d43ac6"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N20.html#n20-46c5f6d43ac6)

这种替换成立有条件。新表示不能只是长度碰巧相同，还要在类型、尺度、空间组织和分布上与解码器所学接口相容。否则，解码器可能收到自己不会解释的输入；一个训练良好的图像解码器并不能保证任意上游输出都合理。


[课程图解] 表示来源可以改变；同一解码器复用的前提是新表示仍与接口相容。；图中标签与关系：表示从哪里来？ 同一解码器 接口保持兼容 图像输出 随机起点 表示生成器 生成兼容的表示
表示来源可以改变；同一解码器复用的前提是新表示仍与接口相容。


<a id="n20-6f0bdb8186ce"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N20.html#n20-6f0bdb8186ce)

**“系统用了 VAE 的解码器，为什么不直接叫它 VAE？”** 因为部件身份没有说明整套样本如何产生。若新表示由自回归模型按序产生，整体生成组织就包含自回归；若它由扩散过程逐步更新而来，系统还包含扩散。自动编码器或 VAE 学到的表示与解码能力，可以作为这些系统共享的基础。


<a id="n20-912e718cc575"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N20.html#n20-912e718cc575)

这与 N13 的两项检查相连：表示与解码决定哪些细节能够被恢复，上游生成决定怎样在这个空间里产生新组合。它们可以分工，也必须一起接受端到端检验。某个部件可靠，不代表整个接口组合已经可靠。


<a id="n20-5e03c269b9f7"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N20.html#n20-5e03c269b9f7)

因此，四种模型不宜理解成轮流淘汰前一代的名单。它们可能改变数据表示、训练反馈、概率组织或使用时的计算过程，回答的层次并不总相同。分析新系统时，先定位它到底换了哪一项、保留了哪一项，比只凭一个缩写归类更有用。


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

现在已经能把一个新表示变成可见椅子。但若没有一张与它逐一对应的标准答案，怎样告诉生成器哪些地方不像真实样本？下一章让反馈本身也成为一个可学习的部件。


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


## 画面怎样推进


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

真实输入经编码提供表示，同一解码器负责将兼容表示还原为图像。

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


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

表示来源改成生成器后，解码器可继续使用，但类型、尺度与分布等接口仍须相容。

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


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

能解码出结果之后仍要评价它与真实样本的关系，下一章让反馈也成为可学习部件。

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


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


## 继续阅读与实验


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


### 保留解码器，换掉上游，需要守住什么接口？


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

先从原图编码的潜网格检查重建，再让新生成器提供潜网格。即使两者形状相同，若上游把数值尺度放大一百倍，或交换了空间位置，解码器收到的也可能是训练中很少见的输入。这个构造干预说明，接口相容还包括类型、尺度、空间组织与分布，不只是数组长度。


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

自检：系统用了 VAE 解码器，整套系统是否都叫 VAE？还要看新潜变量怎样产生：AR 按序构造代码，扩散反复更新潜状态，可以共用同一解码器。部件提供像素恢复能力，上游负责新组合的联合结构；两项要分别观察，再检验完整任务。方法的部件复用没有取消生成入口的检查。


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

[继续读：潜表示怎样成为后续生成接口](https://codingai-lec04.pages.dev/lecture.html#ch03-latent-interface)


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


### [CLS 03 · 潜变量：从重建到生成](https://codingai-lec04.pages.dev/lecture.html#ch03)

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

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


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


### [LAB 07 · 图像 VAE：重建与可用起点](https://codingai-lec04.pages.dev/course/notebooks/6567b1168915486c8de4ab9cfea54a8e.html)

先比较原图与重建，再看同一先验起点。只改变 KL 权重，读取重建与编码区域的权衡。

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


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


### [LAB 02 · VAE：ELBO 缺口与重参数化](https://codingai-lec04.pages.dev/course/notebooks/450ef87bdfb149769de691b69da7a52d.html)

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

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


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


### [Variational Autoencoder](https://mit-6s978.github.io/assets/pdfs/lec2_vae.pdf#page=79)

沿表示来源到解码器追踪一次生成，判断系统改了上游先验、表示还是解码部件。

先看：第79–81页：表示在生成系统中的复用


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


### [Autoregressive Models](https://mit-6s978.github.io/assets/pdfs/lec3_ar.pdf#page=17)

用同一接口比较“编码真实输入”和“生成新表示”，核对复用解码器需要的条件。

先看：第17–19页：生成表示

