PaperNotes(20)-TGAN-DeliGAN

GAN的文章2篇

  • 1.从RS-GAN说起
  • 2.TGAN
    • Abstract
    • 1 Reviews of GANs
    • 2.3 Relate to Turing Test
    • 3 Related Works
    • 4 Experiments
      • 4.1 Design of Discriminator
    • 5.Conclusion
  • 3 DeliGAN
    • Abstract
    • 1. Introduction
    • 2. Related Work
    • 3.GAN
    • 4.本文方法
    • 5.实验
      • 5.1. Modified Inception Score
      • 5.2. Toy Data
    • 6. Discussion

1.从RS-GAN说起

SGAN 就是标准的 GAN(Standard GAN)。
这个建模过程似乎对判别器的要求过于苛刻了,因为判别器是孤立运作的:训练生成器时,真实样本没有参与,所以判别器必须把关于真实样本的所有属性记住,这样才能指导生成器生成更真实的样本。
所谓“没有对比就没有伤害,没有伤害就没有进步”
比如识别一张假币,可能需要把它跟一张真币对比一下;那么需要把真品放在一旁不断地进行对比改进,而不是单单凭借**“记忆”**中的真品来改进。
**图灵测试:**也强调了对比的重要性,如果机器人和人混合起来后就无法分辨了,那么说明机器人已经成功了。

RS-GAN中图灵测试思想:鉴别器无法鉴别出混合的真假图片,那么生成器就成功了;而为了生成更好的图片,生成器也需要直接借助于真实图片。
还是要推导一下f-gan的公式。

参考博文:https://blog.csdn.net/weixin_34362790/article/details/89628240
像是图灵测试那篇文章的公式推导
先看一下那篇文章的一个大致翻译,再回过头来推公式

2.TGAN

Abstract

本文介绍了一种新的生成性对抗网络(GANs)训练模式。我们不是最小化证据分布p(x)和生成分布q(x)的距离,而是最小化p(xr)q(xf)和p(xf)q(xr)的距离。这种对抗模式可以解释为GAN的图灵检验。它允许我们在训练生成器中使用真实样本的信息,加速整个训练过程。我们甚至发现,只要按比例增大鉴别器和生成器的大小,就可以在256x256分辨率上成功,而不必仔细调整超参数。

1 Reviews of GANs

自Goodfellow的第一部作品(Goodfellow等人,2014)以来,GANs得到了很大的发展。GANs的主要思想是训练一个生成器G(z),使得生成分布

2.3 Relate to Turing Test

有一种非常可以直观解释的距离最小化:t图灵测试

如我们所知,图灵测试是对机器表现出与人类相当或无法区分的智能行为能力的测试。测试人员在不可预知的情况下与机器人和人类进行通信。如果测试人员无法区分人和机器人,我们可以说机器人(在某些方面)具有人类智能。

3 Related Works

(14)和(17)都允许优化器直接获取真实样本的信号来更新生成器。从形式上讲,与SGANs和WGANs相比,T-GANs的判别函数是两变量函数,既需要真样本,也需要假样本作为输入。这意味着鉴别器需要成对比较才能做出合理的判断。

这种想法首次出现在RSGANs(jolicourmatineau,2018)。我们的结果可以看作是RSGANs的扩展。只要在(15)中定义T(xr,xf),T(xr)T(xf),用1σ(x)=σ(x),我们就可以得到rsgan:

RSGANs在改进GANs方面具有一定的潜力,我们将在第4节展示T-GANs更有效和可持续的进展。
然而,RSGANs并不是第一个在训练生成器中提供真实样本的GANs。据我所知,第一个是Cramer GANs(Bellemare等人,2017),它基于能量距离:

4 Experiments

我们的实验在CelebA HQ数据集(Liu等人,2015年)和cifar10数据集(Krizhevsky&Hinton,2009年)上进行。我们在CelebA HQ上测试了(14)和(17),分辨率分别为64x64、128x128和256x256。cifar10是一个附加的辅助实验,证明T-GANs比现有的GANs工作得更好。

代码是用Keras编写的(Chollet等人,2015年),可在我的报告1中找到。模型的结构由DCGANs修改(Radford等人,2015)。模型采用Adam优化器(Kingma&Ba,2014)进行训练,学习率为0.0002,动量为0.5。
在GTX 1060上进行了64x64和128x128分辨率的实验,在GTX 1080Ti上进行了256x256分辨率的实验。

