GAN生成对抗性网络

一、GAN原理

**出发点:**机器学习中生成模型的问题

无监督学习是机器学习和未来人工智能的突破点,生成模型是无监督学习的关键部分

特点:

  1. 不需要MCMC或者变分贝叶斯等复杂的手段,只需要在G和D中对应的多层感知机中运行反向传播或者梯度下降算法
  2. 模型通常使用神经网络,其拟合能力最好

****G(Generator):****用于捕获数据分布的生成模型(生成图像的网络);接收到随机的噪声z,通过噪声z生成图像。尽可能多地模拟、建模和学习真实数据的分布规律。

****D(Discriminator):****用于判别数据是真实数据还是生成数据(伪数据)的判别模型(判别图像真伪的网络):输入一张图像,输出代表其为真实图像的概率值,100%即判断该图像是真的。

训练过程:

通过对抗性过程同时训练两个模型,训练过程中,生成器逐渐擅长创建更为真实的图像,鉴别器逐渐擅长判断真伪,当鉴别器没有办法判断图像真伪时,该训练过程达到平衡。

  • 动态博弈过程:G尽可能生成真实的图像欺骗判别网络D,D尽量区别G生成的图像和真实的图像
  • 博弈结果:理想情况下,达到纳什均衡点,G生成可以"以假乱真"的图像

D(x):D网络判断真实图片是否真实的概率,因为x本来就是真实的,所以该值越接近1越好

D(G(z)):D网络判断G生成的图片是否真实的概率

对于G:G希望自己生成的图片越接近真实越好,即G希望D(G(z))尽可能大,V(D, G)会变小,所以对于G是min_G

对于D:D的能力越强,D(x)越大,D(G(x))越小,V(D,G)会变大,所以对于D是求最大max_D

二、GAN框架

第一步训练D时,V(G, D)越大越好,所以加上梯度ascending

第二步训练G时,V(G, D)越小越好,所以减去梯度descending

整个训练过程交替进行

体系结构:

  • 传统生成模型的优化目标:数据的似然
  • GAN创新地使用另外一个优化目标:①引入判别模型②优化过程是在生成模型和判别模型之间找纳什均衡

三、GAN实现过程

1.前向传播阶段

模型输入:

随机产生一个随机向量作为生成模型的输入数据,然后经过生成模型后产生一个新的向量,即为Fake Image

从数据集中随机选择一张图片,将图片转化成向量,即为Real Image

模型输出:

fake image和real image是判别网络的输入,根据输入的图片类型是Fake Image或Real Image将判别模型的输入数据的label标记为0或者1。即判别模型的输入类型为(xfake,0)或者(xreal,1)。

经过判别网络后输出一个0到1之间的数,用来表示输入图片为真实图像的概率。

2.反向传播阶段---优化目标

①优化D

②优化G

3.损失函数

希望生成样本和真实样本拥有相同的概率密度函数

GAN的损失函数源自于二分类对数似然函数的交叉熵损失函数。第一项是使正样本的识别结果尽量为 1 ,第二项是使负样本的预测值尽量为 0

损失函数:

4.迭代更新

得到损失函数后按照单个模型的更新方法进行修正

四、GAN特性

采用对抗思想的原因:评估一个生成样本的质量,是一个很难量化的指标。对抗思想,把评估生成样本的质量的任务交给一个判别器模型去做

特点:

传统模式相比,有两种不同的网络,采用对抗训练方法

缺点:

训练GAN需要达到Nash均衡,有时候可以通过梯度下降方法实现,有时候不能;

GAN不适用于处理离散数据,如文本;

GAN存在训练不稳定、梯度消失和模态崩溃等问题

五、GAN应用

用于无监督学习和半监督学习

GAN与强化学习相结合

图像样式转换、图像降噪和恢复、图像超分辨率

计算机视觉,图像、文本、语音,或者任何含有规律的数据合成

用于分类领域:将判别器替换为分类器,执行多个分类任务

六、其他

①早停法(Early Stopping):

生成器或鉴别器损失突然增加或减少

损失函数随机上升或下降,可能得到生成器的损失远远高于判别器的损失

②处理Mode Collapse(模式坍塌|生成器"崩溃",总是将每一个输入的隐向量生成单一的样本)问题时,尝试使用较小的学习率,并从头开始训练

③添加噪声:在真实数据和合成数据中添加噪声,提高判别器的训练难度有利于提高系统的整体稳定性

④标签平滑:将标签值设置成一个低一些的值,阻止判别器对分类标签过于确信

⑤多尺度梯度(处理不太小的尺度时使用):由于两个网络之间的多个跳连接,梯度流从判别器流向生成器,和传统的用于语义分割的U-Net类似

⑥双时间尺度更新规则:使用不同的学习速率;为判别器选择一个更高的学习率(生成器必须用更小的更新幅度来欺骗判别器,不会选择快速、不精确和不现实的方式赢得博弈)。使用TTUR时,生成器有更大的损失量

⑦谱归一化:应用于卷积核的一种特殊的归一化,可以极大地提高训练的稳定性

参考链接:GAN-生成对抗性神经网络 - 知乎

相关推荐
Funny_AI_LAB5 分钟前
重构 Coding Agent:当 LLM 没有 KV Cache 时,上下文工程该怎么做?
人工智能·经验分享·语言模型·重构
GISMagic9 分钟前
AI 时代的软件工程与架构能力提升路线
人工智能·架构·软件工程
中伟视界11 分钟前
化工检修作业新规明日施行,边缘AI如何守好现场?
人工智能
OpenCSG14 分钟前
OpenCSG Agentic-27B 正式开源:27B Dense 模型,Agent 执行能力实现全面跃升
人工智能·开源·opencsg
Elastic 中国社区官方博客21 分钟前
使用 Lucene 搜索你的 Bean —— Elasticsearch
大数据·开发语言·人工智能·elasticsearch·搜索引擎·全文检索·lucene
雪兽软件22 分钟前
AI爆改学术研究?
人工智能·学术研究
合调于形30 分钟前
Rengong zhzzneng 《人工智能》词条汉语拼音字母标调拼写实测案例
人工智能·自然语言处理·人机交互·语音识别·学习方法
cg501732 分钟前
大模型 SFT(监督微调)该怎么做?(实践版)
人工智能·深度学习·机器学习
Qt云程序员38 分钟前
选型参考:光刃RPA 与常见 RPA / 自动化方案的对比
人工智能·自动化·rpa
neocheng_52240 分钟前
品牌、内容和效果营销,受AI影响为什么完全不同?
人工智能