GAN

GAN vs VAE

VAE的问题 VAE的一个问题是,为了获得p(x)的良好近似值(其中p(x)是图像的分布),您需要记住潜在空间z中的所有细节。在VAE的简单框架中,后验pθ(z|x)的近似值通常过于简化,因为我们无法参数化复杂分布(通常是单峰分布,类似于各向同性高斯分布)。 一种减少限制并更接近 pθ(z|x) 分布的方法是引入flows[1],或将VAE框架与马尔可夫链蒙特卡罗耦合,后者可以渐近地接近真后验值[2]。 因此,VAE有一个很好的理论,但主要问题是固定参数化pθ(z|x) 通常比图像的真实复杂分布过于简化。这不是GANs的问题,因为G被迫生成看起来真实的样本(代价是具有折叠模式,其中生成器生成来自真实分布的一个单一模式的样本)。 Vincent Dumonlin[3]最近开发的一种有趣的方法是引入一种可以执行推理和生成的GAN。对于VAE框架来说,这似乎是一种具有挑战性的方法。 演示 下面是一些有趣的情节,来自谢尔布鲁克大学的逆向推理演示。 真实的图像流形p(x): VAE / GAN如何近似p(x)。 可以看到,VAE趋向于大致近似此分布。   参考文献 [1] [1505.05770] Variational ...

生成对抗网络GAN(Generative Adversarial Networks)-简介|深度学习

Generative Adversarial Networks The two players in the game are represented by two functions, each of which is differentiable both with respect to its inputs and with respect to its parameters. 博弈中的两个参与者由两个函数表示,每个函数的输入和参数都是可微的。 A game between D, G rather than an optimization problem. D,G之间的博弈,而不是一个优化问题。 Because each player’s cost depends on the other player’s parameters, but each player cannot control the other player’s parameters, this scenario is most straightforward to describe as a game rather than as an optim...

流模型Glow和反问题:GlowIP模型【代码解读】|生成模型|深度学习

论文题目 Invertible generative models for inverse problems: mitigating representation error and dataset bias 反问题的可逆生成模型:减少表示误差和数据集偏差 代码 https://github.com/CACTuS-AI/GlowIP 运行环境 pip install python==3.6 pip install pytorch==1.0 pip install torchvision==0.2.1 pip install tensorflow==1.12 pip install numpy pip install matplotlib pip install scikit-image pip install pillow pip install scikit-learn pip install easydict pip install scipy pip install glob pip install pandas pip install tqdm   代码运行 准备训练数据集Prepare Training...

怎么训练GAN?万字长文总结之

1.规范化输入 将输入图片规范化到-1到1之间 生成器最后一层的输出使用tanh激活函数 毋庸置疑规范化是最重要的,未经处理的图片是没有办法收敛的。 图片规范化一种简单的方法是(images-127.5)/127.5,然后送到判别器去训练,同理生成的图片也要经过判别器,所以生成器的输出也是-1到1之间(和原图的区间范围保持一致) 这里有一个坑,因为生成的图是-1到1之间,需要再经过处理回到0-255区间才能正常显示。经过测试matplotlib似乎没法显示-1-1的图,而scipy.misc可以,所以写GAN我通常结合scipy.misc来看结果。 2.用修正的损失函数 在GAN论文里用min (log 1-D)来优化G,实际上max(log D)更好 实际代码中用反转标签来训练G更方便,即把生成图片当成real的标签来训练 损失函数恐怕是一个超级热门的研究点,参照当前的研究进展,很多实验中已经很少用到上面提到的交叉熵损失了,因为效率实在太低而且不稳定。下面列一下代表性的模型: DCGAN 最初版本,使用了交叉熵损失,各种GAN玩法的鼻祖,直到目前效果依然很棒。 项目地址:carpedm20/DCGAN-tensorflo...

GAN(生成对抗神经网络)能gan(干)什么?|万字总结20种应用

生成对抗神经网络(GAN)的应用非常广泛,近年来,对GAN的研究也越来越多,成为深度学习中最为活跃的领域之一。 我在本文中对GAN网络的主要应用进行详细梳理,共总结出近20种应用,给出了代表性论文。 一、生成 生成图像数据集的示例 Generate Examples for Image Datasets 示例一 Ian Goodfellow等人在原始论文中描述了生成新的可信样本的应用。在2014年的论文“ Generative Adversarial Networks ”中,使用GAN为MNIST手写数字数据集,CIFAR-10小物体照片数据集和Toronto Face数据库生成了新的合理示例。 用于生成图像数据集新示例的GAN实例(Generative Adversarial Nets, 2014) 示例二 Alec Radford等人在2015年发表的论文 “Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks”。使用DCGAN实现大规模训练稳定的GAN。他们演示了用于生成卧室新示例的模型...

SinGAN:实现(系列:SinGAN研究)

下载git 首先将github上的项目转存到国内gitee码云,这样下载速度较快。 cd cd /home/zyb/zyb/GeoM git clone https://gitee.com/zyabo/SinGAN.git 新建环境 需要pytorch为1.4版本 详细方法:点击→博文。 进入环境: cd source /home/zyb/zyb/anaconda3/etc/profile.d/conda.sh conda activate AIPyTorch04 训练和实验 Train To train SinGAN model on your own image, put the desired training image under Input/Images, and run python main_train.py –input_name <input_file_name> This will also use the resulting trained model to generate random samples starting from the coarsest scale (n=0).这...