深度学习-54:生成式对抗网络GAN(原理、模型和演进)

模仿学习(行为克隆,逆强化学习,生成式对抗模仿学习) GAN的全称是Generative adversarial network,中文翻译过来就是生成对抗网络。生成网络(Generator)负责生成模拟数据;判别网络Discriminator)负责判断输入的数据是真实的还是生成的。生成网络要不断优化自己生成的数据让判别网络判断不出来,判别网络也要优化自己让自己判断得更准确。二者关系形成对抗,因此叫对抗网络。 阅读详情
AI摘要

本文深入解析生成式对抗网络GAN的原理、模型结构及演进,包括GAN的基本概念、创新点、训练过程,以及CGAN、DCGAN、WGAN等变种模型。探讨GAN在深度学习领域的应用与挑战。

深度学习-52:生成式对抗网络GAN(原理、模型和演进)

深度学习原理与实践(开源图书)-总目录, 建议收藏,告别碎片阅读!

一般的学习模型都是基于一个假设的随机分布,然后通过训练真实数据来拟合出模型。网络模型复杂并且数据集规模也不小,这种方法简直就是凭借天生蛮力解决问题。Goodfellow认为正确使用数据的方式,先对数据集的特征信息有insight之后,再干活。在2014年,Goodfellow等提出生成式对抗网络GAN(Generative adversarial networks)。

告别碎片阅读,构成知识谱系。一起阅读和完善: 机器学习&深度学习原理与实践(开源图书)

Goodfellow的原始论文,请参考:Generative Adversarial Networks(GAN)。

GAN网络由一个生成器和一个判别器构成。生成器和判别器使用多层感知机。GAN网络的架构,如下图所示。
GAN网络的原理和架构

1 GAN模型的创新

GAN模型时通过对抗过程来估计生成模型的新框架。在GAN模型框架中,生成模型与判别模型进行非合作零和博弈。生成模型可以被认为类似于造假者团队,试图生产虚假货币并在没有检测的情况下使用它,而判别模型则是类似于警察,试图检测假币。这场比赛中的比赛开始了两个团队都在改进他们的方法,直到伪造品与真品无法区分用品。

GAN模型的的主要创新:

  • 拥有生成网络G和辨别网络D,生成模型G的思想是将一个噪声包装成一个逼真的样本,判别模型D则需要判断送入的样本是真实的还是假的样本;
  • 生成网络G和辨别网络D使用独立学习模型,辨别模型D对样本的判别能力不断上升,生成模型G的造假能力也不断上升;
  • GAN的优化是一个极小极大博弈问题,最终的目的是Generator的输出Discriminator时很难判断是真实or伪造的,即极大化的判断能力,极小化将的输出判断为伪造的概率。

2 GAN模型的结构

生成对抗网络(GAN)的结构:

  • GAN由一个生成器和一个判别器构成;
  • GAN的生成器捕捉真实数据样本的潜在分布, 并生成新的数据样本;
  • GAN的判别器是一个二分类器, 判别输入是真实数据还是生成的样本;
  • GAN的生成器和判别器均可以使用深度学习模型;
  • GAN的优化过程是极小极大博弈(Minimax game)问题, 优化目标是达到纳什均衡。

2.1 模型构建

生成对抗网络(GAN)基于博弈模型,其中生成模型(Generator)必须与其对手判别模型(Discriminator)竞争。生成模型直接生成假样本, 判别模型尝试区分生成器生成的样本(假样本)和训练数据中抽取的样本(真样本)。生成对抗网络(GAN)是一种生成模型,由生成器Generator和辨别器Discriminator组成。生成模型(Generator)尝试了解真实数据样本的特征分布, 并生成新的数据样本。判别模型(Discriminator)一个二分类器, 判别输入是真实数据还是生成的样本。生成模型(Generator)和判别模型(Discriminator)均可以使用感知机或者深度学习模型。优化过程是极小极大博弈(Minimax game)问题, 优化目标是达到纳什均衡,即直到判别模型(Discriminator)无法识别生成模型(Generator)生成的假样本是真是假。

