gan

TensorFlow从1到2(十二)生成对抗网络GAN和图片自动生成

安稳与你 提交于 2019-12-05 08:58:03
生成对抗网络的概念 上一篇中介绍的VAE自动编码器具备了一定程度的创造特征,能够“无中生有”的由一组随机数向量生成手写字符的图片。 这个“创造能力”我们在模型中分为编码器和解码器两个部分。其能力来源实际上是大量样本经过学习编码后,在数字层面对编码结果进行微调,再解码生成图片的过程。所生成的图片,是对原样本图的某种变形模仿。 今天的要介绍的生成对抗网络(GAN)也具备很类似的功能,所建立的模型,能够生成非常接近样本图片的结果。 相对于VAE,生成对抗网络GAN更接近一种思想,并非针对机器视觉领域,而是一种很通用的机器学习理念。 让我们用一个例子来理解生成对抗网络: 比如我们想学习英语朗读。一开始,我们的朗读能力肯定很差,每次考试都是不及格。这时候,我们会努力的学习。当然人的学习是通过各种可能手段,听录音、看视频、找外教。学习一段时间后,再去参加考试,如果成绩依然很差,我们回来继续学习。一直到我们得到了一个自己满意的成绩。 这个例子中有几个重要的因素:学习者本人就是机器学习中的神经网络,负责生成某个结果,比如朗读;考官负责判断我们朗读的英语是否达到了水平要求。考官实际也是一个网络模型,本身并不能知道什么样的朗读叫好,什么样的朗读叫差,其判断依据来自于对“好的朗读”样本的学习;学习者不断学习提高的过程,这个就相当于网络模型不断的训练迭代。 回到我们的图片生成过程。图片生成是一个模型

生成对抗式网络 GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN等原理介绍、应用介绍及简单Tensorflow实现

