图解生成对抗网络(GAN)

目录

1.生成对抗网络介绍

2.网络结构

3.模型工作示例

 4.总结


1.生成对抗网络介绍

生成对抗网络(Generative Adversarial Network,简称GAN)是一种深度学习模型,由Ian Goodfellow等人在2014年提出。GAN的核心思想是通过两个神经网络——生成器(Generator)和判别器(Discriminator)之间的对抗训练,生成逼真的数据样本。

2.网络结构

GAN由两个主要部分组成:

  • 生成器(Generator,G):它的目标是从随机噪声(通常是高斯分布)中生成尽可能接近真实数据的样本。例如,生成器可以生成逼真的图像、音频或文本。

  • 判别器(Discriminator,D):它的目标是区分生成器生成的假样本和真实数据样本。判别器通常是一个二分类器,输出一个概率值,表示输入样本是真实数据的概率。

在训练过程中,生成器和判别器相互对抗:

  • 生成器努力生成越来越逼真的样本,以“欺骗”判别器。

  • 判别器则努力提高自己的能力,以正确区分真假样本。

这种对抗过程可以类比为“造假者”(生成器)和“警察”(判别器)之间的博弈。随着训练的进行,生成器会逐渐生成越来越逼真的样本,而判别器的区分能力也会不断增强。

3.模型工作示例

这里拿人脸图像生成作为示例,在GAN模型内部的两部分,生成器和判别器,生成器要生成更加逼真的人脸图像(假的),而判别器的任务是识别出这些生成器生成的假图像。

假设判别器的输出如下:对于真实图像,判别器输出接近1(表示“真实”)。对于生成器生成的假图像,判别器输出接近0(表示“假”)。

在模型训练过程中,生成器不断生成图像,一开始生成的图像和真实图像相差甚远,判别器一下就能判别出来它的真假,但是随着模型的训练推进,生成器生成的人脸图像越来越真实,判别器无法轻易判别生成器生成的图像真假。

 4.总结

GAN的这种机制就像一场“造假者”和“警察”的博弈,最终达到一种平衡:生成器生成的图像足够逼真,判别器也无法轻易判断真假。

### CycleGAN 架构与工作流程 #### 一、CycleGAN 的基本概念 CycleGAN 是一种无监督的图像到图像翻译模型,能够实现不同域之间的图像转换而无需成对的数据集。该方法基于生成对抗网络 (GAN),并引入循环一致性损失来提高生成图像的质量和稳定性[^1]。 #### 二、架构详解 ##### 1. 发电机(Generators) CycleGAN 中有两个发电机 \(G\) 和 \(F\), 它们分别负责将源域 A 映射至目标域 B (\(A \rightarrow B\))以及反向映射(\(B \rightarrow A\)). 这两个发电机采用 U-Net 或 ResNet 结构构建而成, 能够有效地保留输入图片的空间信息. ##### 2. 判别器(Discriminators) 同样存在两个判别器 \(D_A\) 和 \(D_B\). 对于每一对对应的真假样本组合而言, 判定其属于真实数据还是由对方领域生成出来的伪造品. 此外, 为了增强系统的鲁棒性和泛化能力, 还加入了额外的正则项——即所谓的 "cycle consistency loss". #### 三、工作流程图解 下面是一个简单的 CycleGAN 工作流示意: ```mermaid graph LR; subgraph Generator G[A -> B] direction TB A -->|Input Image from Domain A| GB[B'] end subgraph Discriminator D_B direction TB GB -->|Fake/Real Classification| DB[Output Probability] end subgraph Generator F[B -> A] direction TB B -->|Reconstructed Input via Reverse Mapping| FA[A''] end subgraph Discriminator D_A direction TB FA -->|Fake/Real Classification| DA[Output Probability] end A -->|Original Image| FB[Fake Reconstruct] style Generator G fill:#f96,stroke:#333,stroke-width:4px; style Discriminator D_B fill:#bbf,stroke:#333,stroke-width:4px; style Generator F fill:#f96,stroke:#333,stroke-width:4px; style Discriminator D_A fill:#bbf,stroke:#333,stroke-width:4px; ``` 在这个过程中: - 图像从域 A 经过 \(G(A)\) 得到了一张看似来自域 B 的新图像 \(B'\). - 接着利用另一个方向上的逆变换函数 \(F(B')=A''\approx A\), 实现了一个完整的闭合环路. - 同理也可以先做 \(B \to A\) 再回到 \(B\). 这种双向映射机制不仅有助于保持原始特征不变, 更重要的是它使得整个学习过程更加稳定可靠, 并且可以显著提升最终输出的效果质量.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值