生成模型

一个要求,怎样产生多个合理结果?

一个器形镂空模版展开为三个不同的完整器物,蓝色结构由金色纸带连接。

生成模型

左右滑动查看完整图解 ↔

放大阅读图解 ↗

本讲目录

封面与60页正文

开篇:从任务到可能性

自回归与VAE:逐步决定与潜表示

GAN:反馈、约束与编辑

扩散及延展:从局部改进到跨段生成

World Model、语言与全课回收

本页说明

学习材料

没有标准答案,谁来告诉生成器哪里要改?

上一页把表示接回图像,留下了一个训练问题:随机起点并没有配给一张唯一正确的照片,生成器怎样知道自己该改什么?GAN 引入一个会学习的判别器。它看到参考数据与当前生成候选,学习两组之间可区分的线索;生成器则利用这个反馈,让自己的候选更难被区分。

先看杯子的例子。参考组的杯柄接在杯身上,当前候选却有不自然的连接。判别器如果学到了这个差别,就能通过可微的计算为生成器提供改进方向。它并不是把“杯柄向左移动三毫米”写成文字指令,而是由损失对生成图及生成器参数的导数,告诉训练过程怎样调整参数。课堂杯图用来说明这项关系;参考数据与生成候选是两组的角色名称,不是在鉴定图像是否来自实拍。

但反馈能负责到哪里,取决于判别器看到了什么。假设任务要求白色陶瓷杯,候选却是一只很逼真的金属杯。只读图像、学习外观自然度的判别器,可能没有理由拒绝它。若参考图与生成图的边框处理不同,它还可能学会识别边框,而不是我们关心的杯柄。要检查“符合这个条件”,就必须把相应条件与图像的关系纳入训练。外观像真的,并没有自动回答任务是否做对。

参考数据新候选杯沿仍需检查学到的反馈生成器外观自然但要求白色陶瓷条件须接入评价
没有把本次要求与候选的对应关系纳入训练,自然度反馈不能自动保证白色陶瓷要求。

“生成器和判别器都在改变,会不会互相追着跑?” 会,二者通常交替训练。训练判别器时,生成样本充当当前反例,这一步只更新判别器。训练生成器时,暂时固定判别器的参数,但仍让反馈经过判别器传回生成图,再传到生成器。固定参数不等于切断这条导数路径;如果整段判别计算都不记录梯度,生成器就收不到这项反馈。交替训练有清楚的目标,但有限数据、容量和优化过程并不保证稳定收敛。

从整体看,训练希望改变的是生成器在各种随机起点上产生的分布,而不只是修好眼前这只杯子。理想分析中会讨论足够强的判别器和达到平衡时的关系;实际训练还需检查是否只学会少数样式、是否出现不稳定。损失下降不能单独替这些检查作答。

训练结束后的通常使用路径更短:抽取随机起点,送入生成器,得到一张候选。判别器帮助训练参数,并不要求每次生成都参与逐张筛选。任务若需要额外筛选,那是使用系统又增加的一道环节。

下一页把视野从一张移到一批:如果每张杯子都很漂亮,但六张几乎只有同一种杯形,这个生成器学到了多少可能性?

画面怎样推进

第1步

参考数据与候选的差别,为学习到的判别器提供训练线索;这里先比较杯柄连接。

打开这一停点

第2步

反馈可能改善外观,但没有收到白色陶瓷条件的判别器,不能自动检查该要求。

打开这一停点

第3步

训练后的生成器通常直接由随机起点出图;判别器并非每次使用必经的选图部件。

打开这一停点

学习材料

与当前画面直接相关

没有给每个随机起点配真图,G怎样获得学习信号?

设某个生成样本在当前D处的分数为0.2,G的非饱和损失是−log(0.2)≈1.609;若分数变为0.6,损失降到约0.511。训练并不是拿这个差值直接移动杯柄,而是计算损失经D到生成图、再到G参数的导数,让同一套G参数改变未来一批输出。

这一步固定D参数,仍保留D对输入的导数:固定函数f(x)=2x,df/dx仍为2。轮到D学习时则只把生成图当作数值反例,不更新G。通常生成新图只运行G;D的反馈已经留在学到的参数中。

接着读:G步的目标与固定参数为何仍可反传。

连续阅读

CLS 04 · 对抗反馈与图像翻译

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

先看:第4章,从对象和问题开始

阅读与实践

LAB 08 · 生成器与判别器的真实反馈

固定生成起点比较训练前中后;改变 D:G 更新比,分别读近模式比例与模式覆盖。

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

在 Deepnote 阅读与运行

LAB 03 · CycleGAN:可逆不等于语义正确

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

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

在 Deepnote 阅读与运行

来源与进一步阅读

Generative Adversarial Networks

先认清G与D各自更新哪组参数,再追踪生成器训练时反馈经过D返回的路径。

先看:第5–14、15–29页