论文:https://arxiv.org/abs/1606.03498

源码:https://github.com/openai/improved_gan

参考:博客1,博客2,博客3

1  介绍

GAN是基于博弈论的生成模型方法。GAN训练一个生成网络来生成尽可能真实的图像,一个判别网络尽可能区分真是图像和生成图像。训练GAN要求找到在连续高维参数下非凸博弈的纳什均衡。但是通常GAN用梯度下降方法去寻找损失函数的最小值,而不是纳什均衡,这可能会导致无法收敛。论文中介绍了几个方法去尽量实现GAN博弈的收敛。这些方法的灵感来源于非凸问题的启发式理解。可以帮助提升半监督学习性能和提升采样生成。

2  相关tricks

首先需要对G做一个处理,使用Feature matching代替原来的关于G的loss函数。

2.1  Feature matching(特征匹配)

Feature matching 中提出,在D(判别器)模型中,添加中间层,称之为f(x)。也就是,不是像以前一样考虑最后的结果(概率),而是考虑在中间层中的数据之间的差异性(这里使用的是二范数的平方)。因为原始的GAN网络的目标函数需要最大化判别网络的输出。作者提出了新的目标函数,目的是让生成网络产生的图片经过判别网络后的中间层的feature 和真实图片经过判别网络的feature尽可能相同。因此生成网络的目标函数定义如下:

判别网络按照原来的方式训练。相比原先的方式,生成网络G产生的数据更符合数据的真实分布。尽管不能保证到达均衡点,不过收敛的稳定性应该是有所提高。

2.2  minibatch discrimination(小批量判别)

判别网络如果每次只看单张图片,如果判断为真的话,那么生成网络就会认为这里一个优化的目标,导致生成网络会快速收敛到当前点。作者使用了minibatch的方法,每次判别网络输入一批数据进行判断。

假设表示判别网络中间层的输出向量,作者将乘以矩阵,得到一个矩阵。计算矩阵每行的L-1距离,得到。定义输入的输出如下:

作为输入,进入判别网络下一层的输入。

2.3  Historical averaging(历史平均)

在生成网络和判别网络的损失函数中添加一个项:

公式中 表示在i时刻的参数。这个项在网络训练过程中,也会更新。加入这个项后,梯度就不容易进入稳定的轨道,能够继续向均衡点更新。

