图像也能接龙:先缩短表示,再学会组合
图像也可以按顺序生成。先有一部分颜色或图块,再在已生成部分的条件下确定下一部分;自回归没有规定输出一定是文字。困难在于,高分辨率图像包含很多位置,逐个处理会形成很长的序列。
一种办法是先学习更紧凑的视觉表示:编码器把图像变成较短的表示,解码器再把表示展开成图像。自回归模型随后学习这些表示怎样组合,生成新的表示序列,再交给解码器。这里其实有两项学习任务:怎样压缩并还原,怎样构造新的合理组合。
画面用同一杯子分开检查两种错误。第一项从原图出发,经编码、解码回到重建图;若细纹在这条往返路径里已经变粗,就说明表示环节没有保住这些细节。第二项没有先编码原图,而是由生成器提供新表示;若新的组合把杯柄接断,错误发生在新组合的结构上,不能直接归给前一项压缩损失。图里的小网格用短线把相邻表示的连接关系画出来,错位在解码之前已经可见;右侧照片展示对应的断柄错误类型。这是一种关系示意,并不是说真实模型的每个潜变量都能直接读成一段杯柄。
“解码器能把每个局部都画出来,为什么还会断柄?” 因为相邻部件还要在边界上接合。能解码某一块,不代表任意两块都相容。这个问题与鞋例相通,只是约束从同色变成了图块之间的连接关系。生成表示的模型仍须学习这些关系。
压缩也不是无代价的加速。已经从表示里丢失的文字笔画或纹理,后面即使能补出自然细节,也不能保证那就是原图真实细节。因此,评价一套系统时,先检查重建保留了什么,再检查新表示是否合理,最后检查端到端任务;这样才能知道应改哪个环节。
视觉 token 也不必理解为照片里天然存在的单词;它是人为选择或学习得到的表示单元。N19 会解释离散编号如何查回表示,后面还会看到不先量化成离散编号的生成路线。
先回到文字:除了新部分彼此接得上,生成内容还必须接住原任务。下一页看一句很顺却违背照片的描述。
画面怎样推进
第1步
图像也能按位置接续,长序列使生成组织与成本成为问题。
打开这一停点第2步
原图编码再解码后的细纹损失属于压缩与表示路径。
打开这一停点第3步
新表示在解码后出现杯柄断接,是新组合的结构问题,不能与原图重建损失混同。
打开这一停点学习材料
与当前画面直接相关
缩短图像序列后,剩下哪两项学习任务?
先声明一个假想表示:32×32 的 RGB 图若逐八位颜色通道生成,共需 3,072 个位置;若被压成 8×8 潜网格、每个位置一个代码,外层序列只有 64 项。数量减少来自表示选择,不能据此直接宣称像素细节保持不变或端到端速度提升了多少。
先检查原图→编码→解码:若杯身细纹已丢失,问题在表示往返。再检查新代码→解码:若杯柄接断,可能是代码之间的新组合不相容。自检:每个局部代码都合法,能否保证整张图合法?不能;相邻边界和整体布局仍要由代码联合先验学习,压缩器与生成器承担不同任务。
连续阅读
CLS 02 · 自回归:学习条件与产生序列
按连续正文理解这条方法的训练信号、使用过程与算例;数学与实践在相关问题旁展开。
先看:第2章,从对象和问题开始
阅读与实践
LAB 01 · 自回归:联合概率、贪心与温度
先读本册保存结果,再按实现顺序核对一个算例;最后只改一个变量。
先看:先看保存结果与读图解释
在 Deepnote 阅读与运行来源与进一步阅读
Autoregressive Models
追踪图像、紧凑表示和新生成序列的接口,分别定位表示丢失与组合错误。
先看:第17–19页与58–65页:图像与生成单元
Variational Autoencoder
看表示学习怎样服务另一套生成过程,不把重建成功当成新组合已经合理。
先看:第75–81页:视觉表示与生成
