生成对抗网络----GAN

系列文章目录

`


文章目录


前言


一、基本构成

GAN (Generative Adversarial Network) : 通过两个神经网络,即生成器(Generator)和判别器(Discriminator),相互竞争来学习数据分布。

{ 生成器 ( G e n e r a t o r ) : 负责从随机噪声中学习生成与真实数据相似的数据。 判别器 ( D i s c r i m i n a t o r ) : 尝试区分生成的数据和真实数据。 \left\{ \begin{array}{l} 生成器(Generator):负责从随机噪声中学习生成与真实数据相似的数据。 \\ \\ 判别器(Discriminator):尝试区分生成的数据和真实数据。 \\ \end{array}\right. ⎩ ⎨ ⎧生成器(Generator):负责从随机噪声中学习生成与真实数据相似的数据。判别器(Discriminator):尝试区分生成的数据和真实数据。

二、应用领域

  1. 图像生成:如风格迁移、人脸生成等。

  2. 数据增强:通过生成额外的样本来增强训练集。

  3. 医学图像分析:例如通过GAN生成医学图像以辅助诊断。

  4. 图像超分辨:SRGAN

三、基本原理

GANs的目标是通过学习一个生成模型G来尽可能接近真实数据分布。

生成网络采用随机输入,G(z)从P(z)获取输入z(noise),其中z是来自概率分布P(z)的样本,z~P(z),生成器产生Fake Samples送入D(x)。

Pdata(x) ------真实数据的分布 x-----Pdata(x)的样本

P(z)------生成器的分布 z-----P(z)的样本

G(z)-----生成网络 D(x)----判别网络

x 是一个真实图片,可以想象成一个向量,这个向量分布集合就是Pdata(x)

目标是min G ~=0

max D ~=1

生成器的目标是最大化判别器对其生成样本的错误分类概率,其中,(G(z)) 表示生成器从随机噪声 (z) 生成的样本,(D(x)) 是判别器对样本 (x) 为真实的概率估计。

上面目标函数实际上是两个二元交叉熵的和,其对应于判别器D对真实样本和生成样本的分类能力。判别器D的目标是最大化以下目标函数,找到能够最小化的生成器G。

V(D,G) :判别器最大化,生成器想最小化

第一项:是实际分布Pdata(x)的数据,通过判别器的熵,试图将其最大化为1

第二项:是随机输入P(Z)的数据通过G的熵,判别器尝试将其最小化为0

对抗损失函数一般由两部分组成:

判别器的损失项(Discriminator Loss):这一部分表示判别器要尽可能准确地区分真实数据和生成器生成的数据。判别器试图最大化这个值,以便更好地区分真实数据和生成的数据。

生成器的损失项(Generator Loss):这一部分表示生成器试图生成足够逼真的数据,以至于判别器无法轻易区分生成的数据和真实数据。生成器试图最小化这个值。

具体来说,判别器的损失项旨在最大化以下两个期望值:

真实数据的判别概率(判别器越接近1越好)

生成数据的判别概率(判别器越接近0越好)

而生成器的损失项旨在最小化生成数据的判别概率(生成器希望判别器难以将其识别为生成数据)。

通过优化这个对抗损失函数,生成器和判别器不断调整自己的参数,最终使得生成器可以生成非常逼真的数据,同时判别器难以区分真实数据和生成的数据。

四、如何训练GAN

  1. 训练判别器,冻结生成器
  2. 训练生成器,冻结判别器

冻结:即不训练,神经网络只进行前向传播不进行反向传播

训练步骤:

step1: 定义问题,生成假图像还是文字,收集相应数据
step2: 定义GAN的架构,生成器和判别器可以使用多层感知机或者卷积神经网络
step3: 用真实数据训练N个epoch,训练判别器正确预测假的数据为假
step4: 用生成器产生假的输入数据,用来训练判别器,训练判别器正确预测假的数据为假
step5: 用判别器的输出来训练生成器 当判别器被训练后,将其预测值作为标记来训练生成器以迷惑判别器
step6: 重复3~5多个epoch
step7: 手动检查数据是否合理,合理即停止,否则回到step3

一般来说,Discrimnator比Genenrator训练的多,比如训练五次Discrimnator,再训练一次Genenrator。

训练GAN时最重要的阻碍---稳定

相关推荐
小oo呆2 小时前
【自然语言处理与大模型】模型压缩技术之量化
人工智能·自然语言处理
Magnum Lehar2 小时前
ApophisZerg游戏引擎项目目录展示
人工智能·vscode·编辑器·游戏引擎
飞桨PaddlePaddle2 小时前
Wan2.1和HunyuanVideo文生视频模型算法解析与功能体验丨前沿多模态模型开发与应用实战第六期
人工智能·算法·百度·音视频·paddlepaddle·飞桨·deepseek
绿算技术2 小时前
存储新势力:助力DeepSeek一体机
人工智能·科技·缓存·fpga开发
Y1nhl3 小时前
搜广推校招面经八十一
开发语言·人工智能·pytorch·深度学习·机器学习·推荐算法·搜索算法
胡攀峰3 小时前
第12章 微调生成模型
人工智能·大模型·llm·sft·强化学习·rlhf·指令微调
yuanlaile3 小时前
AI大模型自然语言处理能力案例演示
人工智能·ai·自然语言处理
小白白搭建3 小时前
WordPress AI 原创文章自动生成插件 24小时全自动生成SEO原创文章 | 多语言支持 | 智能配图与排版
人工智能
Jamence3 小时前
多模态大语言模型arxiv论文略读(三十九)
人工智能·语言模型·自然语言处理
ai大模型木子3 小时前
嵌入模型(Embedding Models)原理详解:从Word2Vec到BERT的技术演进
人工智能·自然语言处理·bert·embedding·word2vec·ai大模型·大模型资料