Inverting the Generator of a GAN 生成器反向
上一篇文章的卷积反卷积自编码框架本来我是打算用作GAN的生成器,这样一来我用GAN生成的图像就可以受我控制了,而不是像DCGAN那样生成器的输入是一个随机的100维向量。
但是用卷积与反卷积自编码来作为生成器,我觉得似乎有点麻烦,首先要训练一个编码器网络,然后将编码器网络生成的向量代替类似于DCGAN中的z向量,实现对GAN生成模型输出的控制效果。因为我也不搞GAN,所以不如去找找现成的,于是乎就上IEEE Trans上找到可找篇论文
Creswell A , Bharath A A . Inverting the Generator of a Generative Adversarial Network[J]. IEEE Transactions on Neural Networks and Learning Systems, 2018:1-8.
整篇论文看下来有不少细节问题,比如图文不对应,不过不影响论文内容,整体上来说所用的方法是简洁明了的。
1、什么是生成器反向?
1.1 GAN基本原理
这就要从GAN 的基本原理说起了,放个传送门,简单来说,GAN 由两部分组成:Generator(生成器):生成模型的目的,就是要尽量去模仿、建模和学习真实数据的分布规律;Discriminator(鉴别器):而判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型。基本框架如下:
所以对于传统的GAN来说,输入一个随机噪声,生成器生成与样本图像类似的图像,所以说生成器的输入z看作生成图像G(z)的一种表示,而且DCGAN已经证明了GANs能够学习一种“rich linear structure”:
即对z空间的代数运算常常会导致图像空间在语义上有意义的合成样本;
例如假设图片A 对应的输入为ZA , 图片B 对应的输入为ZB , 可以在 ZA 和ZB 之间做插值,并使用G 生成每一个插值对应的图片,DCGAN 可以让生成的图像以比较自然的方式从A 过渡到B。举个栗子:
不仅可以对输入信号z 进行过渡插值,还可以对其进行更复杂的类似于代数的运算。如图8-4 所示,用代表“露出笑容的女性”的z减去”女性“再加上“男性”,最后得到了“露出笑容的男性”。对Z-Space的性质有个大概的理解后,接下来看什么是反向生成。
1.2 反向生成(INVERTING THE GENERATOR)
先上图:
简单来说就是我有一张target image x,我想要用一个训练好的GAN生成我这张x,那我怎么知道该给生成器G的z什么,那按照传统的GAN中z向量都是随机或者说按照一定分布生成的,总不能一个一个z的试,所以本文介绍了一种能够利用经过训练的GANs生成器,将数据样本比如图像投影至潜在z空间的反演模型;这么做有啥用?当然有用了,比如由于图像在Z空间的表示通常是有意义的,所以可以直接利用图像集在Z空间的表示进行识别任务;其次可以通过对Z空间的操作生成图像等等
······当然了这一块之前也肯定有人做了,他们怎么做的呢?他们跟我的想法类似,都是借助神经网络实现的,比如说设计一个编码器,这么做有什么不好呢?因为这样增加了参数的数量,参数越多不仅网络参数难调而且容易出现过拟合的情况;
生成器反向这种方法也能用于评估GANs网络的性能,为什么呢,因为如下图所示,将反向过程输出的Z空间向量z,再经过GAN的生成器生成图像,通过生成的图像与原图作对比,就可以大概看出来你训练出来的GAN网络性能如何,学习到了哪些特征,学习到的特征是不是很充分,这就属于该方法可对GAN网络模型进行定性分析,如果对原图与生成图像再求一个均方差MSE,这就属于该方法可对GAN网络模型进行定量分析。所以可以利用该方法来对两个GANs生成模型进行评估对比
这篇文章的贡献贴上:
- A novel approach to invert the generator of any pretrained GAN, provided that the computational graph for the generator network is available;
- we are able to infer a Z-space representation for a target image, such that when passed through the GAN, it produces a sample visually similar to the target image;
- The proposed inversion technique may be used to both qualitatively and quantitatively compare GAN models;
- We show that batches of z samples can be inferred from batches of image samples, which improve the efficiency of the inversion process by allowing multiple images to be inverted in parallel
2、具体实现
至于说Inverting a Batch of Samples都是唬人的,就是相当于并行多个单sample,类似于深度学习中简化计算用的向量化手段。不过原理还是挺简单的,多的不想写了,做个简单了解算了
Target image:?∈R^(m∗m) Pretrained GANs: G( )
目的:推理出目标image x 在Z空间的表示 ?∈?;
约束条件:z 通过生成模型生成的image应当与x很相似;
所以该问题转换为最小化问题,z^∗可通过梯度下降法求得:
Inverting the Generator of a GAN 生成器反向相关推荐
- Dashed lines generator for 3dMax 虚线生成器插件使用教程
Dashed lines generator虚线生成器是一个3DMAX建模工具,可以通过简单的步骤自动生成所有类型的虚线:它可以用于模拟交通标志标准:使用"蒙皮修改器SKIN MODIFIE ...
- mybatis generator 自动生成 在线生成器 生成service controller 含基础增删改查 自动生成工具 只需要建表SQL语句
在线生成(目前只支持mysql):http://tools.49db.cn 已支持生成Service.Controller,含基础增删改查! (妈妈再也不用担心我整天写增删改查了 ^__^ ) 第3点 ...
- 2020-4-22 深度学习笔记20 - 深度生成模型 5 (有向生成网络--sigmoid信念网络/可微生成器网络/变分自编码器VAE/生产对抗网络GAN/生成矩匹配网络)
第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...
- 英伟达再出GAN神作!多层次特征的风格迁移人脸生成器
选自arXiv 作者:Tero Karras.Samuli Laine.Timo Aila 机器之心编译 GAN 自 2014 年提出以来得到了广泛应用.前不久效果令人震惊的 ICLR 2019 论文 ...
- (2019, StyleGAN)用于 GAN 的基于样式的生成器架构
A Style-Based Generator Architecture for Generative Adversarial Networks 公众号:EDPJ 目录 0. 摘要 1. 简介 2. ...
- 详解Python中的生成器表达式(generator expression)
生成器表达式(generator expression)也叫生成器推导式或生成器解析式,用法与列表推导式非常相似,在形式上生成器推导式使用圆括号(parentheses)作为定界符,而不是列表推导式所 ...
- 生成器(generator)
1. 什么是生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且, 创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元 ...
- ES6 生成器(Generator)
ES6 生成器(Generator) 目录 ES6 生成器(Generator) 什么是生成器? 基本用法 生成器相关操作 斐波那契数列 对象中的Generator 什么是生成器? 生成器就是通过构造 ...
- generator(生成器)原理、使用及常见问题集锦
参考网站: http://es6.ruanyifeng.com/#docs/generator Generator 概念 Generator 函数是 ES6 提供的一种异步编程解决方案. Genera ...
- ICML2020:预训练的GAN在有限数据下的生成器
生成对抗网络可以生成高度逼真的图像,通常与真实图像是无法区分的.这样生成的大多数图像都没有包含在训练数据集中,说明用GAN生成的数据对增强数据集的能力很强.尽管在数据有限的情况下这种情况特别重要,但是 ...
最新文章
- 遗传:细菌、真菌和动植物的泛基因组研究进展
- 开源网站Open-Open
- Linux系统是否能够联网
- DeepID2——强大的人脸分类算法
- matlab同时给多个变量赋值(deal)
- python idle撤回上一条命令_找回Python IDLE Shell里的历史命令(用上下键翻历史命令怎么不好用了呢?)...
- 日志中的秘密:Windows登录类型知多少
- cJSON源码及解析流程详解
- EasyUI下拉框级联
- max导出fbx设置_真3D虚拟偶像制作教程——虚拟偶像人物模型导出前的处理
- RestQL:现代化的 API 开发方式
- (王道408考研操作系统)第三章内存管理-第一节6-3:非连续分配管理方式之基本分页存储管理之具有快表的地址变换机构
- 中兴的自毁与自救:封杀7年、禁用 Android,76岁创始人奔走前线!
- Python六大框架对比
- 无人车业务中的视觉三维重建
- conime.exe
- gentoo——桌面,openbox,silm,Conky,输入法,layman,QQ安装,WPS
- Lua 程序设计——Lua 教程01
- 数据可视化的实现技术和工具比较(HTML5 canvas(Echart)、SVG、webGL等等)
- Objective-C ------ 多态
热门文章
- linux搭建dlna媒体服务器,Serviio:一款功能强大的DLNA媒体服务器软件
- 2、★☆STM32的智能浇水补光系统√☆★
- win10计算器_喜欢 Win10 计算器?现在各个平台都能拥有!
- NSA 将向公众开源逆向工程工具 GHIDRA
- 【一起学习输入法】华宇拼音输入法开源版本解析(7)
- linux下最常见的操作和命令
- wifi共享精灵2014最新版 v04.25.001 官方正式版
- H5 游戏 俄罗斯方块 双人互动游戏
- 测试睡眠的软件是,MOORING睡眠检测
- 360浏览器下载|360安全浏览器下载