2.2 训练模型

生成对抗网络(GAN)基于博弈模型,由生成器(Generator)和辨别器(Discriminator)组成。生成器(Generator)的假样本和训练数据的真样本输入到辨别器(Discriminator)。在训练的过程中,对于真实数据,判别器尝试向其分配一个接近1的概率(smooth参数将labels设为略小于1的值,如0.9)。生成对抗网络(GAN)使用Tensorlow提供的
tf.nn.sigmoid_cross_entropy_with_logits(logits=logits, labels=labels)函数可以计算代价。

对于真实数据,我们使用label=1计算代价函数来训练判别器,其代价函数的计算方法为:

loss = tf.nn.sigmoid_cross_entropy_with_logits
d_loss_real = loss(d_logits_real, labels=tf.ones_like(d_logits_real)*(1-smooth))

对于生成器,我们使用label=0计算代价函数来训练判别器,其代价函数的计算方法为:

loss = tf.nn.sigmoid_cross_entropy_with_logits
d_loss_fake = loss(d_logits_fake, labels=tf.zeros_like(d_logits_fake))

所以判别器的代价函数为:d_loss = d_loss_real + d_loss_fake

生成器尝试做相反的事情,它经训练尝试输出能使辨别器分配接近概率1的样本。生成器的代价函数为

loss = tf.nn.sigmoid_cross_entropy_with_logits
g_loss = loss(d_logits_fake, labels=tf.ones_like(d_logits_fake))

GANs和很多其他模型不同,GANs在训练时需要同时运行两个优化算法,我们需要为discriminator和generator分别定义一个优化器,一个用来来最小化discriminator的损失,另一个用来最小化generator的损失。即loss = d_loss + g_loss

GAN模型训练中生成器和判别器的概率分布趋势

黑色虚线是真实数据的高斯分布,绿色的线是生成网络学习到的伪造分布,蓝色的线是判别网络判定为真实图片的概率,标x的横线代表服从高斯分布x的采样空间,标z的横线代表服从均匀分布z的采样空间。从上图中可以看出,经过多次迭代,可以看出生成模型(Generator)学习了从z的空间到x的空间的映射关系。简单来说就是生成模型(Generator)和原始数据集的特征近似相同,训练工作就结束了,生成模型(Generator)生成的数据已经假假真真不可辨识了。

3 GAN模型的演进

Google论文:Are GANs Created Equal? A Large-Scale Study(Google)。论文中使用了minimax损失函数和用non-saturating损失函数的GAN,分别简称为MM GAN和NS GAN,对比了WGAN、WGAN GP、LS GAN、DRAGAN、BEGAN等GAN模型变体,发现性能大同小异。这个结论是选择困难症的福音呀。

3.1 CGAN

原始GAN不要求一个假设的数据分布,即不需要formulate p(x),而是使用一种分布直接进行采样sampling,从而真正达到理论上可以完全逼近真实数据。为了解决GAN太过自由这个问题,CGAN提出了一种带条件约束的GAN,在生成模型(G)和判别模型(D)的建模中均引入条件变量y,使用额外信息y对模型增加条件,可以指导数据生成过程。

3.2 GCGAN

DCGAN是继GAN之后比较好的改进,提升了GAN训练的稳定性以及生成结果质量。DCGAN为GAN的训练提供了一个很好的网络拓扑结构,表明生成的特征具有向量的计算特性。

3.3 WGAN

WGAN主要从损失函数的角度对GAN做了改进,损失函数改进之后的WGAN即使在全链接层上也能得到很好的表现结果,WGAN对GAN的改进主要有:判别器最后一层去掉sigmoid; 生成器和判别器的loss不取log。

3.4 WGAN-GP

WGAN-GP是WGAN之后的改进版,主要改进了连续性限制的条件。WGAN-GP提出了一种新的lipschitz连续性限制手法—梯度惩罚,解决了训练梯度消失梯度爆炸的问题;比标准WGAN拥有更快的收敛速度,并能生成更高质量的样本;提供稳定的GAN训练方式,几乎不需要怎么调参,成功训练多种针对图片生成和语言模型的GAN架构。

