gan

CVAE-GAN论文学习-1

我怕爱的太早我们不能终老 提交于 2019-11-29 08:17:31
CVAE-GAN: Fine-Grained Image Generation through Asymmetric Training 摘要 我们提出了一个变分生成对抗网络,一个包含了与生成对抗网络结合的变分子编码器,用于合成细粒度类别的图像,比如具体某个人的脸或者某个类别的目标。我们的方法构建一张图片作为概率模型中的一个标签成分和潜在属性。通过调整输入结果生成模型的细粒度类别标签,我们能够通过随机绘制潜在属性向量中的值来生成指定类别的图像。我们方法的创新点在于两个方面: 首先是我们提出了在判别器和分类器网络中使用交叉熵损失,对于生成器网络则使用平均差异目标函数。这种不对称损失函数能够使得训练出来的GAN网络更稳定。 其次是我们使用了encoder网络去学习潜在空间和真实图片空间中的关系,并使用成对的特性去保持生成图像的结构。 我们使用人脸、花和鸟的自然图片来训练,并说明了提出的模型有能力去生成有着细粒度类别标签的真实且不同的样本。我们进一步将展示我们的模型应用于其他任务的效果,如图像修复、高分辨率以及用于训练更好的人脸识别模型的数据增强。 1. Introduction 构建自然图像的有效的生成模型是计算机视觉中的主要问题。它目标是根据潜在的自然图像分布来调整一些潜在向量来生成不同的真实图片。因此,期望的生成模型是能够捕获钱在的数据分布。这可以说是一个很难的任务

GAN

假如想象 提交于 2019-11-29 06:36:51
详解GAN代码之逐行解析GAN代码 本文链接: https://blog.csdn.net/jiongnima/article/details/80033169 训练数据集: 手写数字识别 下载链接: https://pan.baidu.com/s/1d9jX5xLHd1x3DFChVCe3LQ 密码: ws28 在本篇博客中,笔者将逐行解析一下NIPS 2014的 Generative Adversarial Networks (生成对抗网络,简称GAN)代码,该篇文章作为GAN系列的 开山之作 ,在近3年吸引了无数学者的目光。在2017-2018年,各大计算机顶会中也都能看到各种GAN的身影。因此,本篇博客就来逐行解析一下 使用GAN生成手写数字的代码 。 在正式开始之前,笔者想说的是,如果要使得本篇博客对各位读者朋友的学习有帮助, 请各位读者朋友们先熟悉生成对抗网络的基本原理 。由于对于生成对抗网络的原理详解网络上的资源比较多,在本篇博客中笔者就不再对生成对抗网络的原理进行解释,而是给大家推荐一些对生成对抗网络原理进行了解的链接: 1. 直接进行论文阅读: https://arxiv.org/abs/1406.2661 2. 一篇通俗易懂,形象的GAN原理解释: 一文看懂生成式对抗网络GANs:介绍指南及前景展望 3. 一篇比较详细的CSDN博文:

GAN生成的评价指标 Evaluation of GAN

我与影子孤独终老i 提交于 2019-11-29 04:59:47
传统方法中,如何衡量一个generator ?—— 用 generator 产生数据的 likelihood,越大越好。 但是 GAN 中的 generator 是隐式建模,所以只能从 P_G 中采样但没法根据 pdf 算 likelihood。 一个方法是把从 P_G 中采样得到的点当作是一个高斯分布的 mean,所有的 sample 都共享一样的 variance,然后就共同构成了 GMM 来估计 pdf ,然后就可以算 likelihood 了。困难是,要sample 几个点(要几个高斯)才估计的准?而且也不一定 likelihood 高,生成的质量就高。总之,这个方法问题还是很多的 比较客观的方法是,拿一个已经训练好的分类器来做判别 还需要从 diverse 的方向来衡量(避免发现不了 mode collapse 的问题),生成一组数据得到一组不同的 distributions,把它们平均起来。如果分布比较平均说明比较 diverse,不会太单一。 综合一下这两个原则,就得到了 inception score:把某个单一的生成数据喂给现成的分类器,属于某一类的概率越大越好;同时把所有的生成数据喂给现成的分类器,产生一堆 distribution 然后做平均,越平滑越好。 来源: https://www.cnblogs.com/chaojunwang-ml/p

