Improved Techniques for Training GANs

paper
code

Introduce

对抗网络主要有两个应用:半监督学习和生成视觉相似图片。对抗网络的目的要训练生成网络 G(z;θG) G(z;\theta^{G}),输入噪声 z z生成x=G(z;θG)x=G(z;\theta^{G}),x为一幅图片,并且x满足真实的数据分布 pdata(x) p_{data}(x)。判别网络 D(x) D(x)判断生成的图片真假。
对抗网络的双方都想要最小化自己的损失函数。假设 JD(θ(D),θ(G)) J^D(\theta^{(D)}, \theta^{(G)})是判别网络的损失函数, JG(θ(D),θ(G)) J^G(\theta^{(D)}, \theta^{(G)})是生成网络的损失函数。纳什均衡点就是参数空间的点 (θ(D),θ(G)) (\theta^{(D)}, \theta^{(G)}), JD J^D对于 θ(D) \theta^{(D)}取得最小值, JG J^G对于 θ(G) \theta^{(G)}取得最小值。对抗网络中, θ(D) \theta^{(D)}的更新减少了 J(D) J^{(D)},但是同时又增加了 J(G) J^{(G)}, θ(G) \theta^{(G)}的更新减少了 J(G) J^{(G)},同样又增加了 J(D) J^{(D)}。例如下面的例子,一个网络想要通过修改 x x来最小化xyxy,另一个网络想要通过修改 y y来最小化−xy-xy,使用梯度下降的方法会进入一个稳定的轨道中,并不会收敛到 (0,0) (0,0)点。
对抗网络的目的需要在高维非凸的参数空间中,找到一个纳什均衡。但是GAN网络使用梯度下降的方法只会找到低的损失,不能找到真正的纳什均衡。本论文中,作者通过引入了一些方法,提高网络的收敛。

Toward Convergent GAN Training

Feature Matching

原始的GAN网络的目标函数需要最大化判别网络的输出。作者提出了新的目标函数,motivation就是让生成网络产生的图片,经过判别网络后的中间层的feature 和真实图片经过判别网络的feature尽可能相同。假定 f(x) f(x)为判别网络中间层输出的feature map。生成网络的目标函数定义如下:

||Ex∼pdataf(x)−Ez∼pz(z)f(G(z))||22

||E_{x\sim p_{data}}f(x) - E_{z\sim p_z(z)}f(G(z))||_2^2
判别网络按照原来的方式训练。相比原先的方式,生成网络G产生的数据更符合数据的真实分布。作者虽然不保证能够收敛到纳什均衡点,但是在传统GAN不能稳定收敛的情况下,新的目标函数仍然有效。个人觉得,判别网络从输入到输出逐层卷积,pooling,图片信息逐渐损失,因此中间层能够比输出层得到更好的原始图片的分布信息,拿中间层的feature作为目标函数比输出层的结果,能够生成图片信息更多。可能采用这种目标函数,生成的图片会效果会更好。

MiniBatch discrimination