3.5 LSGAN

常见的GAN模型使用minimax作为损失函数,最小二乘GAN(LSGAN)使用最小二乘损失函数代替了GAN的损失函数。LSGAN模型缓解了GAN训练不稳定和生成图像质量差多样性不足的问题。

3.6 BEGAN

BEGAN和其他GAN不一样,这里的D使用的是auto-encoder结构,D的输入是图片,输出是经过编码解码后的图片。BEGAN提出了一种新的简单强大GAN,使用标准的训练方式,不加训练trick也能很快且稳定的收敛。

4 GAN网络的实现

系列文章

参考文献

GAIL生成对抗模仿学习的简单理解 文章目录强化学习模仿学习模仿学习的三种方法行为克隆逆向强化学习GAIL生成对抗模仿学习 强化学习 强化学习需要一个合适的reward函数去求解最优行动策略,但很多情况下不容易设以一个足够全面和优秀的reward函数,特别是在一些复杂的应用场景中,例如自动驾驶中撞人、撞车和闯红绿灯三者的reward值很难有一个合理的比例和设定,当面对的周围环境更加复杂就更难去定量。 模仿学习 模仿学习希望机器能够通... 阅读详情

相关推荐

强化学习(二)--让你轻松玩转生成对抗网络(GAN)与生成对抗模仿学习(GAIL)

GAN的基本结构 GAN的主要结构包括一个生成器G(Generator)和一个判别器D(Discriminator)

caokaifa的博客 6263

【强化学习】模仿学习:生成式对抗模仿学习

模仿学习:生成式对抗模仿学习 初体验

m0_63642362的博客 1万+

FSR 2.0与DLSS深度对比:画质、性能与适用场景全面解析

画质优先:选择FSR 2.0质量模式或DLSS平衡模式性能优先:DLSS性能模式帧数提升更显著兼容性需求:FSR 2.0是跨平台开发的唯一选择对于开发者而言,建议采用动态技术路由检测显卡型号自动切换技术提供画质/性能/平衡三档预设集成锐度调节滑块(0-100%)满足个性化需求未来随着AI加速硬件的普及,超分辨率技术将向实时路径追踪优化与多模态渲染方向发展。开发者需持续关注技术演进,在画质与性能间找到最佳平衡点。

nntxthml的博客 2547

论文精读:Generative Adversarial Imitation Learning(生成对抗模仿学习)

这篇论文是2016年由斯坦福大学研究团队提出的,两位作者,一位是Jonathan Ho,履历十分丰富,主要研究方向是无监督学习和强化学习,另一位是Stefano Ermon,他是斯坦福大学的副教授,主要研究方向是概率建模、生成学习和推理。因为我的毕业设计自动驾驶,模型学习的效果并没有达到预期,一是训练的时间成本很高,二是没有办法让模型学会遵守交通规则。后来在《动手学强化学习》这本书里看到了模仿学习,综合考量了一下现在的模仿学习算法,最后选择了这篇论文,也就是基于生成对抗网络模仿学习。.........

Alex 8238

从SRResNet到SRGAN:一个ResNet块如何‘骗过’判别器,让你的低清壁纸变高清?

本文深入探讨了从SRResNet到SRGAN的技术演进,揭示残差网络如何通过对抗训练实现视觉级超分辨率。SRGAN结合感知损失和对抗训练,在4倍放大时生成更真实的纹理细节,显著提升人眼评分。文章详细解析了网络架构设计、损失函数优化及实战训练技巧,为图像超分领域提供重要参考。

weixin_29483277的博客 279

YOLOv11【第五章:数据工程与增强篇·第8节】GAN 生成对抗网络——合成虚拟数据以扩充 YOLOv11 稀缺样本!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 385

GAN学习

生成对抗网络——GAN(一) https://blog.youkuaiyun.com/leviopku/article/details/81292192 GAN的理解与TensorFlow的实现 https://blog.youkuaiyun.com/jinyuan7708/article/details/81414308 利用tensorflow训练简单的生成对抗网络GAN https://www.cnblo...