老子叫甜甜 提交于 2019-12-05 08:40:25
生成式对抗网络(GAN,Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。 学界大牛Yann Lecun 曾说,令他最激动的深度学习进展就是生成式对抗网络 。最近正好看了这方面的一些介绍和论文,并用Tensorflow实现了两个小例子,所以写了这篇文章来作个简单的小结。 本文主要分为四个部分: 1.原始的GAN原理介绍; 2.GAN衍生的CGAN、DCGAN、WGAN、LSGAN、BEGAN等原理; 3.应用介绍; 4.tensorflow实现GAN小例子; 一、GAN原理介绍 学习GAN的第一篇论文当然由是 Ian Goodfellow 于2014年发表的 Generative Adversarial Networks(论文下载链接arxiv:[ https://arxiv.org/abs/1406.2661 ] ),这篇论文可谓这个领域的开山之作。 GAN的基本原理其实并不复杂,模型通过框架中两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。这里以生成图片为例进行说明。假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是:

《GAN实战生成对抗网络》笔记 第三章 图像风格跨域转换

邮差的信 提交于 2019-12-05 08:38:31
目录: 第一章 深度学习概述 第二章 无监督学习GAN 第三章 图像风格跨域转换 第四章 从文本构建逼真的图像 第五章 利用多种生成模型生成图像 第六章 将机器学习带入生产环境 3.1 弥补监督学习和无监督学习之间的空隙 GAN采用监督学习的方法来做无监督学习任务,使用分类判别器监督学习,但最终使用生成器实现了解真实数据分布或密度的预估从而根据学到的知识生成新的数据; 3.2 条件GAN Conditional GAN, CGAN 3.2.1 利用CGAN生成时尚衣柜 Fashion-MNIST +CGAN python download.py from __future__ import print_function import os import sys import subprocess # Download Fashion MNIST def download_mnist(dirpath): if os.path.exists(dirpath): print('Found MNIST - skip') return else: os.makedirs(dirpath) url_base = 'http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/' file_names = ['train-images

GAN人脸修复--Generative Face Completion

我的梦境 提交于 2019-12-05 08:37:15
Generative Face Completion CVPR 2017 https://arxiv.org/abs/1704.05838 Code: https://github.com/Yijunmaverick/GenerativeFaceCompletion 首先来直观的认识一下人脸修复是什么? 输入一个有缺失的人脸图像,得到完整的人脸图像 本文 算法 训练流程图如下: 主要由三个模块构成:Generator,Discriminator,Parsing network 3.1. Generator 这里的 Generator 被设计为一个 autoencoder,输入不完整的图像,输出修复后的图像。这里我们使用了 VGG19的前半部分网络结构,外加2个卷积层,一个池化层,一个全链接层。decoder 和 encoder 是对称的,使用了 unpooling 层 用于放大特征图尺寸 3.2. Discriminator 这里使用了两个 Discriminator,一个 local Discriminator, 一个 global Discriminator local Discriminator 是针对 缺失图像区域的 global Discriminator 是针对整个图像区域的 3.3. Semantic Regularization 这里的 Parsing

GAN、DCGAN、WGAN、SRGAN

☆樱花仙子☆ 提交于 2019-12-05 08:32:05
GAN 生成网络接收一个随机噪声,生成逼真图像; 判别网络接收一个图像,生成该图像是真实的概率(0~1); GAN网络中存在两个不同的网络,训练方式采用的是对抗训练方式, 其中G的梯度更新信息来自于判别器D ,而不是来自数据样本。 GAN不适合处理离散形式的数据,比如文本。 DCGAN DCGAN(deep convolutional generative adversarial networks)采用深度卷积的生成对抗网络。 改进 1. 取消Pooling层,改用加入stride的卷积代替。同时用卷积替代了全连接层。 2. 在D和G网络中均加入BN层。 3. G网络使用ReLU作为激活函数,最后一层使用tanh。 4. D网络中使用LeakyReLU作为激活函数 5. 使用adam优化器训练 WGAN WGAN使用了新的距离定义 Wasserstein Distance ,在理论上给出了GAN训练不稳定的原因,即交叉熵(JS散度)不适合衡量具有不相交部分的分布之间的距离,转而使用wassertein距离去衡量生成数据分布和真实数据分布之间的距离,理论上解决了训练不稳定的问题。 Wasserstein距离又叫Earth Mover's Distance(EMD,推土机距离),参考: 几个常用的计算两个概率分布之间距离的方法以及python实现 WGAN的提升 1.

深度学习【39】DCGAN

隐身守侯 提交于 2019-12-05 08:31:46
LAPGAN利用的是多个GAN一步一步的生成大的图片,而且LAPGAN的G网络和D网络的设计不是很优。DCGAN提出了只需要一个GAN就能够直接生成64*64的图片,并且给出了G网络和D网络的设计要点。DCGAN还发现了输入网络的Z向量,有着跟word2vec相似的功能,Z向量能够描述一张图片的语义。 DCGAN网络结构设计要点: 1、在D网络中用strided 卷积(stride>1)代替pooling层,在G网络中用fractional-strided 卷积代替上采样层。 2、在G和D网络中使用BN层 3、不要使用全连接层作为输出(LAPGAN中有) 4、G网络中除了输出层(tanh)都使用ReLu激活函数 5、D网络中都使用LeakyReLu激活函数 网络结构图: DCGAN先利用全连接层将100维的z向量,变成4*4*1024的向量,然后reshape成4*4*1024的张量。然后使用ractionally-strided convolutions一步步上采样到64*64的图片。 训练细节: 1、预处理环节,将图像scale到tanh的[-1, 1]。 2、mini-batch训练,batch size是128. 3、所有的参数初始化由(0, 0.02)的正态分布中随即得到 4、LeakyReLU的斜率是0.2. 5、虽然之前的GAN使用momentum来加速训练

从头开始GAN【论文】(二) —— DCGAN

限于喜欢 提交于 2019-12-05 08:30:45
上一篇介绍了GAN 的基本原理以及相关的概念和知识点,同时也反映出GAN 的一些缺点,比如说训练不稳定,生成过程不可控,不具备可解释性等。这一篇就来看看GAN 的改进版之一,DCGAN(Deep Convolutional GAN)。 1. 网络结构 DCGAN 的判别器和生成器都使用了卷积神经网络(CNN)来替代GAN 中的多层感知机,同时为了使整个网络可微,拿掉了CNN 中的池化层,另外将全连接层以全局池化层替代以减轻计算量。 2. 去卷积(反卷积,Deconvolution) 从上图中可以看到,生成器G 将一个100 维的噪音向量扩展成64 * 64 * 3 的矩阵输出,整个过程采用的是微步卷积的方式。作者在文中将其称为fractionally-strided convolutions,并特意强调不是deconvolutions。关于上采样和去卷积等概念,我特意找了一些资料来看看他们的区别是什么,相关内容整理在下面。 上采样和去卷积是同一个概念,它的目的是将经过池化层以后缩小的矩阵扩大到一定的大小,比如说从3 * 3 扩大到5 * 5,如下图所示: 而去卷积(链接: 反卷积 )又包含转置卷积和微步卷积,两者的区别在于padding 的方式不同,看看下面这张图片就可以明白了: 另外还有一个概念叫空洞卷积(Dilated Convolution)。在pixel-wise

生成对抗式网络 GAN的理解

和自甴很熟 提交于 2019-12-05 08:29:24
转自:https://zhuanlan.zhihu.com/p/24767059,感谢分享 生成式对抗网络(GAN)是近年来大热的深度学习模型。最近正好有空看了这方面的一些论文,跑了一个GAN的代码,于是写了这篇文章来介绍一下GAN。 本文主要分为三个部分: 介绍原始的GAN的原理 同样非常重要的DCGAN的原理 如何在Tensorflow跑DCGAN的代码,生成如题图所示的动漫头像,附送数据集哦 :-) 一、GAN原理介绍 说到GAN第一篇要看的paper当然是Ian Goodfellow大牛的Generative Adversarial Networks(arxiv: https:// arxiv.org/abs/1406.2661 ),这篇paper算是这个领域的开山之作。 GAN的基本原理其实非常简单,这里以生成图片为例进行说明。假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是: G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。 D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。 在训练过程中

DCGAN论文译本

二次信任 提交于 2019-12-05 08:29:13
用深度卷积生成对抗网络进行无监督表示学习 摘要 近年来,监督学习的卷积网络( CNN )在计算机视觉应用中有着广泛的应用。相比之下,无监督的卷积网络 CNN 学习受到的关注较少。在这项工作中,我们希望可以帮助缩小有监督学习的 CNN 和无监督学习的 CNN 成功之间的差距。我们介绍了一类 CNN 叫做深度卷积生成对抗网络( DCCNG ),它具有一定的架构约束,表明它们是非监督学习的有力候选。对各种图像数据集进行训练,我们展示出令人信服的证据,证明我们的深层卷积对抗从对象部分到发生器和判别器中的场景学习了层次结构的表示。此外,我们使用学习的功能进行新颖的任务 - 证明适用于一般图像的表示 1. 前言 从来自大型的未标记的数据集学习可重用的特征表示一直是一个热门的研究领域。在计算机视觉的背景下,可以利用实际上无限量的未标记的图像和视频来学习良好的中间表示,然后可以将它用在各种监督学习任务上,如图像分类。 我们提出了一种建立好的图像表示的方法是通过训练生成对抗网络( GAN )( Goodfellow 等人, 2014 ),并随后重用发生器和判别器网络的部分作为用于监督任务的特征提取器。 GAN 为最大似然技术提供了一个有吸引力的替代方法。另外还可以争辩说,他们的学习过程和缺少启发式的代价函数(比如像素方式的独立均方差)对于表示学习来说是存在吸引力的。我们知道 GAN

GAN论文阅读——DCGAN

白昼怎懂夜的黑 提交于 2019-12-05 08:28:48
论文标题:Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks 论文链接: https://arxiv.org/abs/1511.06434 参考资料: http://blog.csdn.net/liuxiao214/article/details/73500737       http://blog.csdn.net/solomon1558/article/details/52573596       https://buptldy.github.io/2016/10/29/2016-10-29-deconv/ DCGAN的框架 在以往的尝试中,将CNN应用于GAN,都没有获得成功。但是经过一系列探索,我们找到一类结构,可以在分辨率更高、更深的生成模型上稳定地训练。 Historical attempts to scale up GANs using CNNs to model images have been unsuccessful. However, after extensive model exploration we identified a family of architectures that resulted in stable