目录
[📌一、AI 识别世界的两种方式](#📌一、AI 识别世界的两种方式)
[📌二、 GAN的大致框架](#📌二、 GAN的大致框架)
[2.2对抗训练(Minimax Two-Player Game)](#2.2对抗训练(Minimax Two-Player Game))
[2.4 计算优势](#2.4 计算优势)
[三、传统方法与生成模型(Generative Machines)的对比🎨](#三、传统方法与生成模型(Generative Machines)的对比🎨)
[3.1 传统方法(基于最大化似然估计)](#3.1 传统方法(基于最大化似然估计))
[3.2生成模型(Generative Machines)](#3.2生成模型(Generative Machines))
[六、模型 🔥](#六、模型 🔥)
[6.1 G&&D](#6.1 G&&D)
[6.2 对抗目标函数](#6.2 对抗目标函数)
[6.3 如何做minimax对抗训练?](#6.3 如何做minimax对抗训练?)
[6.4 算法](#6.4 算法)
[6.5 GAN的模型缺陷](#6.5 GAN的模型缺陷)
[6.6 理论证明 🔍](#6.6 理论证明 🔍)
[7.1 优点](#7.1 优点)
[7.2 缺点](#7.2 缺点)
资源
论文:[1406.2661] Generative Adversarial Networks
根据李沐老师的讲解加上笔者个人的理解做的一个笔记,希望能够对想了解GAN的求学者有所帮助!
📌一、AI 识别世界的两种方式
在人工智能(AI)的世界里,机器学习算法常被分为判别式模型 和生成式模型两大阵营
判别式模型:判别式模型的目标是直接学习数据的决策边界,即在已知数据分布的情况下,判断输入数据属于哪个类别。例如,给定一张图片,它会回答:"这是猫🐱还是狗🐶?"
关键词:分类、决策边界、概率估计
-
逻辑回归(Logistic Regression)
-
支持向量机(SVM)
-
线性判别分析(LDA)
-
决策树、随机森林
-
深度神经网络(DNN)、BERT
-
条件随机场(CRF)
生成式模型:学生成式模型试图学习数据的全部分布,不仅仅是分类,还要学会如何生成相似的数据。例如,它可以生成猫🐱的图片,而不仅仅是识别猫。
关键词:数据分布、特征学习、数据生成
-
朴素贝叶斯(Naïve Bayes)
-
高斯混合模型(GMM)
-
隐马尔可夫模型(HMM)
-
变分自编码器(VAE)
-
生成对抗网络(GAN)
-
Diffusion Models(扩散模型)
GAN(Generative Adversarial Network) 是由 Ian Goodfellow 在 2014 年提出的一种神经网络架构,它巧妙地结合了判别式模型和生成式模型,形成了一种"对抗学习"机制。
📌二、 GAN的大致框架
该框架是一种对抗性训练方法,通过生成模型 G 和 判别模型 D 之间的博弈来估计数据分布,从而提升生成质量。
2.1框架构建
-
生成模型 G 负责生成数据,目标是学习真实数据分布,使生成数据尽可能接近真实数据。
-
判别模型 D 负责区分数据是真实的还是 G 生成的,目标是提高分类准确率。
-
二者对抗:G 试图欺骗 D,使其误判;D 则不断优化,以提高识别能力。
2.2对抗训练(Minimax Two-Player Game)
-
该过程可建模为一个最小化-最大化博弈问题,即:
-
G 试图最大化 D 误判的概率。
-
D 试图最小化分类错误率。
-
-
在最优情况下,G 生成的数据与真实数据分布完全一致,D 无法区分两者(分类准确率接近 50%)。
2.3优化与训练
-
G 和 D 可以使用多层感知机(MLP)训练,并通过误差反向传播优化参数。
-
该方法不依赖马尔科夫链或复杂的推理过程,相较于传统方法更简单高效
2.4 计算优势
G 的输入是随机噪声 (如高斯分布),通过MLP (多层感知机)将其映射到目标数据分布。当 D 也是 MLP 时,该方法被称为Adversarial Nets(对抗网络)。
由于两个网络均为 MLP ,训练时可以直接使用误差反向传播,无需使用马尔科夫链等复杂采样方法,因此计算效率更高。
结果:G 生成的样本不断接近真实数据,最终判别模型 D 无法区分真假,达到最优生成效果。
三、传统方法与生成模型(Generative Machines)的对比🎨
3.1 传统方法(基于最大化似然估计)
-
目标:构造一个明确的概率分布,并通过最大化对数似然函数来优化参数。
-
计算问题:
-
需要显式定义概率密度函数(如高斯分布、指数分布)。
-
高维情况下计算复杂,因为涉及对概率分布的采样和积分运算,计算成本高。
-
-
结果:可以得到一个明确的分布,包括均值、方差等统计参数。
3.2生成模型(Generative Machines)
-
目标:不去构造一个明确的概率分布,而是学习一个生成模型来近似目标分布。
-
计算优势:
-
不需要显式定义概率密度函数,而是通过模型学习数据分布。
-
计算更高效,尤其在高维数据情况下,不用进行复杂的积分计算。
-
-
缺点:最终学习出的模型虽然可以生成数据 ,但不容易知道它的真实概率分布是什么样的。
四、为什么可以通过误差的反向传递来对GAN进行求解?
在 GAN(生成对抗网络)中,我们可以通过误差的反向传播来优化模型,主要原因之一是 对 f的期望求导等价于对 f 自身求导 。这个性质使得在训练 GAN 时,可以直接对损失函数进行梯度下降 ,GAN 的目标函数是可微的,并且判别器和生成器都是神经网络 ,可以通过 误差的反向传播(Backpropagation) 计算梯度并更新参数。
五、生成对抗网络与"对抗示例"的区别
-
GAN(生成对抗网络) :就像是两个模型在玩"谁能更好地骗过对方"的游戏。一个模型(生成器)负责生成假的数据(比如假照片),另一个模型(判别器)负责判断这些数据是不是假的。最终,生成器学会了生成越来越像真的数据,而判别器则变得越来越难以分辨真假数据。这个过程可以用来创造新数据,比如AI画图、生成音乐或者视频。
-
对抗示例 :这就像是给现有的数据做微小的"恶作剧" ,通过一些小的、几乎看不见的改变,故意让模型做出错误的判断。比如,在图片上加点小噪音,让计算机看错,或是让自动驾驶的系统误判交通标志。这个技术主要用于测试模型的安全性,看看它能不能抵抗这些"恶作剧"。
简而言之,GAN是用来创造 新数据,而对抗示例是用来攻击模型,看看它能不能识别和抵抗这些"骗局"。
六、模型 🔥
6.1 G&&D

6.2 对抗目标函数

6.3 如何做minimax对抗训练?
V(G,D)是一个价值函数;公式右边第一项是期望,x是采样真实分布;公式右边第二项是期望,x是采样噪音分布;在D是完美的情况下,公式右边的两项应该都是等于0的;如果D不完美、有误分类的情况下,这两项因为log的关系,都会变成一个负数值;所以如果想要辨别器完美地分类这两类的话,就应该最大化D的值,最小化G,目标函数中有两个东西,一个是min,一个是max,和一般的训练步骤有所区别,一般只有一个min,或者只有一个max,这里既有min又有max,就是两个模型在相互对抗:D是尽量把数据分开,G是尽量使生成数据分不开,这个在博弈论中叫两人的minimax游戏
如果达到了一个均衡,就是D不能往前进步,G也不能往前进步了,就认为达到了均衡,这个均衡叫做纳什均衡(嘻嘻这个在博弈论这门课上了解过,没想到半年后阅读GAN论文时还能碰到)

(a)表示第一步的时候,生成器将均匀分布进行映射,图中绿色的线就是把z映射成了一个高斯分布,此时辨别器视图中蓝色的线,表现一般
(b)表示更新辨别器,尽量把这两个东西分开,两个高斯分布的最高点表示真实分布和噪声最有可能出现的地方,辨别器要在真实分布的地方值为1,在噪音分布的地方值为0,这样就可以尽量将来自真实分布的x和来自于生成器的x尽量分别开来
(c)表示尽量更新生成器,使得能够尽量糊弄到辨别器(就是将生成器生成的高斯分布的峰值尽量左移,向真实数据的高斯分布进行靠拢),让辨别器犯错,这时候辨别器就需要尽量调整来把这两个细微的区别区别开来。
(d)表示通过不断地调整生成器和辨别器,直到最后生成器的模型能够将来自均匀分布的随即噪音z映射成几乎跟真实分布差不多融合的高斯分布,即从真实的黑点中采样还是从生成器的绿线采样,辨别模型都是分辨不出来的(不管来自于哪个分布,辨别器对这每个值的输出都是0.5,这就是GAN最后想要的结果:生成器生成的数据和真实数据在分布上是完全分别不出来的,辨别器最后对此无能为力)
6.4 算法

**关于k?**k是一个超参数,k不能取太小,也不能取太大,需要辨别器有足够的更新但也不要更新的太好。如果没有足够好的更新,对新的数据,生成器生成的东西已经改变了,如果辨别器没有做相应的变化,那么再更新生成器来糊弄D其实意义不大;反过来讲如果将D训练到足够完美,log(1-D(G(z)))就会变成0,对0进行求导,生成模型的更新就会有困难。
6.5 GAN的模型缺陷
1、D和G的损失函数呈动态博弈关系,D的损失下降可能对应G的损失上升(反之亦然),传统单模型收敛指标(如损失曲线平稳)不适用。
2、早期训练容易出现梯度消失问题:当G较弱时,生成数据 G(z)G (z) 与真实数据差异显著,D可轻松区分(D(G(z))→0),导致目标函数第二项 log(1−D(G(z)))→0.
改进策略:


6.6 理论证明 🔍
结论一:最优判别器的数学形式

结论二:生成器的目标等价于最小化JS散度

JS散度和KL散度的区别:JS散度是对称的,而KL不是对称的,不能将p和q进行互换,但是对于JS散度,将p和q进行互换也是可以保持不变的,所以说它是一个对称的散度,而KL是一个不对称的散度,因为GAN是一个对称的散度,所以使得它在训练上更加容易
七、评价✍
7.1 优点
-
无监督学习:
-
无需人工标注标签:直接利用真实数据分布进行训练,通过生成器(G)与判别器(D)的对抗博弈隐式学习数据内在结构。
-
自监督思想的先驱:通过构造"真/假"二元分类任务(监督式损失函数)实现无监督学习,为后续自监督模型(如BERT的掩码语言建模)提供灵感。
-
-
生成高质量数据:
-
逼真样本生成:在图像、音频、文本等领域可生成高分辨率、细节丰富的样本(如4K游戏画面、人脸图像)。
-
创造性应用:如风格迁移、图像修复、文本到图像生成等。
-
-
**高效训练信号:**判别器提供动态训练信号,迫使生成器持续改进,相比传统生成模型(如VAE)更直接。
7.2 缺点
1、训练不稳定:G和D需要比较好的均衡,如果没有均衡好的话会导致生成的图片比较差
2、计算资源消耗大