【GAN优化】GAN训练的小技巧

生成对抗网络(GAN)实战指南:从原理到图像生成 本文详细介绍了生成对抗网络(GAN)的工作原理及实战应用,从基础概念到图像生成的具体实现。通过拆解生成器和判别器的核心组件,提供完整的训练流程和常见问题解决方案,帮助读者掌握GAN技术并应用于实际项目。特别适合对AI图像生成感兴趣的开发者和研究者。 阅读详情

头一阵子放假了,专栏都没有怎么更新了,今天开始继续更新(想问问小伙伴们都放了多久的假期?我们只有两周感觉时间好短呀~)

作者&编辑 | 小米粥

上一期中,我们说明了GAN训练中的几个问题,例如由于把判别器训练得太好而引起的梯度消失的问题、通过采样估算距离而造成偏差的问题、minmax问题不清晰以及模式崩溃、优化选择在参数空间而非函数空间的问题等,今天这篇小文将从博弈论的角度出发来审视一下GAN训练时的问题,说明训练GAN其实是在寻找纳什均衡,然后说明达到纳什均衡或者说损失函数收敛是很难的,并最后给出了3个稳定训练的小技巧。

1 博弈论与GAN

大家对GAN的基本模型想必已经非常熟悉了,我们先从博弈论的角度来重新描述GAN模型。游戏中有两个玩家:D(判别器)和G(生成器),D试图在判别器的参数空间上寻找最好的解使得它的损失函数最小:

640?wx_fmt=jpeg

G也试图在生成器的参数空间上寻找最好的解使得它的损失函数最小:

640?wx_fmt=jpeg

需要说明,D和G并不是彼此独立的,对于GAN,整个博弈是“交替进行决策”的。例如先确定生成器G的参数,则D会在给定的G的参数的条件下更新判别器的参数以此最小化D的损失函数,如下面中蓝线过程(提升D的辨别能力);接着G会在给定的D的参数的条件下更新判别器的参数以此来最小化G的损失函数,如下面中绿线过程(提升G的生成能力)......直到达到一个稳定的状态:纳什均衡。

640?wx_fmt=jpeg

在纳什均衡点,两者的参数到达一种“制衡”状态。在给定G的参数情况下,D当前的参数便对应了D损失函数的最小值,同样在给定D的参数情况下,G当前的参数便对应了G损失函数的最小值,也就是说在交替更新过程中,D和G均不可能单独做出任何改变。

解空间中可能存在多个纳什均衡点,而且纳什均衡点并不意味着全局最优解,但是是一种经过多次博弈后的稳定状态,所以说GAN的任务是并非寻找全局最优解,而是寻找一个纳什均衡状态,损失函数收敛即可。在损失函数非凸、参数连续、参数空间维度很高的情况下,不可能通过严格的数学计算去更新参数从而找到纳什均衡,在GAN中,每次参数更新(对应蓝线、绿线表示的过程)使用的是梯度下降法;另外,每次D或者G对自身参数更新都会减少自身的损失函数同时加大对方的损失函数,这导致了寻找GAN的纳什均衡是比较困难的。

这里有一个比GAN简单多的例子表明很多时候纳什均衡的状态难以达到:

640?wx_fmt=jpeg

使用梯度下降法发现x,y在参数空间中并不会收敛到纳什均衡点(0,0),损失函数的表现为:不收敛。

640?wx_fmt=jpeg

针对GAN训练的收敛性问题,我们接下来将介绍几种启发式的训练技巧。

2 特征匹配

在GAN中,判别器D输出一个0到1之间的标量表示接受的样本来源于真实数据集的概率,而生成器的训练目标就是努力使得该标量值最大。如果从特征匹配(feature matching)的角度来看,整个判别器D(x)由两部分功能组成,先通过前半部分f(x)提取到样本的抽象特征,后半部分的神经网络根据抽象特征进行判定分类,即

640?wx_fmt=jpeg

f(x)表示判别器中截止到中间某层神经元激活函数的输出。在训练判别器时,我们试图找到一种能够区分两类样本的特征提取方式f(x),而在训练生成器的时候,我们可以不再关注D(x)的概率输出,我们可以关注:从生成器生成样本中用f(x)提取的抽象特征是否与在真实样本中用f(x)提取的抽象特征相匹配,另外,为了匹配这两个抽象特征的分布,考虑其一阶统计特征:均值,即可将生成器的目标函数改写为:

640?wx_fmt=jpeg

采用这样的方式,我们可以让生成器不过度训练,让训练过程相对稳定一些。