生成对抗网络(GAN)是干什么用的?

我的梦境 提交于 2019-11-29 02:41:47
什么是生成对抗网络?生成式对抗网络( GAN , Generative Adversarial Networks )是一种 深度学习 模型,是近年来复杂分布上 无监督学习 最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型( Generative Model )和判别模型( Discriminative Model )的互相 博弈 学习产生相当好的输出。原始 GAN 理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。一个优秀的 GAN 应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。 一个典型的生成对抗网络模型大概长这个样子: 我们先来理解下 GAN 的两个模型要做什么。 首先判别模型,就是图中右半部分的网络,直观来看就是一个简单的神经网络结构,输入就是一副图像,输出就是一个概率值,用于判断真假使用(概率值大于 0.5 那就是真,小于 0.5 那就是假),真假也不过是人们定义的概率而已。 其次是生成模型,生成模型要做什么呢,同样也可以看成是一个神经网络模型,输入是一组随机数 Z ,输出是一个图像,不再是一个数值而已。从图中可以看到,会存在两个数据集,一个是真实数据集,这好说,另一个是假的数据集,那这个数据集就是有生成网络造出来的数据集

Generative Adversarial Network (GAN) - Pytorch版

房东的猫 提交于 2019-11-29 01:46:55
import os import torch import torchvision import torch.nn as nn from torchvision import transforms from torchvision.utils import save_image # 配置GPU或CPU设置 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') # 超参数设置 latent_size = 64 hidden_size = 256 image_size = 784 num_epochs = 200 batch_size = 100 sample_dir = 'samples' # Create a directory if not exists if not os.path.exists(sample_dir): os.makedirs(sample_dir) # Pytorch:transforms的二十二个方法:https://blog.csdn.net/weixin_38533896/article/details/86028509#10transformsNormalize_120 # 对Image数据按通道进行标准化,即先减均值,再除以标准差,注意是 hwc

GAN的理论 Theory behind GAN

断了今生、忘了曾经 提交于 2019-11-28 20:36:56
gan部分的理论,最开始的版本。这里面其实有一些问题 我们想要找到一个高维空间中的分布 P_data(x),在目标类别的区域,probability是高的,在那个区域之外,probability是低的。但这个P_data(x)分布的具体形式是不知道的 没有gan怎么做生成? maximum likelihood estimation! 1.从P_data(x)中sample一些数据作为训练数据 2.我们有一个含有未知参数theta的分布P_G(x; theta),想做的事情就是找出能够让P_G和P_data最接近的参数theta。比如我们有一个混合高斯分布GMM作为P_G(x; theta),theta就是Gaussians的means和variances 3.由训练数据{x1, x2, ..., xm}计算P_G(xi; theta) 4.likelihood就定义为所有可能的i,P_G(xi; theta)的连乘 5.就用gradient ascent 让这个likelihood最大 maximum likelihood estimation 等价于 minimize KL Divergence 原因在于,可以对概率取对数 然后可以把连乘号拿出来,变成求和: 这个式子就是对期望的估计 然后计算这个期望,就是对x求积分 然后加一个和P_G完全无关的项,也就是不含theta的项

DCGAN 论文简单解读

