42_GAN网络详解(2)---常见的GAN

DCGAN

CGAN

条件生成对抗网络(Conditional Generative Adversarial Networks, CGAN)是生成对抗网络(Generative Adversarial Networks, GAN)的一种变体,由Mehdi Mirza和Simon Osindero在2014年提出。CGAN的主要改进在于引入了额外的条件信息(condition),以指导生成过程,使得生成器可以根据特定条件来创建数据样本。

原始GAN由两个部分组成:生成器(Generator, G)和判别器(Discriminator, D)。生成器的目标是从随机噪声中学习到数据的真实分布,并生成逼真的样本;而判别器则尝试区分这些生成的样本是否来自真实的数据集。通过两者之间的对抗训练,生成器逐渐学会生成越来越逼真的数据。

CGAN在此基础上加入了条件信息y,这可以是类别标签、文本描述、另一张图像等任何有助于生成更具体或更有意义输出的信息。条件信息被同时送入生成器和判别器:

  • 生成器:接收随机噪声z以及条件信息y作为输入,尝试根据条件生成符合该条件的数据。
  • 判别器:不仅评估输入数据的真实性,还检查它是否与给定条件相符。

VAE-GAN

VAE-GAN(Variational Autoencoder Generative Adversarial Networks)是一种结合了变分自编码器(Variational Autoencoder, VAE)和生成对抗网络(Generative Adversarial Network, GAN)优点的混合模型。这种组合旨在利用VAE的概率建模能力来捕捉数据分布,同时使用GAN的判别训练机制来提升生成样本的质量。

VAE-GAN的工作原理

变分自编码器(VAE)

VAE是一种无监督学习模型,它试图通过将输入数据映射到一个低维的潜在空间(latent space),然后从这个潜在空间重构原始输入,以此来学习数据的分布。VAE的关键特性是其能够对潜在变量施加先验分布(通常是标准正态分布),从而允许我们从该分布中抽样并解码为新的数据点。这使得VAE不仅具备降维功能,还能作为生成模型。

在VAE中,有两个主要的网络:

编码器:负责将输入数据映射到潜在空间中的概率分布参数(如均值和方差)。

解码器:负责根据潜在空间中的样本重建输入数据。

为了确保潜在变量遵循预设的先验分布,VAE引入了KL散度损失项,它衡量了编码器输出的分布与先验分布之间的差异。总损失函数通常包括重构误差和KL散度损失。

生成对抗网络(GAN)

GAN由生成器和判别器组成,它们相互对抗地训练。生成器尝试创建看起来真实的样本以欺骗判别器,而判别器则试图区分真实样本和生成样本。通过这种对抗性的训练过程,生成器可以学会生成高质量的数据样本。

结合VAE和GAN

VAE-GAN将VAE的编码-解码框架与GAN的对抗训练机制结合起来。具体来说:

编码器:接收输入数据,并将其映射到潜在空间中的分布。

解码器/生成器:从潜在空间抽取样本,并尝试重建或生成新的数据样本。

判别器:评估生成样本的真实性,帮助解码器更好地学习数据的真实分布。

在这种结构下,VAE部分负责保证潜在表示的有效性和可解释性,而GAN部分则致力于提高生成样本的质量,使其更加逼真。

cycleGAN

CycleGAN(Cycle-Consistent Adversarial Network)是一种生成对抗网络(GAN)的变体,由Jun-Yan Zhu等人在2017年提出。它特别适用于图像到图像的转换任务,能够在没有成对训练数据的情况下进行跨域图像翻译。例如,它可以将马变成斑马、将夏天的风景变成冬天的风景等。CycleGAN的关键创新在于其引入了循环一致性损失(cycle consistency loss),以确保转换过程中的信息保真度。

CycleGAN的工作原理

无监督图像到图像转换

传统的图像到图像转换方法通常依赖于成对的数据集,即每张源域图像都有一个对应的目标域图像。然而,在实际应用中,获取这样的成对数据可能是困难或不可能的。CycleGAN解决了这个问题,它允许使用非配对的训练数据来学习两个不同域之间的映射关系。

双向映射与循环一致性

CycleGAN包含两个生成器和两个判别器:

生成器G:负责将A域的图像转换为B域的图像。

生成器F:负责将B域的图像转换为A域的图像。

判别器D_A:用于判断输入图像是来自A域的真实图像还是通过F从B域转换来的图像。

判别器D_B:用于判断输入图像是来自B域的真实图像还是通过G从A域转换来的图像。

为了保证转换的有效性和可逆性,CycleGAN引入了循环一致性损失。这意味着如果我们将一张图像从A域转换到B域再转换回A域,最终的结果应该尽可能接近原始图像。同理,对于从B域到A域再到B域的过程也应如此。这种机制帮助模型学习到了更稳定的映射关系,并减少了模式崩溃(mode collapse)的风险。

相关推荐
Uzuki2 小时前
AI可解释性 II | Saliency Maps-based 归因方法(Attribution)论文导读(持续更新)
深度学习·机器学习·可解释性
蹦蹦跳跳真可爱5894 小时前
Python----机器学习(KNN:使用数学方法实现KNN)
人工智能·python·机器学习
Start_Present5 小时前
Pytorch 第十二回:循环神经网络——LSTM模型
pytorch·rnn·神经网络·数据分析·lstm
Spcarrydoinb6 小时前
基于yolo11的BGA图像目标检测
人工智能·目标检测·计算机视觉
qp7 小时前
21.OpenCV获取图像轮廓信息
javascript·opencv·webpack
snowfoootball7 小时前
基于 Ollama DeepSeek、Dify RAG 和 Fay 框架的高考咨询 AI 交互系统项目方案
前端·人工智能·后端·python·深度学习·高考
云和数据.ChenGuang7 小时前
机器学习之回归算法
人工智能·机器学习·回归
代码骑士8 小时前
聚类(Clustering)基础知识2
机器学习·数据挖掘·聚类
odoo中国8 小时前
深度学习 Deep Learning 第15章 表示学习
人工智能·深度学习·学习·表示学习
橙色小博8 小时前
长短期记忆神经网络(LSTM)基础学习与实例:预测序列的未来
人工智能·python·深度学习·神经网络·lstm