4.1 Design of Discriminator

理论上,任何具有双输入xr,xf的神经网络都可以用作T(xr,xf)。但为了简单起见,受RSGANs的启发,我们将T(xr,xf)设计为以下形式:
T(xr,xf)=D(E(xr)−E(xf))T(x_r,x_f)=D(E(x_r)-E(x_f))T(xr,xf)=D(E(xr)E(xf))

其中E(.)E(.)E(.)为输入图像的编码器,D(·)是一种以E(xr)、E(xf)的隐差矢量为输入、标量为输出的多层感知。它也可以被看作是一个比较xr和xf隐藏特征的相对论鉴别器,而不是比较RSGANs中的最终标量输出。

如果我们使用T-SGANs(14),理论上对T没有约束。但众所周知,梯度消失通常发生在sgan中,谱归一化是一种有效的防止梯度消失的策略。因此,无论是sgan还是wgan,光谱归一化都是一种常用的鉴别方法,T-sgan和T-wgan也是如此。

实验证明(14)和(17)在其鉴频器T(xr,xf)上应用光谱归一化时具有相似的性能。

5.Conclusion

在本文中,我们提出了一种新的对抗模式来训练生成模型T-GANs。这种对抗模式可以解释为GANs的图灵检验。它是一种指导思想,而不是一种具体的GAN训练模式。它可以与当前流行的GANs(如sgan和wgan)集成,从而产生T-sgan和T-wgan。

实验表明,T-GANs在小尺度到大尺度的数据集上具有良好而稳定的性能。这说明在GANs中更新生成器时,真实样本的信号是非常重要的。但是,T-GANs提高稳定性和收敛速度的机制还有待进一步探讨。

3 DeliGAN

Abstract

最近一类生成图像的方法被称为生成性对抗网络(GAN),用于生成对象、卧室、手写数字和各种其他图像形式的逼真图像。然而,典型的基于GAN的方法需要大量的训练数据来捕获图像形态的多样性。在本文中,我们提出了DeLiGAN——一种基于GAN的新颖体系结构,用于各种有限的训练数据场景。在我们的方法中,我们将潜在生成空间重新参数化为混合模型,并学习混合模型的参数和GAN的参数。对GAN框架的这种看似简单的修改是出人意料地有效的,其结果是尽管使用有限的数据进行训练,但能够在生成的样本中实现多样性的模型。在我们的工作中,我们证明DeLiGAN可以生成手写数字、物体和手绘草图的图像,所有这些都使用有限的数据。为了定量描述生成样本的类内多样性,我们还引入了一种改进的“初始分数”,这是一种与人类对生成样本的评估密切相关的测量方法。

1. Introduction

近年来,图像生成模型得到了复苏,特别是随着大数据集的出现[20,25]和深神经网络的出现[15]。特别是,生成性对抗网络(GANs)和变分自动编码器(VAE)在这方面表现出了巨大的潜力。在本文中,我们重点讨论基于GAN的方法。
最近,基于GAN的方法被用于生成令人印象深刻的真实的房屋编号[4]、面孔、卧室[17]和各种其他图像类别[18,21]。通常,这些图像类别往往具有极其复杂的底层分布。这种复杂性来自两个因素:(1)细节水平(例如,物体的彩色照片比二元手写数字图像具有更多的细节)(2)多样性(例如,物体类别的类别间和类别内变异性大于,例如,门牌号)。为了可行,发电机G需要有足够的能力来处理这些复杂的诱发因素。通常,这种能力是通过G[2]的深层网络来获得的。然而,训练大容量发电机需要大量的训练数据。因此,当训练数据量有限时,现有的基于GAN的方法是不可行的。
Contributions:

2. Related Work

生成性对抗网络(GANs)由于其产生的样本与其他方法相比具有一定的锐度,近年来得到了广泛的应用。对最初提出的基线方法[8]进行了修改,以在不破坏训练方案稳定性的情况下融入深卷积网络,并在图像质量方面实现显著的质量改进[5,17]。Salimans等人做了进一步的改进。[21]通过结合算法技巧,如小批量识别,稳定训练并提供更好的图像质量。我们在工作中也加入了这些技巧。

