Skip to content

Latest commit

 

History

History
193 lines (144 loc) · 17.6 KB

File metadata and controls

193 lines (144 loc) · 17.6 KB

目录

1.哪些经典的GAN模型跨过了周期,在AIGC时代继续落地使用?

GAN作为传统深度学习时代的主流生成式模型,在AIGC时代到来后,终于“退居二线”,成为Stable Diffusion模型的得力助手。Rocky认为这是GAN最好也是最合适的落地方式,所以Rocky持续梳理总结了在AIGC时代继续繁荣的GAN模型,为大家指明GAN快速学习入门的新路线:

  1. GAN优化:原生GAN、DCGAN、CGAN、WGAN、LSGAN等
  2. 图像生成:bigGAN、GigaGAN等
  3. 图像风格迁移:CycleGAN、StyleGAN、StyleGAN2等
  4. 图像编辑:Pix2Pix、GauGAN、GauGAN2、DragGAN等
  5. 图像超分辨率重建:SRGAN、ESRGAN、Real-ESRGAN、AuraSR等
  6. 图像修复/人脸修复:GFPGAN等

2.GAN的核心思想?

2014年,Ian Goodfellow第一次提出了GAN的概念。Yann LeCun曾经说过:“生成对抗网络及其变种已经成为最近10年以来机器学习领域最为重要的思想之一”。GAN的提出让生成式模型重新站在了深度学习这个浪潮的璀璨舞台上,与判别式模型开始谈笑风生。

GAN由生成器$G$和判别器$D$组成。其中,生成器主要负责生成相应的样本数据,输入一般是由高斯分布随机采样得到的噪声$Z$。而判别器的主要职责是区分生成器生成的样本与$gt(GroundTruth)$样本,输入一般是$gt$样本与相应的生成样本,我们想要的是对$gt$样本输出的置信度越接近$1$越好,而对生成样本输出的置信度越接近$0$越好。与一般神经网络不同的是,GAN在训练时要同时训练生成器与判别器,所以其训练难度是比较大的。

在提出GAN的第一篇论文中,生成器被比喻为印假钞票的犯罪分子,判别器则被当作警察。犯罪分子努力让印出的假钞看起来逼真,警察则不断提升对于假钞的辨识能力。二者互相博弈,随着时间的进行,都会越来越强。在图像生成任务中也是如此,生成器不断生成尽可能逼真的假图像。判别器则判断图像是$gt$图像,还是生成的图像。二者不断博弈优化,最终生成器生成的图像使得判别器完全无法判别真假。

GAN的对抗思想主要由其目标函数实现。具体公式如下所示:

上面这个公式看似复杂,其实不然。跳出细节来看,整个公式的核心逻辑其实就是一个min-max问题,深度学习数学应用的边界扩展到这里,GAN便开始发光了

接着我们再切入细节。我们可以分两部分开看这个公式,即判别器最小化角度与生成器最大化角度。在判别器角度,我们希望最大化这个目标函数,因为在公示第一部分,其表示$gt$样本$(x ~Pdata)$输入判别器后输出的置信度,当然是越接近$1$越好。而公式的第二部分表示生成器输出的生成样本$(G(z))$再输入判别器中进行进行二分类判别,其输出的置信度当然是越接近$0$越好,所以$1 - D(G(z))$越接近$1$越好。

在生成器角度,我们想要最小化判别器目标函数的最大值。判别器目标函数的最大值代表的是真实数据分布与生成数据分布的JS散度,JS散度可以度量分布的相似性,两个分布越接近,JS散度越小(JS散度是在初始GAN论文中被提出,实际应用中会发现有不足的地方,后来的论文陆续提出了很多的新损失函数来进行优化)

写到这里,大家应该就明白GAN的对抗思想了,下面是初始GAN论文中判别器与生成器损失函数的具体设置以及训练的具体流程:

在图中可以看出,将判别器损失函数离散化,其与交叉熵的形式一致,我们也可以说判别器的目标是最小化交叉熵损失。

3.面试常问的经典GAN模型?

  1. 原始GAN及其训练逻辑
  2. DCGAN
  3. CGAN
  4. WGAN
  5. LSGAN
  6. PixPix系列
  7. CysleGAN
  8. SRGAN系列

4.生成对抗网络GAN与传统神经网络有何不同?

生成对抗网络(GAN)的定义

  • 生成对抗网络(Generative Adversarial Network,GAN)是一种深度学习架构,由生成器(Generator)和判别器(Discriminator)两个部分组成。
  • 生成器的主要任务是学习数据的分布,并生成尽可能逼真的数据来欺骗判别器。例如,它可以学习人脸图像的数据分布,然后生成新的人脸图像。生成器接收一个随机噪声向量(通常是低维的)作为输入,通过一系列的神经网络层(如全连接层、卷积层等)将这个噪声转化为生成的数据样本。
  • 判别器则用于区分真实数据和生成器生成的数据。它接收真实数据和生成数据作为输入,输出一个概率值,表示输入的数据是真实数据的概率。例如,对于一张图像,判别器会判断它是真实拍摄的人脸图像还是生成器生成的人脸图像,输出一个介于0到1之间的概率。
  • 这两个部分在训练过程中相互对抗、相互学习。生成器试图让生成的数据尽可能地骗过判别器,而判别器则试图更好地分辨真实数据和生成数据,随着训练的进行,生成器生成的数据越来越逼真。

