当前位置: 首页 > news >正文

AI论文精读笔记-Generative Adversarial Nets(GAN)

1. 论文基本信息

  • 论文标题:Generative Adversarial Nets

  • 作者:Ian J. Goodfellow,∗ Jean Pouget-Abadie,† Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair,‡ Aaron Courville, Yoshua Bengio§

  • 发表时间和期刊:2014.06;NeurIPS

  • 论文链接:Generative Adversarial Nets

2. 研究背景和动机

        到目前为止,深度学习中最引人注目的成功来自于判别模型,通常是那些将高维度、丰富的输入映射到类别标签的模型。相比之下,生成模型的影响力较小,原因在于近似许多难以处理的概率计算(这些计算在最大似然估计和相关策略中出现)非常困难,此外在生成背景中难以利用分段线性单元的优势。

3. 主要贡献

        (1) 我们通过“对抗”的方式提出了一种新的framework用于估算生成模型,绕过了这些难题。在所提出的对抗网络框架中,生成模型与一个对手判别模型进行对抗:一个判别模型学习如何判断样本是来自伪造的分布还是数据分布。生成模型可以类比为一组伪造者,试图制造假币并使用而不被发现,而判别模型则类似于警察,试图识别假币。这场竞争驱使双方不断改进方法,直到假币与真币无法区分。

        (2) 用一个有监督学习的损失函数来做无监督学习。标号来自于是采样的还是生成的。(可以说是自监督学习的灵感来源之一)

4. 方法和模型

        下图是GAN的生成器与判别器的优化过程。其中蓝色虚线代表判别结果的分布情况(注意,当判别结果为\frac{1}{2}时,代表生成器伪造的数据达到最优结果,此时相当于随机猜测);黑色虚线代表真实的数据分布情况;绿色实线代表生成器生成的结果分布。

        生成器的目标就是通过MLP将z(代表噪声分布)映射到x(真实数据分布),可以看到,随着不断优化z,噪声分布逐渐向真实的数据分布靠拢,到最后判别结果的分布趋向于\frac{1}{2}

下图是GAN的核心算法。其中第一个等式用于优化判别器,第二个等式用于优化生成器

5. 实验和结果

略~

6. 讨论和未来工作

GAN的优点总结如下

  1. 无需马尔可夫链:训练过程中不需要依赖马尔可夫链,仅需反向传播来获取梯度。
  2. 无推断步骤:学习过程中无需进行推断操作,简化了模型训练。
  3. 模型灵活性:模型可以集成多种不同的函数,具有较强的灵活性。
  4. 梯度传递优势:生成器网络通过鉴别器的梯度进行更新,而非直接从数据样本中更新参数,这可能带来一定的统计优势,避免输入信息直接复制到生成器的参数中。
  5. 高质量分布表示:相较于基于马尔可夫链的方法,GAN能够表示非常清晰甚至退化的分布,而马尔可夫链方法则需要分布较模糊以便模式之间的混合。

GAN的缺点总结如下

  1. 无显式概率分布表示:GAN模型中没有显式地表示目标概率分布。
  2. 训练不稳定性:生成器和判别器的训练需要很好地同步。

7. 个人理解和反思

        GAN的出现已经过了10年之久,现在也涌现出很多基于GAN的优化工作,比如StyleGAN3等等。而GAN的主要思想也不是前人未曾想到的,不过,GAN将其发扬光大,讲解清楚,成为生成领域的经典之作。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • YOLOv5改进 | 模块缝合 | C3 融合RFAConv和CBAM注意力机制 【二次融合 小白必备】
  • GANs-生成对抗网络
  • 第二期: 第二节 , 裸机编程 , gpio
  • 基于python+django+vue的鲜花商城系统
  • kafka mirror maker之实现两个kafka集群之间的数据同步
  • freeRTOS 任务的创建、挂起、恢复
  • 使用PyTorch进行图像风格迁移:基于VGG19实现
  • 多目标优化算法求解LSMOP(Large-Scale Multi-Objective Optimization Problem)测试集,MATLAB代码
  • Windows和Mac命令窗快速打开文件夹
  • vue 项目自适应 配置 px转rem 的插件postcss-pxtorem
  • 数据中台建设(六)—— 数据开发-提取数据价值
  • Java实现建造者模式和源码中的应用
  • 大棚分割数据集,40765对影像,16.9g数据量,0.8米高分二,纯手工标注(arcgis标注)的大规模农业大棚分割数据集。
  • 使用Flux以文生图
  • 【QT】常用类
  • 10个最佳ES6特性 ES7与ES8的特性
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • dva中组件的懒加载
  • JAVA 学习IO流
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • JS数组方法汇总
  • nodejs:开发并发布一个nodejs包
  • PHP 的 SAPI 是个什么东西
  • Rancher-k8s加速安装文档
  • 从tcpdump抓包看TCP/IP协议
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 坑!为什么View.startAnimation不起作用?
  • 区块链将重新定义世界
  • 数据科学 第 3 章 11 字符串处理
  • 一道闭包题引发的思考
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 阿里云重庆大学大数据训练营落地分享
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ‌移动管家手机智能控制汽车系统
  • # 透过事物看本质的能力怎么培养?
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (20050108)又读《平凡的世界》
  • (备忘)Java Map 遍历
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (分布式缓存)Redis哨兵
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (三分钟)速览传统边缘检测算子
  • ***测试-HTTP方法
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net MVC + EF搭建学生管理系统
  • .Net6使用WebSocket与前端进行通信
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net下的富文本编辑器FCKeditor的配置方法
  • @RequestMapping处理请求异常
  • @SpringBootApplication 包含的三个注解及其含义