当前位置: 首页 > news >正文

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

目录

📌一、AI 识别世界的两种方式

📌二、 GAN的大致框架

2.1框架构建

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

2.3优化与训练

 2.4 计算优势

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

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

3.2生成模型(Generative Machines)

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

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

 六、模型 🔥

6.1 G&&D

6.2 对抗目标函数 

6.3  如何做minimax对抗训练?

6.4 算法

 6.5 GAN的模型缺陷

6.6 理论证明 🔍

七、评价✍

7.1 优点

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、计算资源消耗大

相关文章:

  • 深度学习——同一台电脑使用ssh配置多个github账号
  • LLM - 白话向量模型和向量数据库
  • CI/CD
  • 【Qt】supervisorctl进程管理:启动、重启、环境设置
  • 求阶乘的和(信息学奥赛一本通-1091)
  • 蛋白质功能预测论文阅读记录2025(DPFunc、ProtCLIP)
  • L2-4 吉利矩阵
  • 【小白向】Ubuntu|VMware 新建虚拟机后打开 SSH 服务、在主机上安装vscode并连接、配置 git 的 ssh
  • OkHttp3 详解及开发实例—官方原版(一)
  • 计算机毕业设计:基于web的乡村旅游系统
  • ubuntu软件——视频、截图、图片、菜单自定义等
  • ROS实践(三)机器人描述文件xacro(urdf扩展)
  • 【MySQL】用户管理和权限
  • Hive SQL 精进系列:COALESCE 手册
  • 【面试】计算机网络
  • 面试之《IntersectionObserver的使用》
  • AI 大模型统一集成|让 AI 聊天更丝滑:WebSocket 实现流式对话!
  • 数据批处理(队列方式)
  • 高并发场景下如何实现消息精准一次消费?实战Java幂等性设计
  • 如何阅读webpack-bundle-analyzer分析生成的图
  • 国家能源局:支持民营企业参股投资核电项目
  • 马上评|“AI神医宇宙”欺诈,连演员都不请了
  • 哈马斯同意释放剩余所有以色列方面被扣押人员,以换取停火五年
  • 魔都眼·上海车展⑥|周六客流超13.5万人次,创开展新高
  • 特朗普将举行集会庆祝重返白宫执政百日,美媒:时机不当
  • 罗马教皇方济各葬礼在梵蒂冈举行