u013049912的博客 191

红外与可见光图像融合:技术与应用研究进展及挑战

本文系统综述了红外与可见光图像融合(IVIF)技术的研究进展与工程实践。针对现有综述难以指导算法落地的问题,提出"接口-注意力-对齐"三维分析体系,对传统空间域/变换域方法和深度学习范式(生成式、判别式、多任务、Transformer等)进行系统归类。创新性地建立融合效果-任务性能-设备限制的关联评测框架,结合2025年前沿成果分析保真度、鲁棒性与效率的权衡关系。提出包含任务精度(AP/mIoU)、推理时延、内存占用的完整评测方案,填补了视频时序一致性、鲁棒性评测等四大研究空白,并给出面向实际应用的选型清单

毕竟是Shy哥 501

深度学习原理与实践(开源图书)-总目录

深度学习原理与实践(开源图书)-总目录 置顶2018年10月13日 17:54:24MTVideoAI阅读数:390标签:深度学习原理与实践机器学习原理与实践开源图书更多 个人分类:深度学习专题 所属专栏:深度学习原理与实践 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/sh...

weixin_30436891的博客 407

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 433

STM32F103C8T6实战:从零搭建三相SPWM逆变器(附MATLAB仿真、PCB、源码)

本文详细介绍了如何使用STM32F103C8T6单片机从零搭建三相SPWM逆变器,涵盖硬件选型、PCB设计、SPWM算法实现及MATLAB仿真。项目提供完整的工程文件,包括源码、PCB设计和仿真模型,适合电子工程师和学生进行实践学习。通过本教程,读者可以掌握逆变器设计的核心技术和调试方法。

weixin_30458043的博客 455

pytorch多模态实践基础

参考文章 人脸检测与识别: 人脸识别常用数据集大全(12/20更新) https://www.cnblogs.com/ansang/p/8137413.html Large-scale CelebFaces Attributes (CelebA) Dataset(汤晓欧实验室,有更新,假脸数据集,美妆,语义分割) http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html FDDB: Face Detection Data Set and Benchmark

yiyayiya557的博客 3621

AWS 小白书 [1] 全球架构

小白应该知道的 AWS 知识

boshansolo的博客 704

从Lalonde到DoveNet:iHarmony4数据集上的经典图像协调算法演进之路 [特殊字符]

图像协调(Image Harmonization)是计算机视觉领域的重要研究方向,它通过调整合成图像中前景的外观使其与背景区域保持一致,从而创造出视觉上更加真实的图像。**iHarmony4数据集**作为首个大规模公开的图像协调基准数据集,为这一领域的研究提供了重要的数据支持。本文将带你了解从传统方法到深度学习方法的演进历程,重点介绍基于**iHarmony4数据集**的经典算法发展之路。 ##

gitblog_01109的博客 602

ArcGIS Pro新手避坑:从OpenStreetMap导入路网到创建拓扑关系全流程

本文详细解析了ArcGIS Pro中从OpenStreetMap导入路网数据到创建拓扑关系的全流程,涵盖OSM数据特性、几何完整性检查、属性强化及拓扑关系构建等关键步骤。特别针对路网数据预处理、网络数据集配置和常见问题提供了实用解决方案,帮助GIS新手高效完成网络分析任务。

weixin_33670786的博客 514

K-means在关键词聚类中的尝试

K-means在文本聚类中的尝试 K-means算法是无监督的聚类算法。它的算法思想是:先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。 K-means算法的关键点在于: 初始k个聚类中心的选择 距离的计...

BigPig_LittleTail的博客 5573

图像修复模型对比:fft npainting lama与DeepFill优劣分析

本文介绍了基于星图GPU平台自动化部署“fft npainting lama重绘修复图片移除图片物品 二次开发构建by科哥”镜像的实践方法。该平台支持高效集成与运行,适用于图像修复、AI内容生成等场景,尤其在Web端交互式修图工具开发中表现优异,可实现水印去除、物体移除等操作,助力开发者快速构建稳定、低延迟的AI应用。