我们的中心思想-利用一个混合模型的潜在空间-已经在各种论文中提出,但主要是在变分推理的背景下。例如,Gershman等人。[7] ,Jordan等人。[11] 以及Jaakkola等人。[10] 将推断出的潜在分布的近似后部建模为混合模型,以表示更复杂的分布。最近,Renzede等人。[19] 以及Kingma等人。[12] 提出了“规范化流”的概念,通过一系列可逆映射变换潜在概率密度,构造复杂分布。就我们所知,GANs的背景下,不存在这样的办法。

我们的方法可以看作是一种尝试,试图修改潜空间,以获得潜空间中高概率区域的样本。潜空间修正的概念在最近的一些著作中得到了探讨。例如,Han等人。[9] 建议在训练潜在因素和发电机参数之间进行交替。Arulkumaran等人。[1] 制定一个MCMC采样过程,以从变分或对抗性自编码器中学习到的潜在空间的高概率区域采样。

3.GAN

虽然在第一节中介绍了GANs,但我们在下面大致描述它们以建立连续性。

4.本文方法

在GAN训练中,我们试图学习从简单的潜在分布pz到复杂数据分布(方程2)的映射。这种映射需要一个深度生成网络,该网络可以分离数据分布变化的潜在因素,并在生成的样本中实现多样性[2]。反过来,这就意味着需要大量的数据。因此,当数据有限但来源于不同的图像模式时,增加网络深度变得不可行。我们解决这个难题的方法是:我们建议增加先验分布的建模能力,而不是增加模型的深度。特别地,我们提出了潜在空间的重新参数化,作为高斯模型的混合。

为了从上述分布中获得样本,我们在N个高斯分量中选择一个,运用金马等人提出的“重新参数化技巧”[13]。 从选定的高斯中采样。

5.实验

对于我们的DeLiGAN框架,选择N,即高斯分量的数目,在经验上使得更复杂的数据分布需要更多的高斯。较大的N值可能有助于相对增加多样性的模型。然而,增加N也会增加内存需求。我们的实验表明,增加N超过一个点对模型容量几乎没有影响,因为高斯分量趋于“拥挤”并变得多余。我们用50到100之间的N做实验。
为了定量地描述一般样本的多样性,我们还设计了一个改进版的“初始得分”,这是一个与人类评价密切相关的测量方法[21]。我们接下来描述这个分数。

5.1. Modified Inception Score

5.2. Toy Data

作为Toy数据的基线GAN模型,我们建立了一个多层感知器,其中一个隐藏层为G和D(见图2)。对于DeLiGAN模型,我们将高斯层的混合物合并到一起,如图1所示。我们还比较了DeLiGAN和其他四个基线模型

6. Discussion

上述实验证明了将潜在空间建模为可学习高斯混合而不是传统的单位高斯/均匀分布的好处。我们的性能的一个原因是,在给定足够多的高斯分量的情况下,混合模型可以近似任意复杂的潜在分布。
在实践中,我们还注意到,我们的混合模型方法也有助于提高模型的稳定性,特别适用于潜在分布可能不连续的各种低数据区域。考虑以下情况:根据梯度更新,μ上的梯度沿增加鉴别器得分D(G(z))的方向在潜在空间中推动它们(等式11)。因此,从更新的高斯分量生成的样本导致更高的概率pdata(G(z))。

因此,随着训练的进行,我们发现μ是在特定的区域,即使在低概率区域初始化,也会缓慢地向导致高概率样本pdata(G(z))的区域漂移。因此,从低概率区域采样的点较少。这可以通过(i)我们的模型在玩具实验中生成的样本的位置(图3(d))(ii)MNIST实验中劣质生成(与任何数字都不相似)的相对较小频率(图4)来说明。我们的模型成功地处理了数据分布中两种模式之间的低概率空洞,将空洞模拟为其自身的潜在分布。因此,这些地区没有生产任何样品。这也可以在MNIST实验中看到——与基线GAN相比,我们的模型产生的非数字样样本非常少(图4)。

