gan

八章:GAN和DCGAN入门

前提是你 提交于 2019-12-05 08:28:27
GAN的全称为Generative Adversarial Networks,意为对抗生成网络。原始的GAN是一种无监督学习方法,它巧妙地利用“对抗”的思想来学习生成式模型,一旦训练完成后可以生成全新的数据样本。DCGAN将GAN的概念扩展到卷积神经网络中,可以生成质量较高的图片样本。GAN和DCGAN在各个领域都有广泛的应用,这篇文章首先会介绍他们的原理,再介绍如何在TensorFlow中使用DCGAN生成图像,关于GAN和DCGAN的更多项目会在接下来的章节中进行介绍。 GAN的原理 GAN的原理其实非常简单。可以把GAN看成数据生成工具,这里以生成图片数据为例进行讲解,实际GAN可以应用到任何类型的数据。 假设有两个网络,生成网络G(Generator)和判别网络D(Discriminator) 他们的功能分别是: G负责生成图片,它接收一个随机的噪声zz,通过该噪声生成图片,将生成的图片记为G(z)G(z)。 D负责判别一张图片是不是“真实的”。它的输入时xx,xx代表一张图片,输出D(x)D(x)表示xx为真实图片的概率,如果为,代表真实图片的概率为%,而输出为,代表不可能是真实的图片。 在训练过程中,生成网络G的目标是尽量生成真实的图片去欺骗判别网络D,而D的目标是尽量把生成的图片和真实的图片区分开来。这样,G和D构成了一个动态的“博弈”,这就是GAN的基本思想。

GAN和DCGAN的讨论