3 历史均值

历史均值(historical averaging)是一个非常简单方法,就是在生成器或者判别器的损失函数中添加一项:

640?wx_fmt=jpeg

这样做使得判别器或者生成器的参数不会突然产生较大的波动,直觉上看,在快要达到纳什均衡点时,参数会在纳什均衡点附近不断调整而不容易跑出去。这个技巧在处理低维问题时确实有助于进入纳什均衡状态从而使损失函数收敛,但是GAN中面临的是高维问题,助力可能有限。

4 单侧标签平滑

标签平滑(label smoothing)方法最开始在1980s就提出过,它在分类问题上具有非常广泛的应用,主要是为了解决过拟合问题。一般的,我们的分类器最后一层使用softmax层输出分类概率(Sigmoid只是softmax的特殊情况),我们用二分类softmax函数来说明一下标签平滑的效果。

对于给定的样本x,其类别为1,则标签为[1,0],如果不用标签平滑,只使用“硬”标签,其交叉熵损失函数为:

640?wx_fmt=jpeg

这时候通过最小化交叉熵损失函数来训练分类器,本质上是使得:

640?wx_fmt=jpeg

其实也就是使得:

640?wx_fmt=jpeg

对于给定的样本x,使z1的值无限大(当然这在实际中是不可能的)而使z2趋于0,无休止拟合该标签1,便产生了过拟合、降低了分类器的泛化能力。如果使用标签平滑手段,对给定的样本x,其类别为1,例如平滑标签为[1-ε ,ε],交叉损失函数为:

640?wx_fmt=jpeg

当损失函数达到最小值时,有:

640?wx_fmt=jpeg

选择合适的参数,理论上的最优解z1与z2存在固定的常数差值(此差值由ε决定),便不会出现z1无限大,远大于z2的情况了。如果将此技巧用在GAN的判别器中,即对生成器生成的样本输出概率值0变为β ,则生成器生成的单样本交叉熵损失函数为:

640?wx_fmt=jpeg

而对数据集中的样本打标签由1降为α,则数据集中的单样本交叉熵损失函数为:

640?wx_fmt=jpeg

总交叉损失函数为:

640?wx_fmt=jpeg

求导容易得其最优解D(x)为:

640?wx_fmt=jpeg

实际训练中,有大量这样的x:其在训练数据集中概率分布为0,而在生成器生成的概率分布不为0,他们经过判别器后输出为β。为了能迅速“识破”该样本,最好将β降为0,这就是所谓的单侧标签平滑。

训练GAN时,我们对它的要求并不是找到全局最优解,能进入一个纳什均衡状态、损失函数收敛就可以了。(虽然这个纳什均衡状态可能非常糟糕)最近的几篇文章将着重于讨论GAN训练的收敛问题。

[1] Müller, Rafael, S. Kornblith , and G. Hinton . "When Does Label Smoothing Help?." 2019

[2] Salimans T , Goodfellow I , Zaremba W , et al. Improved Techniques for Training GANs[J]. 2016.

总结

这篇文章阐述了GAN的训练其实是一个寻找纳什均衡状态的过程,然而想采用梯度下降达到收敛是比较难的,最后给出了几条启发式的方法帮助训练收敛。

下期预告:GAN训练中的动力学

GAN群

640?wx_fmt=jpeg

有三AI建立了一个GAN群,便于有志者相互交流。感兴趣的同学也可以微信搜索xiaozhouguo94,备注"加入有三-GAN群"。

有三AI夏季划

640?wx_fmt=png

有三AI夏季划进行中,欢迎了解并加入,系统性成长为中级CV算法工程师。

转载文章请后台联系

侵权必究

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

kmeans聚类分析结果怎么看_【Stata与机器学习】物以类聚-KMeans算法应用案例介绍... 古语有云:物以类聚,人以群分。KMeans是无监督机器学习中的聚类算法中最简单的一种——基于特征对样本进行归为不同的类,很好地阐述了‘物以类聚’这句话的精髓。机器学习又叫统计学习。既然都统计了,所以当然包括了计量经济学。所以一般来说,机器学习的算法类型远多于计量经济学。比如线性回归,这个算是机器学习算法中比较基础的部分。当然,计量经济学在回归分析、因果推断方面的造诣,也是普通机器学算法所不能比的。... 阅读详情

相关推荐

【CIC-IDS数据集+机器学习】实现网络流量异常检测

本项目基于CIC-IDS数据集,使用多种机器学习算法实现网络流量异常检测系统。项目采用了完整的机器学习工作流程,从数据预处理到模型部署,实现了高精度的网络入侵检测。

