gan

生成对抗网络浅析(GAN)

﹥>﹥吖頭↗ 提交于 2019-12-03 02:28:30
生成对抗网络 ​ 顾名思义,生成对抗网络由两个部分构成, 生成器(Generator)和判别器(Discriminator), 两个部件相互博弈,最终达到平衡状态。 基本原理 下面以生成图片为例。 G: 生成器 接受一个随机的噪声 z,通过噪声产生目标G(z) D:判别器 判别目标是否是“真实的”。输入参数是 x,输出为D(x), 表示是否为真实的概率。 ​ 训练的过程中, G的目的就是尽量生成真实的图片欺骗 D。而 D的目标就是尽量将 G 生成的图片和真实的图片分离开。这样就是一个博弈过程,最终理想的情况就是G 可以生成以假乱真的图片 G(z). 对于D来说,它难以判定这张图片是不是真实的, 因此 D(G(z))=0.5. 所以可以看出模型的最终目的就是 ==生成网络G== 的训练,使得其能生成足以真实的图片。 先来看看模型的数学定义(也就是最高层次的量化抽象): \[ \min_{G} \max_{D}V(D,G)=E_{x \sim p_{data}(x)}[log{D(x)}] + E_{z \sim p_{z}(z)}[log(1-D(G(z)))] \] 如何用随机梯度下降法训练 D 和 G? 论文地址: https://arxiv.org/abs/1406.2661 参考链接: 1.https://blog.csdn.net/mingzhuo_126/article

AttributeError: 'Tensor' object has no attribute '_keras_history'