判别网络如果每次只看单张图片,如果判断为真的话,那么生成网络就会认为这里一个优化的目标,导致生成网络会快速收敛到当前点。作者使用了minibatch的方法,每次判别网络输入一批数据进行判断。假设 f(x)∈RA f(x)\in R^A表示判别网络中间层的输出向量。作者将 f(x) f(x)乘以矩阵 T∈RA×B×C T\in R^{A \times B \times C},得到一个矩阵 Mi∈RB×C M_i \in R^{B \times C}。计算矩阵 Mi M_i每行的L-1距离,得到 cb(xi,xj)=exp(−||Mi,b−Mj,b||L1∈R c_b(x_i, x_j) = exp(-||M_{i,b} - M_{j, b}||_{L_1} \in R 。
定义输入 xi x_i的输出 o(xi) o(x_i)如下:

o(xi)b=∑j=1ncb(xi,xj)∈R o(xi)=[o(xi)1,o(xi)2,o(xi)3,......o(xi)n]o(X)∈Rn×B

o(x_i)_b = \sum_{j= 1} ^ n c_b(x_i, x_j)\in R\\ ~o(x_i) = [o(x_i)_1, o(x_i)_2, o(x_i)_3, ......o(x_i)_n] \\ o(X) \in R^{n\times B}

将 o(xi) o(x_i)作为输入,进入判别网络下一层的输入。

Historical averaging

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

||θ−1t∑i=1tθ[i]||2

||\theta - \frac{1}{t}\sum_{i=1}^t\theta[i]||^2
公式中 θ[i] \theta[i]表示在i时刻的参数。这个项在网络训练过程中,也会更新。加入这个项后,梯度就不容易进入稳定的轨道,能够继续向均衡点更新。

One-side label smooth

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

D(x)=αpdata(x)+βpmodel(x)pdata(x)+pmodel(x)

D(x)=\frac{\alpha p_{data}(x) + \beta p_{model}(x)}{p_{data}(x) + p_{model}(x)}
本文中作者将正例乘以 α \alpha, 负例乘0。这里我也没看明白,如果后面明白以后, 持续更新……。

Virtual batch normalization

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

Semi-supervised learning

标准的分类网络将数据 x x输出为可能的KK个classes,然后对K维的向量使用softmax: pmodel(y=j|x)=exp(lj)∑kk=1exp(lk) p_{model}(y = j|x) = \frac{exp(l_j)}{\sum_{k=1}^kexp(l_k)}。标准的分类是有监督的学习,模型通过最小化交叉熵损失,获得最优的网络参数。
对于GAN网络,可以把生成网络的输出作为第K+1类,相应的判别网络变为K+1类的分类问题。用 Pmodel(y=K+1|x) P_{model}(y=K+1|x)表示生成网络的图片为假,用来代替GAN的 1−D(x) 1-D(x)。对分类网络,只需要知道某一张图片属于哪一类,不用明确知道这个类是什么,通过 pmodel(y∈1,2,...,k|x) p_{model}(y\in{1, 2, ..., k} | x)就可以训练。
所以损失函数就变为了:

L=−Ex,y∼pdata(x,y)[logpmodel(y|x)]−Ex∼G[logpmodel(y=K+1|x)]=Lsupervised+Lunsupervised,

L = -E_{x, y \sim p_{data}(x, y)}[logp_{model}(y|x)] - E_{x\sim G}[logp_{model}(y=K+1|x)] \\ = L_{supervised} + L_{unsupervised},

Lsupervised=−Ex,y∼pdata(x,y)[logpmodel(y|x)]

L_{supervised} = -E_{x, y \sim p_{data}(x, y)}[logp_{model}(y|x)]

Lunsupervised=−Ex∼G[logpmodel(y=K+1|x)]

L_{unsupervised} = - E_{x\sim G}[logp_{model}(y=K+1|x)]
如果把 D(x)=1−pmodel(y=K+1|x) D(x)=1-p_{model}(y=K+1|x),上述无监督的表达式就是GAN的形式:

Lunsupervised=−Ex∼pdata(x)logD(x)+Ez∼noiselog(1−D(G(Z)))

L_{unsupervised}=-{E_{x\sim p_{data}(x)}logD(x) + E_{z\sim noise }log(1-D(G(Z)))}

Experiment

作者在mnist, cifar10, svhn数据集上做了实验,在这里只贴了cifar10的实验结果了。


Conclusion

表示大牛写的文章,高度太高,很难理解,博客中有错误的地方,希望大家能多多指教,共同讨论。

Reference

纳什均衡 :https://en.wikipedia.org/wiki/Nash_equilibrium
Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, Xi Chen Improved Techniques for Training GANs

Improved Techniques for Training GANs相关推荐

  1. Improved Techniques for Training GANs 代码执行中的坑 python3.6 tf环境

    improved-gan-master:中的代码: **Status:** Archive (code is provided as-is, no updates expected) # improv ...

  2. 《Improved Techniques for Training GANs》-论文阅读笔记

    <Improved Techniques for Training GANs>-论文阅读笔记 文章目录 <Improved Techniques for Training GANs& ...

  3. Improved Techniques for Training GANs论文中的创新和理解

    一.题外话:非平稳性纹理合成 1.目的:使用生成对抗网络来将小纹理扩展为类似于原始样本的较大纹理: 基于实例的纹理合成的目的是生成纹理,捕获样本的视觉特征并保持逼真的外观. 非平稳性纹理包括大规模不规 ...

  4. 学习笔记:Improved Techniques for Training GANs理解

    论文链接:https://arxiv.org/abs/1606.03498 这是一篇对GAN的训练作出改进的文章,众所周知,GAN的训练是极其不稳定的.转载请注明. 1 主要内容 对GAN网络提出一些 ...

  5. ContraD论文部分翻译与解读(Training GANs with Stronger Augmentations via Contrastive Discriminator)

    Training GANs with Stronger Augmentations via Contrastive Discriminator 借助对比判别器实现的通过更强的数据增强来训练生成对抗网络 ...

  6. Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters-翻译

    Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters Abstract 近年来,Rao-Blackw ...

  7. Diffusion-GAN: Training GANs with Diffusion 解读

    Diffusion-GAN: 将GAN与diffusion一起训练 paper:https://arxiv.org/abs/2206.02262 code:GitHub - Zhendong-Wang ...

  8. Improved Consistency Regularization for GANs

    Improved Consistency Regularization for GANs 最近的工作(Zhang et al. 2020)通过在鉴别器上强制一致性代价,提高了生成对抗网络(gan)的性 ...

  9. Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters全文翻译Gmapping

    Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters全文翻译Gmapping Improved Te ...

最新文章

  1. 计算机组成考试题及答案,计算机组成测试题一参考答案
  2. oracle 11g wm_concat 、 listagg 函数的使用(合并数据)
  3. 鸿蒙2.0开始推送,华为OS首次登陆手机,亮点槽点都在这里
  4. 顶部对齐css表单,vertical-align 表单元素垂直对齐的解决方法
  5. FastAPI使用async?乱用async导致灾难,不如直接不用
  6. !doctype html报错h5,【Web前端问题】javascript import 报错
  7. django-关闭调试模式-保护网站安全
  8. java中的链接之其他窗体_两个窗体之间的链接
  9. js 获取最后一个字符
  10. linux 获取指定目录最大深度(层数)02
  11. Two Sum(C、C++、Python)
  12. C#Socket客户端
  13. 城市综合杆道路智慧路灯多杆合一项目解决方案解析
  14. u盘复制一直正在计算机,解决U盘复制文件时电脑总是重启的方法
  15. HTML实现怀旧小游戏,超级玛丽、飞机大战…等十余款【完整源码分享】
  16. 重磅!中国科学技术大学,成立新学院!
  17. 修改注册表值scancode map来屏蔽键盘上的键
  18. 沙盒隔离技术的本质与背景
  19. 邵柏庆与Ace Lead Profits Ltd.在英属维尔京群岛针对和利时自动化科技有限公司提起诉讼
  20. 易风神盾防火墙 v1.0 官方

热门文章

  1. 每天读一点儿APM(PIX)代码之四:minimosd
  2. SSL证书过期怎么办?只需几步就能轻松解决!
  3. (一)地理信息中对地球的描述-经纬度、赤道、本初子午线、海拔高度、中央子午线
  4. 帝国cmssitemap.php,帝国CMS网站地图sitemap制作与自动更新
  5. 【Linux基础命令】
  6. 喝普洱熟茶为什么嗓子会发干发痛?
  7. linux系统怎么查看raid卡信息,LINUX下查SCSI卡、RAID卡信息的命令
  8. 如何实现一个无边框Form的移动和改变大小(二)
  9. 30个最优秀的在线照片编辑工具
  10. IT行业,唯一不变的原则—“变”!