GAN与传统神经网络的不同点

  • 网络结构
    • 传统神经网络:通常是一个前馈网络(如多层感知机)或递归网络(如RNN、LSTM),主要用于完成分类、回归等任务。例如,在图像分类任务中,传统神经网络输入一张图像,通过一系列的卷积层和全连接层,最终输出图像所属的类别。它的结构相对比较单一,目的是学习输入到输出的映射关系。
    • GAN:具有双模块结构,由生成器和判别器组成。这两个模块之间存在对抗关系,它们的训练过程是相互关联的。生成器的输出作为判别器的输入的一部分,两个模块的参数是交替更新的,而不是像传统神经网络那样只更新一个网络的参数。
  • 训练目标
    • 传统神经网络:训练目标比较直接。在监督学习的情况下,例如分类任务,训练目标是最小化预测类别与真实类别之间的交叉熵损失;在回归任务中,训练目标可能是最小化预测值与真实值之间的均方误差等。目标是使网络输出尽可能准确地符合给定的标签或目标值。
    • GAN:训练目标是达到纳什均衡(Nash equilibrium)。生成器的目标是最小化生成数据被判别器识别为假数据的概率,即最大化判别器将生成数据判断为真实数据的概率;判别器的目标是最大化区分真实数据和生成数据的能力。这种对抗性的训练目标使得GAN的训练过程更加复杂和动态。
  • 数据学习方式
    • 传统神经网络:在监督学习中,依赖于带有标签的训练数据来学习输入和输出之间的映射关系。例如,在训练一个文本情感分类器时,需要大量的文本及其对应的情感标签(如正面、负面)来训练网络。在无监督学习的情况下,传统神经网络可能会学习数据的聚类等特征,但学习方式相对比较固定。
    • GAN:通过生成器和判别器的对抗来学习数据的分布。生成器在没有直接看到真实数据标签的情况下,通过判别器的反馈来不断调整生成的数据,使其更接近真实数据的分布。例如,在生成手写数字图像的GAN中,生成器通过不断尝试生成能骗过判别器的手写数字图像,来学习真实手写数字图像的分布。
  • 应用场景
    • 传统神经网络:广泛应用于分类、回归、聚类、预测等领域。例如,在语音识别中,用于将语音信号转换为文本;在推荐系统中,用于预测用户对物品的喜好程度等。
    • GAN:主要用于生成数据,如生成图像、音频、文本等。可以用于数据扩充,例如在医疗图像数据较少的情况下,通过GAN生成更多的类似图像来扩充数据集;还可以用于图像风格转换,如将真实照片转换为油画风格的图像等。

5.GAN和Stable Diffusion有哪些差异?

GAN(生成对抗网络)和Stable Diffusion(稳定扩散模型)都是AIGC、传统深度学习、自动驾驶领域的核心模型之一,其核心差异体现在模型架构、训练机制、生成质量及应用场景等方面。以下是Rocky总结的详细对比:

1. 核心机制差异

维度 GAN Stable Diffusion
生成原理 基于对抗训练:生成器(G)与判别器(D)通过博弈优化生成结果。 基于扩散过程:通过逐步去噪(从高斯噪声到目标图像)生成数据,结合潜在空间压缩技术。
训练稳定性 训练不稳定,易出现模式崩溃(生成单一结果)和梯度消失问题。 训练更稳定,优化目标为最小化噪声预测误差,收敛性较好。
生成步骤 单步生成(直接输出图像)。 多步迭代(通常20-50步),逐步修正噪声生成图像。

2. 生成质量与多样性

  • GAN的局限性

    • 多样性不足:易受训练数据分布限制,生成结果可能重复或缺乏创新(如StyleGAN生成人脸时细节固定)。
    • 高分辨率挑战:生成大尺寸图像需复杂架构(如ProGAN逐层训练),资源消耗大。
    • 可控性依赖潜在空间:通过调整潜在向量(如StyleGAN的W空间)控制生成,但语义编辑灵活性较低。
  • Stable Diffusion的优势

    • 高保真与多样性:扩散过程允许生成更复杂、多样的图像(如复杂场景融合)。
    • 文本条件生成:通过CLIP等模型将文本嵌入扩散过程,实现精准的文本到图像控制(如生成“戴墨镜的柯基”)。
    • 分辨率扩展性:利用潜在空间(如64x64压缩)降低计算量,结合超分模型生成4K图像。

3. 架构与资源需求

类别 GAN Stable Diffusion
核心组件 生成器(卷积网络)+ 判别器(分类网络)。 VAE编码器(压缩图像到潜在空间)+ U-Net(噪声预测)+ CLIP(文本条件嵌入)。
计算资源 推理速度快(单步生成),但训练需平衡G/D网络,调参复杂。 训练资源高(需多步反向传播),但推理可通过蒸馏技术加速(如Consistency Models)。
显存占用 低(如StyleGAN-T生成512x512图像仅需0.1秒)。 较高(默认模型需4GB显存生成512x512图像)。

