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

生成对抗网络(GAN)原理详细讲解

一、GAN 能做什么?

GAN 是无监督学习的颠覆性框架,具备强大的生成能力

  1. 图像生成:生成逼真的人脸(如StyleGAN)、艺术作品(如ArtBreeder)
  2. 数据增强:为医疗影像等稀缺数据生成合成样本
  3. 跨模态转换:图像风格迁移(照片→油画)、文本生成图像(如DALL·E)
  4. 缺失数据补全:图像修复(如老照片修复)
  5. 科学模拟:生成分子结构、天文现象模拟

核心价值:学习数据分布并生成训练集中不存在但符合分布的新样本


二、GAN 的定义

核心思想(Goodfellow, 2014):

让两个神经网络(生成器 Generator判别器 Discriminator)通过对抗博弈共同进化,最终生成器可生成以假乱真的数据。

GAN 模型示意图
GAN 模型示意图
  • 生成器(Generator)​​能够输入一个向量,输出需要生成固定大小的像素图像
  • 判别器(Discriminator)​​用来判别图片是真的还是假的,输入图片(训练的数据或者生成的数据),输出为判别图片的标签

三、GAN 的理解

  • 思想:从训练库里获取很多训练样本,从而学习这些训练案例生成的概率分布

    GAN 理解示意图
    GAN 理解示意图

过程分析:

  • 1、定义GAN结构生成数据

    • (a) 状态处于最初始的状态
      生成器生成的分布和真实分布区别较大,并且判别器判别出样本的概率不稳定。
  • 2、在真实数据上训练判别器

    • 操作步骤
      1. 在真实数据上训练 nnn epochs 判别器;
      2. 生成 fake(假数据) 并训练判别器将其识别为假。
    • 训练目标
      通过多次训练判别器达到 (b) 样本状态 → 此时判别样本区分得非常显著。
  • 3、训练生成器达到欺骗判别器的效果

    • 操作结果
      训练生成器之后达到 (c) 样本状态 → 此时生成器分布相比之前逼近了真实样本分布。
    • 迭代说明
      经过多次反复训练迭代之后,最终希望达到 (d) 状态
      • 生成样本分布拟合于真实样本分布;
      • 判别器分辨不出样本是生成的还是真实的。

四、训练损失

min⁡Gmax⁡DV(D,G)=Ex∼pdata(x)[log⁡D(x)]+Ez∼pz(z)[log⁡(1−D(G(z)))] \min _{G} \max _{D} V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text{data}}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] GminDmaxV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]

公式解析:

  1. V(G,D)V(G,D)V(G,D) 的含义
    表示 pdatap_{data}pdata(真实数据分布)和 pzp_{z}pz(生成数据分布)的差异程度

  2. max⁡DV(D,G)\max_D V(D, G)maxDV(D,G) 步骤
    固定生成器 GGG,训练判别器 DDD 使其最大化区分能力

    • 对真实样本:提高 D(x)→1D(x) \to 1D(x)1
    • 对生成样本 G(z)G(z)G(z):使 D(G(z))→0D(G(z)) \to 0D(G(z))0
  3. min⁡G\min_GminG 步骤
    固定判别器 DDD,优化生成器 GGG最小化差异

    • 使生成样本 G(z)G(z)G(z) 被判别为真实的概率 D(G(z))→1D(G(z)) \to 1D(G(z))1

判别器的本质:相当于一个分类器,判断图片的真伪,二分类问题,使用交叉熵损失。

对于真实样本
对数预测概率损失,提高预测的概率
Ex∼pdata (x)log⁡(D(x))E_{x \sim p_{\text {data }}(x)} \log (D(x))Expdata (x)log(D(x))

对于生成样本
对数预测概率损失,降低预测概率
Ez∼pz(z)log⁡(1−D(G(z))) E_{z \sim p_{z}(z)} \log (1-D(G(z)))Ezpz(z)log(1D(G(z)))

最终可以这样
 Maximize V~=1m∑i=1mlog⁡D(xi)+1m∑i=1mlog⁡(1−D(x~i)) Minimize L=−1m∑i=1mlog⁡D(xi)−1m∑i=1mlog⁡(1−D(x~i))\begin{array}{l}\color{blue}{\text{ Maximize }} \tilde{V}=\dfrac{1}{m} \sum\limits_{i=1}^{m} \log D\left(x^{i}\right)+\dfrac{1}{m} \sum\limits_{i=1}^{m} \log \left(1-D\left(\tilde{x}^{i}\right)\right) \\\color{blue}{\text{ Minimize }} L=-\dfrac{1}{m} \sum\limits_{i=1}^{m} \log D\left(x^{i}\right)-\dfrac{1}{m} \sum\limits_{i=1}^{m} \log \left(1-D\left(\tilde{x}^{i}\right)\right)\end{array} Maximize V~=m1i=1mlogD(xi)+m1i=1mlog(1D(x~i)) Minimize L=m1i=1mlogD(xi)m1i=1mlog(1D(x~i))
公式变量说明

  • xix^ixi:第 iii真实样本
  • x~i=G(zi)\tilde{x}^i = G(z^i)x~i=G(zi):第 iii生成样本
  • mmm:批训练样本数量

