《Generative Adversarial Nets》-GAN:生成对抗网络,一场伪造者与鉴定师的终极博弈

目录

[📌一、AI 识别世界的两种方式](#📌一、AI 识别世界的两种方式)

[📌二、 GAN的大致框架](#📌二、 GAN的大致框架)

2.1框架构建

[2.2对抗训练(Minimax Two-Player Game)](#2.2对抗训练(Minimax Two-Player Game))

2.3优化与训练

[2.4 计算优势](#2.4 计算优势)

[三、传统方法与生成模型(Generative Machines)的对比🎨](#三、传统方法与生成模型(Generative Machines)的对比🎨)

[3.1 传统方法(基于最大化似然估计)](#3.1 传统方法(基于最大化似然估计))

[3.2生成模型(Generative Machines)](#3.2生成模型(Generative Machines))

四、为什么可以通过误差的反向传递来对GAN进行求解?

五、生成对抗网络与"对抗示例"的区别

[六、模型 🔥](#六、模型 🔥)

[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)的世界里,机器学习算法常被分为判别式模型生成式模型两大阵营

判别式模型:判别式模型的目标是直接学习数据的决策边界,即在已知数据分布的情况下,判断输入数据属于哪个类别。例如,给定一张图片,它会回答:"这是猫🐱还是狗🐶?"

关键词:分类、决策边界、概率估计

  1. 逻辑回归(Logistic Regression)

  2. 支持向量机(SVM)

  3. 线性判别分析(LDA)

  4. 决策树、随机森林

  5. 深度神经网络(DNN)、BERT

  6. 条件随机场(CRF)

生成式模型:学生成式模型试图学习数据的全部分布,不仅仅是分类,还要学会如何生成相似的数据。例如,它可以生成猫🐱的图片,而不仅仅是识别猫。

关键词:数据分布、特征学习、数据生成

  1. 朴素贝叶斯(Naïve Bayes)

  2. 高斯混合模型(GMM)

  3. 隐马尔可夫模型(HMM)

  4. 变分自编码器(VAE)

  5. 生成对抗网络(GAN)

  6. 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 优点

  1. 无监督学习

    • 无需人工标注标签:直接利用真实数据分布进行训练,通过生成器(G)与判别器(D)的对抗博弈隐式学习数据内在结构。

    • 自监督思想的先驱:通过构造"真/假"二元分类任务(监督式损失函数)实现无监督学习,为后续自监督模型(如BERT的掩码语言建模)提供灵感。

  2. 生成高质量数据

    • 逼真样本生成:在图像、音频、文本等领域可生成高分辨率、细节丰富的样本(如4K游戏画面、人脸图像)。

    • 创造性应用:如风格迁移、图像修复、文本到图像生成等。

  3. **高效训练信号:**判别器提供动态训练信号,迫使生成器持续改进,相比传统生成模型(如VAE)更直接。

7.2 缺点

1、训练不稳定:G和D需要比较好的均衡,如果没有均衡好的话会导致生成的图片比较差

2、计算资源消耗大

相关推荐
说私域9 分钟前
基于定制开发开源AI智能名片S2B2C商城小程序的零售运营策略研究
人工智能·小程序·开源·零售
Constancy13 分钟前
DeepSeek 本地部署及使用
人工智能
ZHOU_WUYI29 分钟前
旋转位置编码 (2)
pytorch·python·深度学习
qq_2739002334 分钟前
AF3 squeeze_features函数解读
人工智能·pytorch·深度学习·生物信息学
fanxiaohui1213834 分钟前
元脑服务器的创新应用:浪潮信息引领AI计算新时代
运维·服务器·人工智能
新智元36 分钟前
哥大本科生靠 AI 横扫硅谷大厂 offer,学校震怒!预言码农两年内淘汰准备退学
人工智能·面试
新智元1 小时前
1 次搭建完胜 1 亿次编码,MCP 硅谷疯传!Anthropic 协议解锁智能体「万能手」
人工智能·openai
程序员~小强1 小时前
让知识触手可及!基于Neo4j的机械设备知识图谱问答系统
人工智能·python·django·知识图谱·neo4j
机器之心1 小时前
稚晖君的「好东西」揭晓!首个通用具身基座模型,机器人告别「看得懂做不来」
人工智能·openai
大刘讲IT1 小时前
Zabbix+AI大模型实战:智能故障诊断与工单预警系统设计
人工智能·zabbix