weixin_42610010的博客 819

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现

Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 Car Racing 2D (2D赛车) 休闲小游戏快速实现 一、简单介绍 二、Car Racing 2D (2D赛车) 游戏内容与操作 三、相关说明 四、游戏代码框架 五、知识点 六、游戏效果预览 七、实现步骤 八、工程源码地址 九、延伸扩展 一、简单介绍 Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发实现过程,方便

仙魁XAN 7702

从CrazyTalk到AI换脸:聊聊那些年我们见过的人脸认证‘破解’工具(附真实防御思路)

本文回顾了人脸认证技术从CrazyTalk到AI换脸的演进历程,揭示了人脸实名认证与破解工具之间的持续博弈。通过分析不同代际的认证技术和攻击手段,提供了包括多模态融合检测、深度学习端到端检测等现代防御方案,帮助构建更安全的人脸认证体系,有效防范信息泄露风险。

weixin_33744854的博客 379

手把手教你用Pytorch代码实现Transformer模型(超详细的代码解读)

本文整理了非常清楚的Transformer模型结构图,建议大家在看代码的时候能结合这个结构图来理解,这样理解起来会比较容易! 用Pytorch实现Transformer的完整代码

捡起一束光的博客 7万+

AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘解决方案

本文主要介绍了AttributeError: module ‘lib’ has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK’解决方案,希望能对使用python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 5万+

AnimeGANv2性能对比:不同版本模型的转换效果差异

本文介绍了基于星图GPU平台自动化部署AI二次元转换器 - AnimeGANv2镜像的方案,支持一键运行多种版本模型。该镜像可广泛应用于人像动漫化、社交媒体头像生成等场景,尤其适合开发者进行模型微调与AI应用快速开发,实现高效、低门槛的风格迁移实践。

weixin_42506884的博客 813

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

5个关键技巧:如何在MNIST对抗性攻击挑战中取得优异成绩

想要在MNIST对抗性攻击挑战中脱颖而出吗?这个由Madry Lab发起的挑战赛旨在探索神经网络在MNIST数据集上的对抗鲁棒性,是深度学习安全领域的重要基准测试。无论你是对抗性攻击的新手还是经验丰富的研究者,掌握以下5个关键技巧都能帮助你在挑战中取得优异成绩!🚀 ## 1️⃣ 深入理解攻击模型与约束条件 MNIST对抗性攻击挑战的核心目标是找到能有效对抗鲁棒神经网络的对抗样本。每个像素的扰

gitblog_00635的博客 989

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

AI图片艺术化处理实战手册:从零部署Stable Diffusion+ControlNet,3小时产出专业级艺术图

快速掌握AI图片艺术化处理,3小时部署Stable Diffusion+ControlNet并产出专业级艺术图。适用于插画创作、摄影转绘、设计素材生成等场景,支持精准构图与风格迁移。零基础实操指南,含环境配置、模型加载与提示词优化,效果稳定、可控性强,值得收藏。

GatherLume的博客 174

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

从 WAIC 2026 打开人工智能:一部正在发生的科技史诗

2026年7月17日到20日,上海世博展览馆。1100多家企业、3000多项展品、300多款全球首发——第九届世界人工智能大会(WAIC 2026)又一次把全球AI圈的目光拉到了黄浦江畔。但这次不一样:机器人不再只是在玻璃柜里挥挥手,而是真的在展馆里走楼梯、搬箱子、给你倒咖啡。AI也不再只是聊天机器人,而是能自己规划任务、调用工具、给你交活的"数字员工"。本文以WAIC 2026为窗口,倒带70年,聊聊AI是怎么从一群人的异想天开,变成改变世界的力量的。

weixin_72753562的博客 354
上一篇: 机器学习原理与实践(开源图书)-总目录
下一篇: 深度学习原理与实践(开源图书)-总目录
MTVideoAI
博客等级 码龄15年 456粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值