XiaoMu_001的博客 1936

对抗网络GAN详解:GAN训练不稳定解决方法、GAN中使用的深度学习技巧、GAN使用任务领域、GAN资料大全整理

对抗网络GAN详解:GAN训练不稳定解决方法、GAN中使用的深度学习技巧、GAN使用任务领域、GAN资料大全整理

丨汀、的博客 9020

BUCK降压斩波电路设计实战:从IGBT选型到续流二极管优化

本文详细解析了BUCK降压斩波电路的设计实战,从IGBT选型到续流二极管优化,涵盖了关键参数设计、调试技巧及电磁兼容问题解决方案。通过实际案例和数据对比,帮助工程师高效完成DC-DC转换电路设计,提升系统性能和可靠性。

weixin_29253711的博客 96

GAN的训练技巧:炼丹师养成计划 ——生成式对抗网络训练、调参和改进

GAN最重要的就是找到D与G之间的纳什均衡,但是在实际中会发现GAN的训练不稳定,训练方法不佳很容易出现模式崩溃等问题,本篇将记录一些训练技巧,不一定适合你的模型,也可能有疏漏和错误,供学习参考,欢迎指正和补充。

白洞,白色的明天在等着我们 1万+

Vertx之Grpc消息发送

介绍 Vert.x gRPC 模块,它将 Google gRPC 的编程风格与 Vert.x 风格保持一致. gRPC 是一个高性能、开源、通用的RPC框架,是一种进程间通讯技术,由Google推出,基于HTTP2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言。gRPC提供了一种简单的方法来精确的定义服务,并且为客户端和服务端自动生成可靠的功能库。 在gRPC客户端可以直接调用不同服务器上的远程程序,使用姿势看起来就像调用本地程序一样,轻松的实现远端服务的连接、

Lance 1189

知识见闻 - Salesforce公司发展史

不过,通过将自己开发的产品与公司收购的其它云产品进行结合,Salesforce可以为用户提供更多的产品种类,Salesforce可以继续强化自己的平台和产品套件属性,这一平台和套件的发展规模已经远远超出了一个单一的CRM的规模。他们围绕一个相对简单的产品向用户兜售云的概念,然后,他们开始开发其它产品,并寻找培育一个不断增长的生态系统的方法,最理想的情况是能驱动Salesforce的营收增长。现在,Salesforce通过打造更多的用例并改进自己产品的方式来直接应对竞争对手的竞争,从而捍卫自己现在的地位。

guoqx的专栏 1457

GAN--提升GAN训练的技巧汇总

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达前言GAN模型相比较于其他网络一直受困于三个问题的掣肘:1. 不收敛;模型训练不稳定,收敛的慢,甚至不收敛;2. ...

小白学视觉 5611

GE Proficy Historian8.0历史数据库部署与配置全攻略

本文提供了GE Proficy Historian 8.0历史数据库的详细部署与配置指南。内容涵盖安装前的系统环境、权限与依赖检查,服务器安装的关键步骤与类型选择,采集器的安装配置与数据接入,以及客户端工具的使用与数据分析实战。旨在帮助用户规避常见陷阱,实现一次部署成功,构建稳定高效的工业数据归档平台。

silver的专栏 768

实现高效的GAN训练:优化策略与技巧

1.背景介绍 GAN(Generative Adversarial Networks,生成对抗网络)是一种深度学习模型,它通过两个相互对抗的神经网络来学习数据的分布。这两个网络分别称为生成器(Generator)和判别器(Discriminator)。生成器的目标是生成逼真的假数据,而判别器的目标是区分真实数据和生成器产生的假数据。GAN在图像生成、图像补充、图像翻译等方面取得了显著的成果。 ...

AI天才研究院 1503

【AHE数据集】历史/未来全球网格热排放数据 PF-AHF

AHE数据集

WW、forever的博客 128

基于STM32的室内环境监测系统设计与实现

摘要 本文设计了一种基于STM32的室内环境监测系统,通过传感器实时采集温湿度、空气质量、烟雾浓度等数据,并利用Wi-Fi模块上传至云服务器。系统采用STM32F103C8T6作为主控芯片,结合DHT11、MQ系列传感器及BMP280气压传感器实现数据采集,通过ESP8266模块实现远程数据传输。用户可通过手机APP实时查看环境参数,并在数据超标时触发报警。实验表明,系统运行稳定,监测精度高,具有低成本、易扩展等特点,为改善室内环境质量提供了有效解决方案。 关键词:STM32;室内环境监测;传感器;Wi-F