匿名 (未验证) 提交于 2019-12-03 01:27:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I looked for all the "'Tensor' object has no attribute ***" but none seems related to Keras (except for TensorFlow: AttributeError: 'Tensor' object has no attribute 'log10' which didn't help)... I am making a sort of GAN (Generative Adversarial Networks). Here you can find the structure. Layer (type) Output Shape Param # Connected to _____________________________________________________________________________ input_1 (InputLayer) (None, 30, 91) 0 _____________________________________________________________________________ model_1 (Model)

GAN (Generative Adversarial Network)

匿名 (未验证) 提交于 2019-12-03 00:40:02
https://www.bilibili.com/video/av9770302/?p=15 前面说了auto-encoder,VAE可以用于生成 VAE的问题, AE的训练是让输入输出尽可能的接近,所以生成出来图片只是在模仿训练集,而无法生成他完全没有见过的,或新的图片 由于VAE并没有真正的理解和学习如何生成新的图片,所以对于下面的例子,他无法区分两个case的好坏,因为从lost上看都是比7多了一个pixel 所以产生GAN, 大家都知道GAN是对抗网络,是generator和discriminator的对抗,对抗是有一个逐渐进化的过程 过程是, 我们通过V1的generator的输出和real images来训练V1的discriminator,让V1的discriminator可以判别出两者的差别 然后,将V1的generator和V1的discriminator作为整体network训练(这里需要固定discriminator的参数),目标就是让generator产生的图片可以骗过V1的discriminator 这样就产生出V2的generator,重复上面的过程,让generator和discriminator分别逐渐进化 训练generator的详细过程, 可以看到 generator会调整参数,产生image让discriminator判别为1

GAN的学习笔记(1)

匿名 (未验证) 提交于 2019-12-03 00:38:01
1.本文是我的新手作,主要是记录一些学习GAN(生成式对抗网络)的过程和心得体会,能够提供一些学习的动力,各位看官能看就看。用到的是系统和相关软件是 WIN7+Anaconda3+TensorFlow-gpu-1.8.0,Python版本是3.5.5 。至于为什么不用Ubuntu系统,emm主要是怕折腾,以为win7用起来顺手,最后发现掉进了大坑 。。。。 2.软件安装和环境配置什么的不想多说,网上一搜有大把。这里说几点要注意的(开始填坑): (1)因为用的是GPU版本的tensorflow,必须先安装CUDA+Cudnn,而且CUDA版本必须与VS版本对应(坑1:没有VS的先去装VS),博主这里一开始用的是CUDA9.2,然后装的 VS2017 ,,然后发现CUDA9.2怎么都安装失败(坑2:VS2017还没有适配CUDA9.2),无奈再用CUDA9.0,可以安装成功了。再去下载与 CUDA9.0对应的cudnn版本 ,具体操作请百度。 (2)安装好了TensorFlow-gpu之后需要配置Anaconda3,主要是要pip安装一大堆东西,如果直接pip install+xxx的话(比如pip instal spyder),下载速度会很慢(坑3)。这里会用一个豆瓣的镜像,操作很简单:在C:\Users\Administrator路径下新建一个文件夹,命名为pip

WGAN-GP与GAN及WGAN的比较

匿名 (未验证) 提交于 2019-12-03 00:34:01
from datetime import datetime import os import matplotlib.pyplot as plt import numpy as np import tensorflow as tf from six.moves import xrange data = np.load('final37.npy') data = data[:,:,0:60] #显示原始数据图像 def Show_images(data,show_nums,save=False): index = 0 for n in range(show_nums): show_images = data[index:index+100] show_images = show_images.reshape(100,3,60,1) r,c = 10,10 fig,axs = plt.subplots(r,c) cnt = 0 for i in range(r): for j in range(c): xy = show_images[cnt] for k in range(len(xy)): x = xy[k][0:30] y = xy[k][30:60] if k == 0 : axs[i,j].plot(x,y,color='blue',linewidth=2) if k == 1

条件GAN

匿名 (未验证) 提交于 2019-12-03 00:28:02
【前言】 本文涉及的论文有: [3] Denton E L, Chintala S, Fergus R. Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks[C]//Advances in neural information processing systems. 2015: 1486-1494. 3. 条件生成式对抗网络,Conditional Generative Adversarial Networks 3.1 CGAN的思想 Conditional Generative Adversarial Nets(CGAN)【Mirza M, Osindero S. Conditional】 。这项工作提出了一种带条件约束的GAN,在生成模型(D)和判别模型(G)的建模中均引入 条件变量y (conditional variable y),使用额外信息y对模型增加条件,可以指导数据生成过程。这些条件变量y可以基于多种信息,例如类别标签,用于图像修复的部分数据[2],来自不同模态(modality)的数据。如果条件变量y是类别标签,可以看做CGAN 是把纯无监督的 GAN 变成有监督的模型的一种改进。这个简单直接的改进被证明非常有效,并广泛用于后续的相关工作中[3,4]。

深度卷积对抗网络DCGAN

匿名 (未验证) 提交于 2019-12-03 00:27:02
DCGAN的论文通过大量实验,给出一组结构和参数,提高GAN训练成功率, 其后面的训练算法就是2014年论文中提出的 GAN损失函数和二类交叉熵损失函数的关系 深度学习给机器学习带来了一次革命,学术研究和实际应用一片欣欣向荣,那么未来继续引领机器学习发展的技术将什么? 无监督学习和强化学习,这个答案得到绝大多数的认同,尤其是体会到深度学习算法对样本量的巨大需求的人们. 无监督学习中最具有发展前景的两类方法是VAE和GAN. VAE(Variational Autoencode)来自于标准的Autoencode方法. Autoencode方法逻辑上包含两部分:编码器和解码器. 编码器和解码器共享一个隐含层, 编码器输入和解码器输出的维度一致,隐含层的维度要低很多. 一个输入信号通过编码器,降低维度到达隐含层,再经过维度升高到达解码器输入,训练时定义L2损失,即要求编码器的输入和解码器的输入相似,最终人们期望最终训练出来的解码器可以学习到训练集的分布,达到生成的目的.但是大量实验证明,最终训练的解码器并不能达到期望:把编码器的输入送入解码器后,的确可以得到一个符合训练集分布的结果,但是如果时人工调制一个信号送入解码器,输出的就一团糟了.人们发现解决问题的关键时损失函数,L2并不是一个好的分布描述函数,对损失函数的改进就得到了VAE. GAN的目的和VAE一致,但走了不同的路径

gan6

匿名 (未验证) 提交于 2019-12-03 00:15:02
Free-Form Image Inpainting with Gated Convolution 转:https://zhuanlan.zhihu.com/p/82514925 ժҪ: 不同于普通卷积,将每一个输入的pixel都当做有效的输入,作者提出了gated convolution,为所有层每一个维度的位置提供了一种可学习的,动态的特征选择机制.并提出了SN-Patch GAN来稳定GAN的训练,学习 网络结构: coarse network将global and local 的inpainting网络改造,输入为原图,mask和带有sketch的mask三者融合为一,下采样到原尺寸的1/4,然后经过dilated conv,这里使用的conv都是gated conv,refinement network跟contextual attention的refinement network一致. 判别器不再是使用global and local context discriminator两个判别器,而是使用了SN-Patch GAN,判别器输出一个h x w x c的特征向量,以此来判断真假 details: gated conv: 普通卷积是将每一个像素都当成有效值去计算的,这个特性适用于分类和检测任务,但是不适用于inpainting任务

GAN入门

匿名 (未验证) 提交于 2019-12-03 00:11:01
GAN 1.什么是GAN? GAN(Generative adversarial nets),中文是生成对抗网络,他是一种生成式模型,也是一种无监督学习模型。其最大的特点是为深度网络提供了一种对抗训练的方式,此方式有助于解决一些普通训练方式不容易解决的问题。 GAN的原理 GAN的基本原理其实非常简单,GAN的主要灵感来源于博弈论中零和博弈的思想,应用到深度学习神经网络上来说,这里以生成图片为例进行说明。假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是: 输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。 在训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。这样,G和D构成了一个动态的“博弈过程”。 最后博弈的结果是什么 在最理想的状态下,G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。 这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。 数学模型 简单分析一下这个公式: 整个式子由两项构成。x表示真实图片,z表示输入G网络的噪声,而G(z)表示G网络生成的图片。 D(x

文献阅读笔记 - Social Ways

匿名 (未验证) 提交于 2019-12-03 00:03:02
文献引用 Amirian J, Hayet J B, Pettre J. Social Ways: Learning Multi-Modal Distributions of Pedestrian Trajectories with GANs[J]. 2019. 文章是继Social LSTM、Social GAN模型后的进一步提升,在理想的监控俯瞰数据库ETH、UCY上进行数据的预测。 重点贡献 有: 引入了注意力机制使模型自主分配对交互信息的关注。 增强模型对多合理轨迹的预测能力。 提供了一种能够验证各模型的多轨迹预测能力的小型合成场景和轨迹生成效果的判断指标。 如上图所示,文章的基本框架是GAN网络,在不考虑batch批处理的情况下,模型逐一为每个行人预测轨迹。 在Generator中,对于待预测行人 \(i\) ,首先会将所有行人的已知轨迹进行编码,而后基于 \(i\) 和其他行人之间的地理和运动信息,引入注意力机制使得模型对其他行人的交互信息自主适应。行人 \(i\) 的轨迹编码、注意力池化后的交互信息、噪音、latent code(新引入内容,之后会讲到)四种输入作为Decoder的输入,解码出行人 \(i\) 的预测轨迹。 在Discriminator中,会对生成轨迹/真实轨迹进行判别,判别的结果作为Generator/Discriminator的代价函数。