大憨熊 提交于 2019-12-05 08:26:53
1. GAN对噪声z的分布有要求吗?常用哪些分布? 一般没有特别要求,常用有高斯分布、均匀分布。噪声的维数至少要达到数据流形的内在维数,才能产生足够的diversity,mnist大概是6维,CelebA大概是20维(参考:https://zhuanlan.zhihu.com/p/26528060) 2. GAN的 adversarial 体现在哪里? G和D的博弈,G需要尽量贴近p_data,D需要识别出真实数据和G生成的数据 3. G和D的loss分别是什么?p_data和p_g的JS divergence和adversarial loss之间存在什么关系? D的loss 伯努利分布的对数似然函数 G的loss zero game时,Equation 1 实际训练,Equation 2 不用zero game loss的原因,In practice, equation 1 may not provide sufficient gradient for G to learn well. Early in learning,when G is poor, D can reject samples with high confidence because they are clearly different fromthe training data. In this case,

GAN和DCGAN

我与影子孤独终老i 提交于 2019-12-05 08:26:42
一、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,就代表不可能是真实的图片。 在训练过程中, 生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。 这样,G和D构成了一个动态的“博弈过程”。 最后博弈的结果是什么? 在最理想的状态下, G可以生成足以“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。 这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。

DCGAN 论文简单解读

為{幸葍}努か 提交于 2019-12-05 08:26:17
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

DCGAN翻译

有些话、适合烂在心里 提交于 2019-12-05 08:25:50
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/liuxiao214/article/details/73500737 </div> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css"> <div id="content_views" class="markdown_views prism-atom-one-dark"> <!-- flowchart 箭头图标 勿删 --> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p>论文原文:<a href="https://arxiv.org/pdf/1511.06434.pdf" rel="nofollow" data-token=

深度卷积对抗生成网络(DCGAN)

南笙酒味 提交于 2019-12-05 08:23:57
本文是参考文献[1]的论文笔记。 卷积神经网络在有监督学习中的各项任务上都有很好的表现,但在无监督学习领域,却比较少。本文介绍的算法将有监督学习中的CNN和无监督学习中的GAN结合到了一起。 在非CNN条件下,LAPGAN在图像分辨率提升领域也取得了好的效果。 与其将本文看成是CNN的扩展,不如将其看成GAN的扩展到CNN领域。而GAN的基本算法,可以参考 对抗神经网络 。 GAN无需特定的cost function的优势和学习过程可以学习到很好的特征表示,但是GAN训练起来非常不稳定,经常会使得生成器产生没有意义的输出。而论文的贡献就在于: 为CNN的网络拓扑结构设置了一系列的限制来使得它可以稳定的训练。 使用得到的特征表示来进行图像分类,得到比较好的效果来验证生成的图像特征表示的表达能力 对GAN学习到的filter进行了定性的分析。 展示了生成的特征表示的向量计算特性。 模型结构 模型结构上需要做如下几点变化: 将pooling层convolutions替代,其中,在discriminator上用strided convolutions替代,在generator上用fractional-strided convolutions替代。 在generator和discriminator上都使用batchnorm。 解决初始化差的问题 帮助梯度传播到每一层

学习笔记:GAN和DCGAN入门

本小妞迷上赌 提交于 2019-12-05 08:23:27
GAN的全称为Generative Adversarial Networks,意为对抗生成网络。原始的GAN是一种无监督学习方法,它巧妙地利用“对抗”的思想来学习生成式模型,一旦训练完成后可以生成全新的数据样本。DCGAN将GAN的概念扩展到卷积神经网络中,可以生成质量较高的图片样本。GAN和DCGAN在各个领域都有广泛的应用,这篇文章首先会介绍他们的原理,再介绍如何在TensorFlow中使用DCGAN生成图像,关于GAN和DCGAN的更多项目会在接下来的章节中进行介绍。 GAN的原理 GAN的原理其实非常简单。可以把GAN看成数据生成工具,这里以生成图片数据为例进行讲解,实际GAN可以应用到任何类型的数据。 假设有两个网络,生成网络G(Generator)和判别网络D(Discriminator) 他们的功能分别是: G负责生成图片,它接收一个随机的噪声 z z //--> ,通过该噪声生成图片,将生成的图片记为 G ( z ) G ( z ) //--> 。 D负责判别一张图片是不是“真实的”。它的输入时 x x //--> , x x //--> 代表一张图片,输出 D ( x ) D ( x ) //--> 表示 x x //--> 为真实图片的概率,如果为,代表真实图片的概率为%,而输出为,代表不可能是真实的图片。 在训练过程中

torch_12_BigGAN全文解读

混江龙づ霸主 提交于 2019-12-05 04:06:48
1.摘要: 尽管近来生成图片模型取得了进步,成功生成了高分辨率的图片,但是在复杂的数据集中,样本的多样性仍然是难以捉摸的目标。本文尝试在大规模上训练生成对抗网络,并研究这种规模下的不稳定性。我们发现将正交正则化应用于生成器使其能够适应简单的‘截断处理,允许通过减少生成器输入的方差来精细的控制样本保真度和变化之间的权衡。 2.三个贡献: 1.增大GAN的规模能显著提升建模的效果,模型的参数比之前增大2-4倍,训练的batch尺寸增加了8倍。文章提出了两种简单而又具有一般性的框架改进,可以提高模型的收缩性,并且改进了一种正则化策略来提升条件作用,证明了这些方法能够提升性能。 2.作为这些策略的副产品,本文提出的模型变得更服从截断技巧。截断技巧是一种简单的采样方法,能够在样本的逼真性,多样性之间做显式的,细粒度的控制。 3.发现了使大规模GAN不稳定的原因,对它们进行了经验性的分析,更进一步的,作者发现将已有的和新的技巧的组合使用能够降低这种不稳定性,但是完全的训练只有在巨大的性能代价下才能获得 3.背景 生成对抗网络由一个生成器和一个判别器组成,前者的作用是根据随机噪声数据生成逼真的随机样本,后者的作用是鉴别样本是真实的还是生成器生成的。在最早的版本中,GAN训练时的优化目标为达到极大值-极小值问题的纳什平衡。当用于图像分类任务时,G和D一般都是卷积神经网络

cycleGAN源码解读(二): 训练

旧巷老猫 提交于 2019-12-05 01:00:54
源码地址: https://github.com/aitorzip/PyTorch-CycleGAN 训练的代码见于train.py,首先定义好网络,两个生成器A2B, B2A和两个判别器A, B ###### Definition of variables ###### # Networks netG_A2B = Generator(opt.input_nc, opt.output_nc) netG_B2A = Generator(opt.output_nc, opt.input_nc) netD_A = Discriminator(opt.input_nc) netD_B = Discriminator(opt.output_nc) 然后是数据 # Dataset loader transforms_ = [ transforms.Resize(int(opt.size*1.12), Image.BICUBIC), transforms.RandomCrop(opt.size), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize((0.5,0.5,0.5), (0.5,0.5,0.5)) ] dataloader = DataLoader(ImageDataset(opt

超分损失函数小结

此生再无相见时 提交于 2019-12-04 21:29:34
原论文:Deep Learning for Image Super-resolution: A Survey 1.Pixel Loss: 用来度量生成图片和目标图片的像素级的差异 1.1 L1 loss 1.2 L2 loss 1.3 Charbonnier loss:L1 Loss的变体,最后参数是一个很小常量(e.g., 1e − 3),为了使数值稳定 像素损失是最常见的损失,通常L2损失能够对大的损失进行惩罚,但是在小的损失上无能为力,效果不如L1,像素损失实际上并没有考虑到图像质量(如感知质量,纹理),经常缺乏高频细节,并且产生的纹理过于平滑,难以令人满意 2.Content Loss: 如果一个网络,生成的图像足够逼真,那么生成图片的特征(度量特征提取网络中提取的)也应该跟真实图片的足够像,因此通过使特征足够相似,对生成图片质量也有促进作用 l是网络第l层,常用的度量特征提取网络有vgg,resnet。 3.Texture Loss: 由于重建后的图像应该与目标图像具有相同的样式(例如,颜色、纹理、对比度),将图像的纹理视为不同特征通道之间的相关性(用矩阵点乘来表示相关性) 最终损失函数是要求相关性相同: 好用是好用,但是需要通过经验(调参)来确定patch的大小,patch太小会造成纹理部分 artefacts(重影),太大会造成整个图片重影。