五、G、D结构

  • 核心定义
    G(生成器)与 D(判别器)是两个独立网络,需支持反向传播可导计算。

  • 不同版本GAN的结构演变

    • 2014年初版模型(原始GAN)

      • 结构: G 和 D 均为 多层感知机(MLP)
      • 缺点: 训练难度大,生成效果差(难以收敛)
    • 2015年改进版(DCGAN: Deep Convolutional GAN)

      • 四项关键改进
          1. 判别器D
          • 移除池化层 → 全部替换为卷积层
          • 生成器G:使用反卷积(下图示例)
          1. 归一化优化
          • D 和 G 均加入批量归一化层(BN)
          1. 全连接层移除
          • 完全去除网络中的所有全连接层(FC层)
          1. 激活函数调整
          • 判别器D所有层使用 Leaky ReLU(α=0.2)
          • 生成器G
            • 输出层外 → 使用 ReLU
            • 输出层 → 使用 tanh(压缩值域至 [-1, 1])
    反卷积过程示意图
    反卷积过程示意图

六、GAN 架构解析

判别器 D
生成器 G
更新权重
更新权重
D
真实样本 x
真实概率 D(x)
虚假概率 D(G(z))
生成样本 G(z)
神经网络
随机噪声 z
判别器损失
生成器损失

关键组件

  1. 生成器(G)

    • 输入:低维随机噪声向量z∼N(0,1)z \sim \mathcal{N}(0,1)zN(0,1)
    • 结构:上采样网络(转置卷积、反卷积)
    • 输出:与真实数据同维度的样本(如图像像素矩阵)
  2. 判别器(D)

    • 输入:真实样本 xxx 或生成样本G(z)G(z)G(z)
    • 结构:卷积神经网络(图像任务)
    • 输出:样本为真的概率 D(⋅)∈[0,1]D(\cdot) \in [0,1]D()[0,1]

七、训练过程详解

训练循环(交替优化):

采样真实数据 x 和噪声 z
生成假样本 G(z)
固定G, 更新D: 最大化 logD(x) + log(1-D(G(z)))
采样新噪声 z
固定D, 更新G: 最小化 log(1-D(G(z))) 或 最大化 log(D(G(z)))

实际训练技巧:

  1. 梯度惩罚(WGAN-GP):解决梯度消失/爆炸
  2. 标签平滑:防止判别器过度自信
  3. 历史参数平均(EMA):稳定生成器输出

八、GAN 的挑战与突破

问题解决方案代表模型
模式崩溃多判别器/最小二乘损失LSGAN, MAD-GAN
训练不稳定梯度惩罚/Wasserstein距离WGAN-GP
生成质量低渐进式训练/风格控制ProGAN, StyleGAN
评估困难感知指标+多样性度量FID, IS

总结

GAN 通过生成器-判别器的对抗博弈,实现了从数据分布中创造性生成样本的能力。其核心价值在于:

  1. 无监督表征学习:无需标注数据即可捕捉复杂分布
  2. 跨域迁移能力:打通图像/文本/音频的生成边界
  3. 推动AI创造性:成为AIGC(AI生成内容)的核心引擎

未来方向:结合扩散模型提升稳定性、探索3D生成、解决伦理安全问题。正如Yann LeCun所言:“GAN是深度学习过去20年最有趣的想法”

http://www.dtcms.com/a/275193.html

相关文章:

  • MoE混合专家模型:千亿参数的高效推理引擎与架构革命
  • python文件操作与正则表达式综合练习
  • 第三方渗透测试:范围咋定?需供应商同意吗?
  • 【经典面经】C++新特性 TCP完整收发数据 TLS1.2 TLS1.3
  • 低成本的AI知识库方案及推荐
  • 计算机网络第三章(6)——数据链路层《网桥交换机》
  • 【Python3教程】Python3高级篇之CGI编程
  • Windows系统下GroundingDINO的安装2025(踩无数坑)
  • Django母婴商城项目实践(三)
  • SpringBoot 使用注解获取配置文件中的值
  • 揭示宇宙的隐藏对称性:群论-AI云计算拓展核心内容
  • 加密狗真的坏了吗?CodeMeter 锁故障判定与质保指引
  • 2025 年第十五届 APMCM 亚太地区大学生数学建模竞赛B题 疾病的预测与大数据分析
  • SpringCloud之Ribbon
  • vue入门学习教程
  • Go语言中的组合式接口设计模式
  • Go·并发处理http请求实现
  • Python Day10
  • C语言初阶4-数组
  • UE5多人MOBA+GAS 18、用对象池来设置小兵的队伍的生成,为小兵设置一个目标从己方出生点攻打对方出生点,优化小兵的血条UI
  • Xavier公式的原理
  • 备案是联系主机商还是域名商
  • ESP32语音唤醒
  • 【B题解题思路】2025APMCM亚太杯中文赛B题解题思路+可运行代码参考(无偿分享)
  • 【内赠门票】GoGoGo!NetMarvel邀您出发ChinaJoy啦!
  • UniHttp中HttpApiProcessor生命周期钩子介绍以及公共参数填充-以百度天气接口为例
  • cocos游戏开发中,如何制作一个空气墙
  • WHIP 协商分析研究
  • 背包初步(0-1背包、完全背包)
  • PID 算法的原理与应用 (通俗易懂)