人工智能导论 第 5 章 · 第三节
课程 › 第 5 章 › 第三节 典型模型共同套路GAN目标函数GAN 变体VAEVAE 结构训练目标VAE 特点
第 5 章 人工智能生成内容与大模型 · 第三节

GAN 与 VAE

一个靠对抗练本事,一个靠压缩再还原
本 节 知 识 点
  1. 20生成式 AI 的典型模型
  2. 22生成模型的共同目标
  3. 23生成对抗网络 GAN
  4. 24GAN 的目标函数
  5. 25GAN 的三类变体
  6. 26变分自编码器 VAE
  7. 27VAE 的结构
  8. 28VAE 的训练目标
  9. 30VAE 的特点与应用
20
第 5 章 · 第三节

生成式 AI 的典型模型

四种方法都能生成新内容,做法各不相同。

第 20 页课件

重 点四种生成方法

GAN 让两个网络互相较劲。VAE 先把数据压成几个数,再还原回来。扩散模型先把图弄乱,再学着一步步变清楚。自回归模型一个词接一个词往下写。

知道更多看每种方法时抓两个问题

它从什么简单的东西出发,怎样一步步变成像样的内容。它的长处是什么,又付出了什么代价。

知道更多四个部分与八节

原课件分四个部分,本网站拆成八节,第二部分就是第三、四节。

22
第 5 章 · 第三节

生成模型的共同目标

从简单的来源出发,经过神经网络,变成一张像样的图。

第 22 页 生成模型的共同目标

从简单的来源,变出复杂的样本

简单来源比如 100 个
随机数
→
神经网络一层层加权求和,
把数“变形”
→
复杂样本一张 64 × 64 的
彩色图片
64 × 64 的彩色图片,每个像素有红、绿、蓝三个数,一共 64 × 64 × 3 = 12288 个数。模型要把 100 个随机数变成这 12288 个数,变出来的还要像一张真的图。
要素在这个例子里指什么
潜在特征那 100 个数,用来概括一张图的样子
采样机制怎样选出这 100 个数
生成映射神经网络怎样把它们变成 12288 个数
质量约束训练时怎样判断变得像不像
四种方法的出发点不完全一样。GAN 和 VAE 从一串随机数出发,扩散模型从一张和原图一样大的噪声图出发,自回归模型从已经写好的内容出发,每一步挑一个词。
100 个随机数、64 × 64 的图片,是 2015 年一篇 GAN 论文(DCGAN)采用的设置。

重 点为什么从简单的来源出发

直接凭空决定一万多个数,无从下手。随机数很容易造,难的部分交给神经网络去学。四种方法的区别,在于从什么出发、网络怎样搭、训练时怎样判断像不像。

打个比方

捏泥人时先随手抓一团泥,这团泥就是随机数。手艺好的师傅能把任何一团泥捏成像样的人像,神经网络学的就是这门手艺。

23
第 5 章 · 第三节

生成对抗网络 GAN

一个负责造假,一个负责验假,两个网络轮流较劲。

第 23 页课件

关键术语

生成对抗网络Generative Adversarial Network, GAN
由生成器和判别器组成,靠两者对抗来训练。
生成器Generator
把随机噪声变成假样本,图中的 G。
判别器Discriminator
判断收到的样本是真是假,图中的 D。

打个比方

造假币的人和验钞员较量。验钞员挑出破绽,造假的人就改进工艺,验钞员又学会看更细的地方。几轮之后,假币做得和真币几乎一样。

知道更多模式坍塌

如果生成器发现某一种图最容易骗过判别器,它会翻来覆去只画这一种,比如让它写数字,它只写“8”。这叫模式坍塌,是 GAN 训练中常见的毛病。

24
第 5 章 · 第三节

GAN 的目标函数

判别器要分清真假,生成器要骗过判别器。

第 24 页 GAN 的目标函数

判别器给每张图打一个“像真的”分数

判别器希望生成器希望
真图的得分接近 1管不着
假图的得分接近 0接近 1
0(判为假)0.51(判为真)训练初期0(判为假)0.51(判为真)理想结局真图假图
两者盯着同一个分数,却朝相反的方向使劲。理想的结局是假图做得和真图一样,判别器分不出来,只能给每张图都打 0.5 分。
这个目标写成数学式子要用到对数和期望,这里只保留了它的意思。

重 点一个式子,两个方向

把“真图得分高、假图得分低”合起来算一个总分。判别器想让总分越大越好,生成器想让它越小越好。一方的得分,就是另一方的失分。

打个比方

拔河时两队拉的是同一根绳子,一队往左,一队往右。绳子最后停在哪里,由两边的力气共同决定。

随堂练习

GAN 训练到理想状态时,判别器给假图打的分数接近多少?

  1. 0
  2. 0.5
  3. 1
  4. 100
查看答案
答案 B。假图做得和真图一样时,判别器没法分辨,给任何图都只能打 0.5 分,相当于猜硬币。分数在 0 到 1 之间,不会出现 100。
25
第 5 章 · 第三节

GAN 的三类变体

三种改进,分别让 GAN 更可控、更清晰、更稳定。

第 25 页 GAN 的三类变体

原始 GAN 的毛病,三个变体各治一个