末鹿安然 提交于 2019-11-28 20:23:57
DCGAN 的全称是Deep Convolution Generative Adversarial Networks(深度卷积生成对抗网络)。是2014年Ian J.Goodfellow 的那篇开创性的 GAN论文 之后一个新的提出将GAN和卷积网络结合起来,以解决GAN训练不稳定的问题的一篇paper. 关于基本的GAN的原理,可以参考原始 paper ,或者其他一些有用的文章和代码,比如: GAN mnist 数据生成 , 深度卷积GAN之图像生成 , GAN tutorial 等。这里不再赘述。 一. DCGAN 论文简单解读 ABSTRACT 1.1 摘要 。作者说,这篇文章的初衷是,CNN在supervised learning 领域取得了非常了不起的成就(比如大规模的图片分类,目标检测等等),但是在unsupervised learning领域却没有特别大的进展。所以作者想弥补CNN在supervised 和 unsupervised之间的gap。作者提出了将CNN和GAN相结合的DCGAN,并展示了它在unsupervised learning所取得的不俗的成绩。作者通过在大量不同的image datasets上的训练,充分展示了DCGAN的generator(生成器)和discriminator(鉴别器)不论是在物体的组成部分(parts of object

对抗生成网络 Generative Adversarial Networks

隐身守侯 提交于 2019-11-28 18:56:19
1. Basic idea 基本任务:要得到一个generator,能够模拟想要的数据分布。(一个低维向量到一个高维向量的映射) discriminator就像是一个score function。 如果想让generator生成想要的目标数据,就把这些真实数据作为discriminator的输入,discriminator的另一部分输入就是generator生成的数据。 1. 初始化generator和discriminator。 2. 迭代:   固定generator的参数,更新discriminator的参数,maximize f   固定discriminator的参数,更新generator的参数,minimize f noise的先验分布对结果的影响不大 2. GAN as structured learning Structured Learning/Prediction: 输出一个序列、矩阵、图、树... Output is composed of components with dependency 重要的是各个components之间的关系。 做 structured learning 的两种思路   Bottom up:从component的层面生成object   Top down :整体评价 object,寻找一个最佳的 从这个角度理解 GAN: 3.

CycleGAN学习--流程讲解

南楼画角 提交于 2019-11-28 05:25:29
本博客讲解代码网址: https://github.com/eriklindernoren/PyTorch-GAN/tree/master/implementations/cyclegan 官方源码: https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix 官方源码和本博客讲解代码思路一致,本篇博客主要讲解整个流程。 但如果研究的话,推荐研究官方源码,其实也比较简单。 训练过程 1. Train Generators loss函数: loss_identity = (loss_id_A + loss_id_B) / 2 loss_GAN = (loss_GAN_AB + loss_GAN_BA) / 2 loss_cycle = (loss_cycle_A + loss_cycle_B) / 2 # Total loss loss_G = loss_GAN + \ lambda_cyc * loss_cycle + \ lambda_id * loss_identity 代码: # ------------------ # Train Generators # ------------------ optimizer_G.zero_grad() # Identity loss loss_id_A = criterion

对比《OpenCV计算机视觉编程攻略第3版》《OpenCV 3计算机视觉Python语言实现第2版》PDF代码

非 Y 不嫁゛ 提交于 2019-11-27 19:48:37
OpenCV 3是一种先进的计算机视觉库,可以用于各种图像和视频处理操作,通过OpenCV 3 能很容易地实现一些有前景且功能先进的应用(比如:人脸识别或目标跟踪等)。从图像处理的基本操作出发,计算机视觉是一个快速发展的学科,在现实生活中,它的应用增长得非常快,需要不断地学习全新的OpenCV 3.0。 现在神经网络很火,人们是不是忘记了学习传统计算机视觉算法的重要性了? 讲解计算机视觉编程的《OpenCV计算机视觉编程攻略(第3版)》结合C++和OpenCV全面讲解计算机视觉编程,不仅涵盖计算机视觉和图像处理的基础知识,而且通过完整示例讲解OpenCV的重要类和函数。大量代码实现,适合初学者跟着练习,也穿插着不少理论讲解,是本还不错的书。 《OpenCV计算机视觉编程攻略第3版》中文PDF,328页,带目录,文字可复制;英文PDF,464页,带目录,文字可以复制;配套源代码。 下载: https://pan.baidu.com/s/1Qxc353-91aP0JdZfeEO3Og 提取码: w7js 参考OpenCV 3计算机视觉,用于对目标跟踪进行深入探讨,目标跟踪是对摄像机中的图像或视频中移动的物体进行定位的过程。 理解与计算机视觉相关的算法、模型以及OpenCV 3 API背后的基本概念,有助于开发现实世界中的各种应用程序(比如:安全和监视领域的工具)。 《OpenCV