3254968421的博客 221

如何训练GAN?训练GAN的技巧和方法

https://github.com/soumith/ganhacks 1.输入归一化 把信号归一化到-1 到1 generator的最后一层输出用Tanh 2.使用修饰过后的损失函数 在GAN的文章中,generator的损失函数是min(log 1-D) 但是在实际中会用max(log D) 因为前一个式子在早期会有梯度消失的问题 Goodfellow et. al (2014) 在实际中的好方法: 训练生成器时翻转标签:real = fake, fake = real 3.使用球体Z

Stephanie的博客 9687

镜头调焦的 调整的是焦距还是像距?

在镜头 “调焦”(即日常拍照时的)中,调整的核心是,而非焦距。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 1353

GAN 的训练、调参实践

自从 GAN 提出后,它变得越来越火热,吸引了众多的爱好者前来学习实践。 但是只要你自己去从无到有写出一个 GAN 模型并运行,除非你运气太好,大多数情况下你都会发现自己的GAN并不能很好地 work 。 下面首先对 GAN 进行简要的介绍,然后整理了我自己在 GAN 的设计网络结构、调整参数等方面的经验。 1 什么是GAN? GAN 是一种生成模型,由知名的学者 Ian Goodfellow 首...

四个菜 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

GAN网络调参经验

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 ...

CSS360的博客 9942

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

GAN 的训练

关于GAN训练过程的一点思考 - 知乎 01-GAN公式简明原理之铁甲小宝篇 - 知乎 GAN整整6年了!是时候要来捋捋了! - 知乎 数百篇GAN论文已下载好!搭配一份生成对抗网络最新综述! - 知乎 怎样训练一个GAN?一些小技巧让GAN更好的工作 - 知乎 关于生成器和判别器的梯度 训练GAN的一些骚操作 - 知乎 GAN的优化(六):GAN训练的几个问题 - 知乎 GAN网络训练过拟合如何解决? - 知乎 Github 项目|可视化 GAN 的训练过程 - 知乎 G.

slzlincent的博客 2111

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【完结】12篇GAN的优化文章大盘点,浓浓的数学味儿

专栏《GAN的优化》(第一季)正式完结啦! 在这一季里,我们从生成模型出发,讲述了GAN的基本理论,包括工作原理,更具有普适性的f散度度量和Wasserstein距离,以及IPM框架并顺带给出了一个处理WGAN的莱布尼茨限制的优雅解决方法;接着介绍了GAN训练困难的原因以及几个训练技巧;然后从动力学视角出发探索GAN的训练,将GAN与动力学方程联系在一起,讲述了一致优化,并总结了各...

hacker_long的专栏 2442

深度学习_GAN_WGAN与WGAN-GP

一.原始GAN存在的训练崩溃问题 所谓GAN的训练崩溃,指的是训练过程中,生成器和判别器存在一方压倒另一方的情况。 GAN原始判别器的Loss在判别器达到最优的时候,等价于最小化生成分布与真实分布之间的JS散度,由于随机生成分布很难与真实分布有不可忽略的重叠以及JS散度突变特性,使得生成器面临梯度消失的问题;可是如果不把判别器训练到最优,那么生成器优化的目标也就失去了意义。因此需要我们小心的平衡二...

Rocky Ding相信人工智能、数据科学、商业逻辑、金融工具、终身成长以及顺应时代的潮流会赋予我们超能力。 4146

wgan dcgan wgan-gp 综描,怎样训练一个GAN?一些小技巧让GAN更好的工作,wgan-gp 可以使用adam

这一点其实更需要自己实际训练当中的经验,而且每个人的习惯不一样,我就比较喜欢在一定epoch的时候,输出generated image到路径看一看,一般看到全是噪声,基本可以停止训练了,再往下训练也不会有改善。我所了解到的最新的一个版本,用一个改进的基于梯度惩罚的loss替代WGAN中的Weight Clip,从而产生比WGAN更高质量的样本,这个loss是可以用Adam来优化的。个人感觉,这一点很重要。这又是一个研究领域,主要做的是利用数据和标签,有监督或者半监督的生成指定某一类的数据,相关的有。

AI 前沿技术实战博客:LLM / Agent / AI 制药 / 生信四大栏目日更,硬核干货 + 可复现代码,看完就能上手 251

李宏毅机器学习|生成对抗网络Generative Adversarial Network (GAN)|学习笔记(2)|GAN理论介绍与WGAN

