生成对抗网络----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时最重要的阻碍---稳定

相关推荐
那个村的李富贵3 小时前
光影魔术师:CANN加速实时图像风格迁移,让每张照片秒变大师画作
人工智能·aigc·cann
腾讯云开发者5 小时前
“痛点”到“通点”!一份让 AI 真正落地产生真金白银的实战指南
人工智能
CareyWYR5 小时前
每周AI论文速递(260202-260206)
人工智能
hopsky6 小时前
大模型生成PPT的技术原理
人工智能
禁默6 小时前
打通 AI 与信号处理的“任督二脉”:Ascend SIP Boost 加速库深度实战
人工智能·信号处理·cann
心疼你的一切7 小时前
昇腾CANN实战落地:从智慧城市到AIGC,解锁五大行业AI应用的算力密码
数据仓库·人工智能·深度学习·aigc·智慧城市·cann
AI绘画哇哒哒7 小时前
【干货收藏】深度解析AI Agent框架:设计原理+主流选型+项目实操,一站式学习指南
人工智能·学习·ai·程序员·大模型·产品经理·转行
数据分析能量站7 小时前
Clawdbot(现名Moltbot)-现状分析
人工智能
那个村的李富贵7 小时前
CANN加速下的AIGC“即时翻译”:AI语音克隆与实时变声实战
人工智能·算法·aigc·cann
二十雨辰7 小时前
[python]-AI大模型
开发语言·人工智能·python