4. 应用场景对比

  • GAN的适用场景

    • 快速生成:实时应用(如游戏角色生成、滤镜效果)。
    • 小数据集优化:在有限数据下(如医学图像)表现优于扩散模型。
    • 特定领域:人脸生成(StyleGAN)、图像风格迁移(CycleGAN)。
  • Stable Diffusion的适用场景

    • 复杂条件生成:文本到图像(DALL·E 3)、图像修复(Inpainting)。
    • 高质量艺术创作:支持LoRA、ControlNet插件,细化控制构图与风格。
    • 数据增强:生成合成数据集提升下游任务性能(如《Stable Diffusion for Data Augmentation》)。

6.什么是GAN模型的Mode collapse(模式坍塌)问题?有哪些解决方法?

一、模式坍塌的定义与成因

模式坍塌(Mode Collapse) 是GAN训练中的常见问题,指生成器(Generator)仅能生成有限种类的样本,无法覆盖真实数据的所有分布模式。例如,训练生成人脸时,生成器可能反复生成同一张人脸,而忽略其他特征(如不同肤色、年龄、表情等)。

核心成因

  1. 生成器与判别器的对抗失衡:生成器找到能欺骗判别器的“捷径”,反复生成同一类样本。
  2. 优化目标局限性:传统GAN的JS散度(Jensen-Shannon Divergence)在分布不重叠时无法提供有效梯度。
  3. 数据多样性不足:真实数据包含复杂多模式,但生成器倾向于简化输出以最小化损失。

二、实际案例:生成手写数字时的模式坍塌

场景:使用GAN生成MNIST手写数字(0-9),但生成器仅能输出数字“1”。
问题表现

  • 生成样本多样性极低,重复生成相似笔画的“1”;
  • 判别器快速将“1”识别为假样本,但生成器无法跳出局部最优解。
    解决方法:采用WGAN-GP(Wasserstein GAN with Gradient Penalty)。
  • 效果对比
    • 传统GAN:生成样本仅包含“1”;
    • WGAN-GP:生成样本覆盖0-9所有数字,多样性显著提升。

三、解决方法与技术演进

1. 改进损失函数

  • Wasserstein GAN(WGAN)
    • 用Wasserstein距离替代JS散度,解决梯度消失问题。
    • 添加梯度惩罚(Gradient Penalty)约束判别器的Lipschitz连续性。

2. 架构优化

  • Unrolled GAN
    • 生成器优化时考虑判别器的多步更新,避免短期欺骗策略。
  • Self-Attention GAN(SAGAN)
    • 引入自注意力机制,增强全局依赖建模能力,生成复杂结构。

3. 正则化与多样性增强

  • Mini-batch Discrimination
    • 判别器评估整个批次的样本相似度,鼓励生成多样性。

4. 多模型集成

  • MAD-GAN
    • 使用多个生成器,每个生成器负责不同模式,通过竞争提升多样性。

四、三大领域应用场景

1. AIGC(生成式AI)

  • 问题:生成艺术画作时,模式坍塌导致画风单一(如仅生成抽象派作品)。
  • 解决方法:SAGAN + Mini-batch Discrimination。
  • 效果:生成多种风格(抽象派、写实派、印象派),满足个性化需求。

2. 传统深度学习

  • 问题:数据增强时,生成图像缺乏多样性(如仅生成同一角度的车辆图片)。
  • 解决方法:WGAN-GP + 多模型集成。
  • 效果:生成多视角、多光照条件的图像,提升分类模型鲁棒性。

3. 自动驾驶

  • 问题:合成极端场景(如暴雨夜间的行人)时,模式坍塌导致场景重复。
  • 解决方法:Unrolled GAN + 梯度惩罚。
  • 效果:生成多样化极端场景(暴雨、暴雪、夜间),提升感知模型泛化能力。

五、总结与面试回答建议

  • 核心逻辑:模式坍塌源于生成器与判别器的对抗失衡,需从损失函数、架构设计、数据多样性多角度突破。
  • 回答框架
    1. 定义与成因:简明解释模式坍塌的现象与数学根源(如JS散度缺陷)。
    2. 解决方法:结合代码片段说明WGAN-GP、Mini-batch Discrimination等技术的实现。
    3. 领域应用:按AIGC、传统深度学习、自动驾驶分述痛点与解决方案。
  • 加分点
    • 对比不同方法的适用场景(如WGAN-GP适合数据分布复杂,SAGAN适合结构生成)。
    • 强调实际工程中的调参经验(如梯度惩罚系数λ的选择)。
    • 提及新兴技术(如扩散模型对GAN的替代趋势,但GAN在实时性上仍有优势)。

通过以上结构化分析,可展现对GAN理论深度与工程落地的全面理解,契合AI算法岗对问题拆解与跨领域迁移能力的要求。