文章目录前言1 Our Objective2 Generative Adversarial Network (GAN)GeneratorDiscriminatorBasic Idea of GANAlgorithm结果展示总结 前言 之前老早就听说了GAN,然后对这个方法还不是很了解,想在今后的论文中应用它。因此来学习下李宏毅讲的GAN,记个笔记。视频地址 1 Our Objective 在Generator里面,我们的目标是由Generator产生的分布(叫做PGP_GPG​)和真正的data数据的

qq_39923466的博客 781

深度学习-关于GAN网络调参的经验

文章目录 1 什么是GAN? 2 GAN存在的问题 3 训练的经验 3.1 不要纠结于损失函数的选择 3.2 关于增加模型的容量 3.3 尝试改变标签 3.4 尝试使用 batch normalization 3.5 尝试分次训练 3.6 最好不要提早结束 3.7 关于k的选择 3.8 关于学习率 3.9 增加噪声 3.10 不要使用性能太好的判别器 3.10 可以尝试最新的multi-scale gradient方法 3.11 可以尝试使用TTUR

记录学习的小白 4347

【GAN实战】MNIST手写数字生成——基于PyTorch的GAN优化与调参指南

本文是一份基于PyTorch的GAN实战指南,专注于使用MNIST手写数字数据集进行生成对抗网络的优化与调参。文章详细解析了从环境搭建、网络结构设计到训练循环的完整流程,并重点分享了应对模式崩溃、训练不稳定等经典问题的核心策略,如标签平滑、特征匹配、梯度惩罚及WGAN-GP等进阶技巧,旨在帮助开发者高效入门并稳定训练GAN模型。

flink9streamer的博客 774

基于生成对抗网络GAN的数据生成方法:针对数据分类问题在MATLAB环境下的具体流程

比如原本只有100条真实数据,生成900条凑成1000条,这时候准确率提升才说明生成有效。生成对抗网络(GAN)在数据增强领域越来越火,尤其是处理分类任务时,用生成数据弥补样本不足的效果立竿见影。咱们今天用MATLAB实操一把,从数据生成到质量验证,手把手走通全流程。具体流程:首先通过生成对抗网络生成数据,然后通过支持向量机训练测试验证生成数据质量。具体流程:首先通过生成对抗网络生成数据,然后通过支持向量机训练测试验证生成数据质量。要是红蓝点云基本重合,恭喜你,这批生成数据可以当"替身"用了!

UhMITKJvJkro的博客 251

稀缺感知生成对抗网络:让GAN学会看见少数群体

生成对抗网络(GAN)作为主流生成模型,其输出常因训练数据的结构性偏差而忽视少数群体,引发公平性与鲁棒性风险。其根本原因在于判别器梯度偏好高频模式、生成器更新被多数类主导、隐空间天然压缩尾部概念——这三者构成正反馈式偏差放大机制。传统方案如重采样、多任务分类或后处理加权,均未触及生成机理层面。本文提出的稀缺感知生成框架(SAGF),通过可解释的稀缺性编码器、动态对齐的约束损失与语义感知的SC-AdaIN模块,在不依赖敏感标签、不修改原始数据的前提下,将bias mitigation与minority con

weixin_33831673的博客 390

生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生

作者:Guim Perarnau 编译:Katherine Hou、朝夕、Katrine Ren、Shan LIU、笪洁琼、钱天培 生成对抗网络(GAN)一经提出就风光无限,更是被Yann Lecun誉为“十年来机器学习领域最有趣的想法”。 GAN“左右互搏”的理念几乎众所周知,但正如卷积神经网络(CNN)一样,GAN发展至今已经衍生出了诸多变化形态。 今天,文摘菌就来为大家盘点一下G

大数据文摘 938

AE、VAE、GAN生成机制对比详解

摘要: 本文介绍了两种重要的自编码器模型——自动编码器(AE)和变分自动编码器(VAE),并提供了基于PyTorch的实践案例。AE通过编码器-解码器结构实现数据降维与特征提取,适用于图像压缩等任务。VAE在AE基础上引入概率分布,支持数据生成功能,如手写数字图像生成。两种模型均通过重构误差优化,但VAE额外加入KL散度约束。文章包含完整的代码实现,涵盖模型构建、训练流程及损失函数设计,为无监督学习和生成模型提供实用参考。

没事学AI的博客 1370
上一篇: 【NLP】TransformerXL:因为XL,所以更牛
下一篇: 【知识星球】图像降噪模型和数据集内容开启更新,经典问题永垂不朽!
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值