2.4  One-side label smooth(类别标签平滑

将正例label乘以,, 负例label乘以,最优的判别函数分类器变为:

文中将正例label乘以,, 负例label乘以0。

2.5  Virtual batch normalization(虚拟的batch normalization)

Normalization(归一化)使用能够提高网络的收敛,但是BN(批归一化)带来了一个问题,就是layer的输出和本次batch内的其他输入相关。为了避免这个问题,作者提出了一种新的bn方法,叫做virtual batch normalization。首先从训练集中拿出一个batch在训练开始前固定起来,算出这个特定batch的均值和方差,进行更新训练中的其他batch。VBN的缺点也显而易见,就是需要更新两份参数,比较耗时。

3  Semi-supervised learning(半监督学习)

标准的分类网络将数据xx输出为可能的K个classes,然后对K维的向量使用softmax:

标准的分类是有监督的学习,模型通过最小化交叉熵损失,获得最优的网络参数。对于GAN网络,可以把生成网络的输出作为第k+1类,相应的判别网络变为k+1类的分类问题。用来表示生成网络的图片为假,用来代替GAN的。对分类网络,只需要知道某一张图片属于哪一类,不用明确知道这个类是什么,通过可以训练。因此损失函数变为:

如果把,上述无监督的表达式就是GAN的形式(见2014的GAN论文https://blog.csdn.net/weixin_44855366/article/details/119734833):

ImprovedGAN论文略读相关推荐

  1. 【How to Design Translation Prompts for ChatGPT: An Empirical Study 论文略读】

    How to Design Translation Prompts for ChatGPT: An Empirical Study 论文略读 INFORMATION Abstract 1 Introd ...

  2. 论文略读:《地区如何随着时间的推移而多样化?产业关系与地区新增长路径的发展》

    地区如何随着时间的推移而多样化?产业关系与地区新增长路径的发展 阅读时间:2022.04.06 How Do Regions Diversify over Time? Industry Related ...

  3. 论文略读1《Direct training for spiking neural networks:faster,larger,better》

    发布时间2019-07-17,AAAI 文章链接Direct Training for Spiking Neural Networks: Faster, Larger, Better | Procee ...

  4. 论文略读 | Pattern-revising Enhanced Simple Question Answering over Knowledge Bases

    这是何世柱老师团队发表于COLING2018的一篇文章. 一. 文章贡献: 提出进行模式提取和实体链接,并提出模式修改程序来缓解错误传播问题 学习对候选主谓词对进行排序以使得能够在给出问题的情况下进行 ...

  5. 论文略读 | Question Answering on Knowledge Bases and Text using Universal Schema and Memory Networks

    文章创新点: 使用文本和KB组合的通用模式,结合记忆网络来完成问答 提出模型: UNISCHEMA 提出原因: 知识库问答会受到不完整性的影响,文本虽然包含大量事实,但是存在非结构化文本,将KB和文本 ...

  6. 如何读论文才不至于发疯?

    ↑ 点击蓝字 关注视学算法 来源丨新智元 编辑丨极市平台 极市导读 本文精选Reddit热帖"如何阅读大量的学术论文,而不发疯?"下的优质回答,介绍了多种提高文献阅读效率的方法. ...

  7. 哈夫曼编码压缩率计算_考研经验分享(哈工大计算机)

    2019.3.13 考研就此告一段落,在这里写下我自己的总结. 本人报考的哈尔滨工业大学深圳,专业是计算机科学与技术. 先说初试,初试我考的是数学一(129),英语一(69),政治(75)和计算机基础 ...

  8. cvpr2018 行为识别

    转载论文笔记:CVPR 2018 关于行为识别论文略读笔记(一) 论文笔记:CVPR 2018 关于行为识别论文略读笔记(二)

  9. 【Share 2021】caoyang.log(OLD VERSION)

    序言 目录 序言 2021年1月 01-01 01-02 01-03 01-04 01-05 01-06 01-07 01-08 01-09 01-10 01-11 01-12 01-13 01-14 ...

  10. 吴恩达:关于机器学习职业生涯以及阅读论文的一些建议

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:Mohamed Ali Habib 编译:ronghuaiy ...

最新文章

  1. NSight Compute 用户手册(上)
  2. 检测到目标服务器启用了trace方法_CVPR2019目标检测方法进展综述
  3. Cocos Creator中的动画支持技术
  4. web安全攻防从入门到放弃-记录
  5. centos7-安装mysql5.6.36
  6. (13)Verilog HDL变量:memory型
  7. 建站如此容易:WordPress3.9建站简明视频教程完成发布啦
  8. “龙书”作者斩获图灵奖!谷歌 AI 大神、Swift 之父都受它启蒙
  9. Q105:PC双系统:Windows 7下硬盘安装Ubuntu 16.04
  10. 【DBA | IT人生】数据库解惑系列
  11. 【硕博士推荐】国内有哪些不错的CV(计算机视觉)团队?
  12. 国美易卡借助互联网,国美易卡搭建风控、运营、营销体系
  13. 什么是CLI(命令行界面)、GUI(图形用户界面)、Terminal(终端)、Console(控制台)、Shell、TTY
  14. 再见2018 你好2019
  15. 【原创纯手打】如何使用Vue写微信朋友圈中的留言回复功能(附源码)
  16. Windows10彻底卸载VMWare虚拟机
  17. 啊哈C语言 第五章 【代码】【习题答案】
  18. 最近遇到的异常与错误总结
  19. python爬斗鱼直播_从零开始写Python爬虫 --- 爬虫应用: 利用斗鱼Api抓取弹幕
  20. 《厚黑学》| 读书三诀

热门文章

  1. 【毕业设计】 单片机自动写字机器人设计与实现 - 物联网 嵌入式 stm32
  2. 【Paper-Attack】A Targeted Universal Attack on Graph Convolutional Network
  3. c语言memcmp函数详解,C语言之memcmp()函数
  4. js 手机虚拟键盘控制
  5. jqgrid冻结前后列
  6. oracle创建完成 sys密码怎么修改,如何重置密码 oracle sys和system
  7. 父级fixed_相对于父元素的fixed定位的实现
  8. 50个表单功能,验证,安全和自定义化的jQuery插件
  9. 现代 Nodejs ORM 库 Prisma 的使用详解
  10. 基于PHP课程网站设计开题报告,在线课程网站设计开题报告