名字改了哪里带来什么
cGAN 条件 GAN给生成器和判别器都加上条件,比如“数字 7”想要什么,就能指定生成什么
DCGAN 深度卷积 GAN两个网络都换成擅长处理图片的卷积网络图片更清晰,训练更稳
WGAN 沃瑟斯坦 GAN换了一把衡量真假差距的“尺子”训练不容易崩
cGAN 加上的条件,就是第 9 页说的条件生成。今天的文生图工具,都是在按条件生成。

关键术语

卷积神经网络Convolutional Neural Network, CNN
专门处理图片的一种神经网络,一小块一小块地看图,找出边缘、纹理等特征。

知道更多为什么变体这么多

原始 GAN 训练很不稳定,两个网络你追我赶,稍一失衡就崩溃。后来的很多变体,都在想办法让这场较量更平稳。扩散模型能后来居上,一个重要原因就是它训练起来稳定得多。

26
第 5 章 · 第三节

变分自编码器 VAE

把每张图压成地图上的一小片区域,让地图连成一片。

第 26 页课件

关键术语

自编码器Autoencoder
先把一张图压成少数几个数(编码),再从这几个数还原出图(解码)的网络。
变分自编码器Variational Autoencoder, VAE
让压出来的位置连成一片、可以随便取点的自编码器。

重 点两张图的差别

左边的普通自编码器,每张图各占一个点,点与点之间大片空白。在空白处随便取一个点,还原出来的往往是一团乱麻。右边的 VAE 把这些位置整理成连续的一片,在里面随便取一个点,都能还原出像样的图。

27
第 5 章 · 第三节

VAE 的结构

编码出一个中心和范围,在里面取点,再解码。

第 27 页 VAE 的结构

编码、取点、解码

4输入编码器中心 1.2范围 0.301.22.4取到 1.05在中心附近随机取一个数解码器4还原
  • 编码 编码器看完这张“4”,给出两个数:中心 1.2 和范围 0.3。
  • 取点 随机抽一个数,这次抽到 −0.5,于是取点 1.2 + 0.3 × (−0.5) = 1.05。随机数多半在 −1 到 1 之间,所以取点大多落在中心左右一个范围以内。
  • 解码 解码器从 1.05 出发,还原出一张“4”。
为了好画,这里的隐空间只有一个数。真实的 VAE 通常用几十到几百个数。

关键术语

均值Mean, μ
分布的中心,图中的 1.2。
标准差Standard Deviation, σ
分布的宽窄,图中的 0.3。数越大,取点的范围越宽。

重 点为什么要把随机数单独拿出来

取点的算法是“中心 + 范围 × 随机数”。随机的部分单独放在外面,中心和范围就能照常用梯度下降来调整。这个小技巧叫重参数化。

随堂练习

如果编码器给出中心 1.2、范围 0.3,这次抽到的随机数是 1,取到的点是多少?

  1. 0.3
  2. 1.2
  3. 1.5
  4. 2.2
查看答案
答案 C。取点 = 中心 + 范围 × 随机数 = 1.2 + 0.3 × 1 = 1.5。随机数为 0 时,取到的就是中心 1.2。
28
第 5 章 · 第三节

VAE 的训练目标

既要还原得像,又要地图整齐,两头都得顾上。

第 28 页 VAE 的训练目标

两个要求互相拉扯

?只管还原得像各占一块,中间是空洞只管地图整齐挤成一团,分不开两者兼顾连成一片,又能分开
还原项(重构项)

比较输入的图和还原出来的图,差得越少越好。它让每张图的特点都被保留下来。

规整项(KL 项)

要求每张图的中心和范围,别离虚线圈里的标准位置太远。它让地图连成一片,中间没有空洞。

两项加起来越小越好。把这个和取负号,就是 ELBO(证据下界),所以第 30 页说要“最大化 ELBO”。推导要用到概率论,这里没有收录。

重 点只顾一头会怎样

只顾还原,每张图各占一块,块与块之间是空洞,在空洞里取点画不出东西。只顾整齐,所有图挤成一团,分不出谁是谁,还原出来都是模糊的平均样子。两项一起变小,才能得到图中第三张那样的地图。

打个比方

收拾书桌也要两头兼顾。东西全摊在桌面上,找起来快,可是乱。全塞进一个抽屉,整齐了,要用时却得翻半天。分门别类放进几个挨着的格子,才两头都顾上。

30
第 5 章 · 第三节

VAE 的特点与应用

训练稳定、用途广,缺点是图片偏模糊。

第 30 页课件

重 点为什么偏模糊

遇到拿不准的细节,比如一根头发到底在哪里,VAE 倾向于给出几种可能的平均值,平均出来就是一片模糊。GAN 的判别器会揪住模糊不放,所以 GAN 的图往往更清晰。

知道更多用在科学上

在化学和材料研究里,VAE 可以把分子压成地图上的点。在地图上挑一个新位置,就能解码出一个新的候选分子。

随堂练习

工厂只用合格零件的照片训练了一个 VAE。拿一张有裂缝的零件照片给它还原,最可能出现什么情况?

  1. 还原误差明显变大
  2. 还原得非常好
  3. 模型拒绝运行
  4. 模型把它当成新样本继续训练
查看答案
答案 A。模型只见过合格零件,学会的是合格零件的样子。遇到有裂缝的零件,它还原不出裂缝,还原误差就会变大。设一个门槛,误差超过门槛就报警,这就是异常检测。
保山学院·人工智能教研室·曹鼎鼎