在复杂的多模态设置中,数据可能在模式之间不均衡地分布,使得某些模式包含相对较多的数据点。在这种情况下,基线GAN中的生成器倾向于将潜在分布与Jensen-Shannon散度所指示的具有最大数据的模式相拟合[23]。这会导致生成的样本之间的低多样性,因为数据分布的一部分有时会被生成器网络忽略。这种影响在低数据区尤其明显,因为图像空间中的模式数量由于连接某些模式的数据不可用而增加。因此,生成器试图适应已经有限的数据的一小部分。这与我们的实验结果是一致的,在实验结果中,随着训练数据量的减少(MNIST-图4,CIFAR-图5)或训练数据多样性的增加(草图-图6),由基线GANs产生的样本的多样性和质量恶化。

我们的设计决策是为潜在空间建立一个可训练的混合模型,这可以看作是一个算法“插件”,可以添加到几乎任何GAN框架中,包括最近提出的模型[24,21],以获得对不同数据的更好性能。最后,还需要注意的是,我们的模型仍然受到底层GAN框架本身的建模能力的限制。因此,当我们在混合高斯层的基础上使用更好的GAN框架时,我们可以期望模型生成真实的、高质量的样品。

在这项工作中,我们已经证明了将GANs中的潜在空间重新参数化为一个混合模型可以导致一个强大的生成模型。通过对不同模式集(数字、手绘物体草图和物体彩色照片)的实验,我们观察到,这种看似简单的修改有助于稳定模型,即使在低数据场景中也能产生不同的样本。目前,我们的混合模型设置包含一些简化的合集(每个分量的对角协方差矩阵,等权混合分量),这些合集限制了我们模型逼近更复杂分布的能力。这些参数可以纳入我们的学习方案中,以更好地逼近潜在分布。培训DeLiGAN模型和计算修改的初始分数的源代码可以在http://val.cds.iisc.ac.in/DeLiGAN/上访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu apache配置负载均衡篇(一)

首先下载apache2服务器 apt-get install apache2 使得代理生效: a2enmod proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http 修改配置 sudo vi /etc/apache2/mods-enabled/proxy.conf ProxyRequests Off <Proxy *> Order deny,allow Deny …

leetcode108 将有序数组转换为二叉搜索树

将一个按照升序排列的有序数组&#xff0c;转换为一棵高度平衡二叉搜索树。 本题中&#xff0c;一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是&#xff1a;[0,-3,9,-10,null,…

ubuntu apache配置负载均衡篇(二)

上篇文章说到了基本的负载均衡配置,这次再说下负载均衡里的反向代理配置项参数:ProxyPass与ProxyPassReverse及ProxyPassMatch 1、ProxyPass: 语法:ProxyPass [path] !|url 它主要是用作URL前缀匹配,不能有正则表达式,它里面配置的Path实际上是一个虚拟的路径,在反向…

MachineLearning(12)- RNN-LSTM-tf.nn.rnn_cell

RNN-LSTM1.RNN2.LSTM3. tensorflow 中的RNN-LSTM3.1 tf.nn.rnn_cell.BasicRNNCell()3.2 tf.nn.rnn_cell.BasicLSTMCell()3.3 tf.nn.dynamic_rnn()--多步执行循环神经网络1.RNN RNN-Recurrent Neural Network-循环神经网络 RNN用来处理序列数据。多层感知机MLP层间节点全联接&…

判断微信小游戏用户是否真的分享

作为开发者,传统的微信分享拿到分享的状态码并不能完全确定玩家是否分享到好友或群。 因此一部分开发者给分享做一个定时器,超过5秒就判定玩家分享成功,实际上很容易被玩家利用。 因此我们可以利用微信分享过程中的图片url链接做文章: 1.需要一个web服务器,提供给客户端…

Leaf服务器框架从入门到放弃(一)认识Leaf和安装Leaf环境

首先我简单介绍下Leaf服务器,下面这段描述是我摘自github官方README说明: Leaf 游戏服务器框架简介 Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。 Leaf 的关注点:…

Linux Command List

