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


# 视觉词汇：编号怎样查回表示？

王德泉 · Coding with AI · Lecture 04


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

局部图块被编码为编号 B。B 本身不画出椅背，也不直接告诉解码器它应该是什么形状；它首先是字典地址。沿 B 查到一份学到的表示 E，后续部件实际使用的是这份表示，再将它解码成局部图像。


[课程图解] B是地址；真正进入后续解码的是字典查回的表示E。；图中标签与关系：局部图块 当前编号 B 小字典 A B C 取出的表示 局部重建 表示 E 沿编号查表，送入的是表示
B是地址；真正进入后续解码的是字典查回的表示E。


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

在向量量化中，模型学习有限的码本，把连续局部表示指派给其中较接近的一项。于是图像可以写成一组索引，另一个模型再学习这些索引之间怎样搭配。量化使接口离散化，也会把原来不同的细节合并到同一项，带来压缩取舍。


<a id="n19-66e6091adaf9"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N19.html#n19-66e6091adaf9)

现在同时把索引 B 和字典里那一行的名字都改成 Q。查到的表示没有改变，送进同一个解码器的内容也没有改变，所以输出可以完全相同。若只把输入索引 B 换成已有的 C，而字典不动，就会查到另一份表示；这次真正改变了后续输入。


[课程图解] 同步重命名保留表示内容，只换索引却可能查到另一份表示。；图中标签与关系：局部图块 当前编号 Q 小字典 A Q C 取出的表示 局部重建 同步改名 B → Q：表示与重建不变 只改索引：B → C 字典仍按原行查 取到另一份表示
同步重命名保留表示内容，只换索引却可能查到另一份表示。


<a id="n19-8189e67cbb9b"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N19.html#n19-8189e67cbb9b)

**“编号相近，图像也应相近吗？”** 不一定。编号用于标识，不能仅凭数值差判断视觉差异；一致重命名不应改变其含义。表示向量之间可以有模型定义的几何关系，但那是被查出的内容的关系，不是任意编号天然具有的关系。


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

可以把一个更简单的生成器想成“随机选一个类别，输出它的代表图”。它有起点和选择，但若只输出有限模板，变化能力也就受限。VQ 码本中的条目则常是局部表示，整幅图来自许多位置的组合与解码，不能把每个编号都误认为一张固定的完整图片。组合仍须学习相容关系，不是任意排索引都成立。


<a id="n19-96e01ff6af4b"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N19.html#n19-96e01ff6af4b)

离散化还涉及码本利用、量化误差和训练时怎样处理离散选择，细节放在相关材料。它是有用选择，但不是自回归的必要定义：连续视觉表示也可以通过合适的条件生成器来建模。


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

分清地址和内容后，下一页就能看懂系统复用：即使产生表示的方式变了，只要交给后端的是相容表示，同一个解码器仍可能继续使用。


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


## 画面怎样推进


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

B是字典地址，不是椅背形状本身。

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


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

沿B查到表示E，后续解码使用的是表示内容。

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


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

同步把B改名为Q不改变查出内容；只换成C会取到另一份表示。

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


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


## 继续阅读与实验


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


### 编号相近，为什么不代表图块相近？


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

假设地址 B 查出向量 eB，地址 C 查出 eC。解码器真正收到的是向量，而非字母外观。把地址 B 一致重命名为 Q，仍查出 eB，输出可以不变；只把输入换成 C、字典不动，才改变了实际送入内容。若上游模型也预测这些地址，它的输入与输出编号同样需要同步置换。


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

所以编号 3 与 7 的平均 5 没有可靠图像意义：任意重编号即可改掉这个运算，表示内容却未变。自检：每个编号都在码本里，随机排满网格是否合法？局部可查表不保证相邻笔画和整体布局相容；量化保留了有限表示，代码联合先验还须学习它们如何组合。


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

[继续读：离散码本的地址、向量与训练规则](https://codingai-lec04.pages.dev/lecture.html#ch03-codebook)


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


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

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

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


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


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

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

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


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


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

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

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


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


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

比较有限完整模板与局部码本，沿索引、码向量、解码结果逐层辨认；梯度更新细节在认清对象后再读。

先看：第50–67页：有限表示；第69–78页：向量量化