Linux Command ListLinux Command List)todops auxsednohupnvidia-smisnaptorch.cuda.is_available()Linux Command List) Linux(1)-touch,mkdir,rm,mv,cp,ls,cd,cat Linux(2)-tar,find,grep,xargs Linux(3)-网-ifconfig,ping,ssh Linux(4)-资源-du,top,free,gnome Linux(…

JS演示图论汇总

BFS.js var BFSClass function () {this.isVisit new Array();this.adj new Array();this.vQueue new Array();this.curV;this.temp new Array();this.init function (beginV) {this.curV null;this.temp [];//初始化顶点访问数组this.isVisit [];for (var i 0; i &…

Shell脚本自动监控docker容器的状态

首先我们来写一个脚本rootserver:~# cat docker_monitor.sh #!/bin/bash #监控容器的运行状态 #容器名称 传入参数 containerName$1 #当前时间 nowdate "%Y-%m-%d %H:%M:%S"# 查看进程是否存在 existdocker inspect --format {{.State.Running}} ${containerNam…

Python模块(9)-Time,Json 简易使用教程

Time,Json简易使用教程1 Time1.1 获取时间1.2 程序计时2 Json1 Time Python中内置了一些与时间处理相关的库&#xff0c;如time、datatime和calendar库。其中time库是Python中处理时间的标准库&#xff0c;是最基础的时间处理库&#xff0c;提供如下功能功&#xff1a; &#…

AWS的VPC使用经验(一)

Amazon VPC 概念 Amazon VPC 是 Amazon EC2 的网络化阶层。如果您是首次使用 Amazon EC2,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的什么是 Amazon EC2?以获取简要概述。 以下是 VPC 的主要概念: Virtual Private Cloud (VPC) 是仅适用于您的 AWS 账户的虚拟网…

AWS的VPC使用经验(二)

上文说了如何创建自定义VPC网络的EC2实例&#xff0c;这节说如何在多个VPC之间创建对等连接。 这里分别填写自己的VPC和对方的VPC的ID信息&#xff0c;然后在对方的VPC里就能看到有连接请求&#xff0c;在对方的连接请求里选择 “操作”->接受。 到这里已经快要收尾了&…

ML Tools List

文章目录1.Pyorch2.TensorFlow3. Other1.Pyorch Pytorch(1)-内置/自己设计的损失函数使用 Pytorch(2)-tensor常用操作 Pytorch(3)–数据载入接口&#xff1a;Dataloader、datasets Pytorch(4)-模型保存-载入-eval() Pytorch(5)-梯度反向传播 Pytorch(6)–设置随机种子&am…

ubuntu nginx配置负载均衡篇(一)

Nginx 代理服务的配置说明 1、设置 404 页面导向地址 error_page 404 https://www.runnob.com; #错误页 proxy_intercept_errors on; #如果被代理服务器返回的状态码为400或者大于400,设置的error_page配置起作用。默认为off。 2、如果我们的代理只允许接受get,post请求…

坦克大战

效果 map.js var map4 [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,2,0,0,2,2,0,0,0,2,2,0,0,2,2,0,0,2,2,0,2,2,0],[0,2,2,0,0,2,2,0,0,0,2,2,3,3,2,2…

ubuntu nginx配置负载均衡篇(二)

这里提供部分我的配置文件: nginx.conf: user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf;events {worker_connections 768;# multi_accept on; }http {### Basic Settings##sendfile on;tcp_nopush on;tcp_nodelay…

Papar Notes List

PaperNotes(1)-Modeling the World from Internet Photo Collections PaperNotes(2)-Generative Adversarial Nets PaperNotes(3)-图像分割-RCNN-FCN-Boxsup PaperNotes(4)-高质量图像生成-cgan,stackgan,lapgan,cyclegan,pix2pixgan PaperNotes(5)-Conditional Generative Adv…

windows安装 MySQL5.7服务端

1,安装https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.30-winx64.zip mysql安装包。 2. 自己配置my.ini [client] port=3306 [mysql] default-character-set=utf8[mysqld] character-set-server=utf8 port=3306 basedir="D:/mysql-5.7.30-winx64/" datad…

screen命令使用说明

有些程序写的很操蛋&#xff0c;比如放到后台执行&#xff0c;但后边还需要再切回前台来重新执行&#xff0c;这个时候我们选择screen工具&#xff1a; screen -d -m -S LoginServer[6001] ./run_login_server.sh 具体的screen命令包含哪些参数&#xff0c;可以参考scree…

看这玩意复习你还会挂科?《数据结构篇》

一&#xff0e;绪论 1.何谓程序设计&#xff1f; 程序 算法 数据结构 2.数据结构的定义 是相互之间存在一种或多种特定关系的数据元素的集合 3.数据、数据元素、数据对象的概念 数据&#xff08;data&#xff09;&#xff1a;对客观事物的符号表示&#xff0c;含义很广&am…