gan

GAN 网络六年总结

眉间皱痕 提交于 2019-12-10 23:39:08
今天看到很好的一篇论文,总结了整个GAN六年的发展,主要以计算视觉为主。论文题目是 The Six Fronts of the Generative Adversarial Networks 。大家可以参考一下。如果大家是搞医学图像的,还可以参考这篇文章:GANs for Medical Image Analysis 也是一个总结。可以让大家有一个综合的概念。 来源: CSDN 作者: skyfengye 链接: https://blog.csdn.net/nijiayan123/article/details/103483600

Gan论文阅读 Conditional Generative Adversarial Nets

倾然丶 夕夏残阳落幕 提交于 2019-12-10 20:04:30
Title:Conditional Generative Adversarial Nets Paper: pdf 摘要:介绍一种有条件的Gan,通过输入数据y来构造。做了2个实验,根据类标签生成MNIST数字和学习一个多模态模型,该方法成功生成了不属于训练标签的描述性标记。 一. CGAN思想 这项工作提出了一种带条件约束的GAN,在生成模型(D)和判别模型(G)的建模中均引入条件变量y(conditional variable y),使用额外信息y对模型增加条件,可以指导数据生成过程。这些条件变量y可以基于多种信息,例如类别标签,用于图像修复的部分数据,来自不同模态(modality)的数据。如果条件变量y是类别标签,可以看做CGAN 是把纯无监督的 GAN 变成有监督的模型的一种改进。这个简单直接的改进被证明非常有效,并广泛用于后续的相关工作中。Mehdi Mirza et al. 的工作是在MNIST数据集上以类别标签为条件变量,生成指定类别的图像。作者还探索了CGAN在用于图像自动标注的多模态学习上的应用,在MIR Flickr25000数据集上,以图像特征为条件变量,生成该图像的tag的词向量。 二. 相关工作 许多有趣的问题更自然地被认为是概率一对多映射。例如,在图像标记的情况下,可能有许多不同的标签可以适当地应用于给定的图像,不同的(人类)注释器可能使用不同的

20.生成对抗网络

时光毁灭记忆、已成空白 提交于 2019-12-10 13:16:01
文章目录 生成对抗网络(GAN)是什么? inference GAN网络结构 如何训练GAN? 训练DCGAN实现人脸生成 Generator:卷积结构的模型 Discriminator:卷积结构的模型 本课程来自深度之眼deepshare.net,部分截图来自课程视频。 Chloe H. 提供:GAN训练的tip, https://chloes-dl.com/2019/11/19/tricks-and-tips-for-training-a-gan/ 生成对抗网络(GAN)是什么? GAN(Generative Adversarial Nets):生成对抗网络——一种可以生成特定分布数据的模型 文献:Generative Adversarial Nets. Ian Goodfellow. 2014 堃哥说: Adversarial training is the coolest thing since sliced bread.I’ ve listed a bunch of relevant papers in a previous answer. Expect more impressive results with this technique in the coming years. 下面是用GAN生成的64张人脸。有些比较畸形。。。 inference 1.输入:

Detecting GAN-generated Imagery using Color Cues

无人久伴 提交于 2019-12-09 21:07:17
Abstract     论文创新点:分析流行GAN网络结构得知,GAN网络生成得图片在颜色处理与真实摄像机拍摄的照片存在不同,主要表现在两方面。     实验结果:证明了两种线索能够有效区分GAN生成图像和用于训练GAN的真实图像。 1.Introduction     本片论文主要是研究GANs网络生成图片的取证检测,虽然他们用肉眼无法区分,但是GANs生成的图片在重要的一些方面和相机拍摄的图像还是存在差别的。通过研究生成器网络的结构,尤其注意到它是如何形成颜色的,并注意到两者有两个重要的区别:(这也就是摘要中的两个像素) 再某种方式限制饱和像素的频率,对生成器内部值是被规范化(Normalized)的来限制输出的大小。(First, the generator’s internal values are normalized to constrain the outputs, in a way which limits the frequency of saturated pixels.) 生成器的对通道的内部表示类似于彩色RGB三通道像素合成的方式,但是所使用的权重与摄像机的类似光谱灵敏度完全不相同。(Second, the generator’s multi-channel internal representation is collapsed to red,

单步训练GAN技巧——把生成器和判别器loss合并成一个

落爺英雄遲暮 提交于 2019-12-09 12:08:46
我们知道普通的模型都是搭好架构,然后定义好loss,直接扔给优化器训练就行了。但是GAN不一样,一般来说它涉及有两个不同的loss,这两个loss需要交替优化。现在主流的方案是判别器和生成器都按照1:1的次数交替训练(各训练一次,必要时可以给两者设置不同的学习率,即TTUR),交替优化就意味我们需要传入两次数据(从内存传到显存)、执行两次前向传播和反向传播。 如果我们能把这两步合并起来,作为一步去优化,那么肯定能节省时间的,这也就是GAN的同步训练。 (注:本文不是介绍新的GAN,而是介绍GAN的新写法,这只是一道编程题,不是一道算法题~) 如果在TF中 # 如果是在tensorflow中,实现同步训练并不困难,因为我们定义好了判别器和生成器的训练算子了(假设为 D_solver 和 G_solver ),那么直接执行 sess.run([D_solver, G_solver], feed_dict={x_in: x_train, z_in: z_train}) 就行了。这建立在我们能分别获取判别器和生成器的参数、能直接操作 sess.run 的基础上。 更通用的方法 # 但是如果是Keras呢?Keras中已经把流程封装好了,一般来说我们没法去操作得如此精细。所以,下面我们介绍一个通用的技巧,只需要定义单一一个loss,然后扔给优化器,就能够实现GAN的训练。同时,从这个技巧中

Generative Adversarial Network (GAN) - Pytorch版

为君一笑 提交于 2019-12-09 11:32:20
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)生成手写字

余生颓废 提交于 2019-12-08 14:28:23
先放结果 这是通过GAN迭代训练30W次,耗时3小时生成的手写字图片效果,大部分的还是能看出来是数字的。 实现原理 简单说下原理,生成对抗网络需要训练两个任务,一个叫生成器,一个叫判别器,如字面意思,一个负责生成图片,一个负责判别图片,生成器不断生成新的图片,然后判别器去判断哪儿哪儿不行,生成器再不断去改进,不断的像真实的图片靠近。 这就如同一个造假团伙一样,A负责生产,B负责就鉴定,刚开始的时候,两个人都是菜鸟,A随便画了一幅画拿给B看,B说你这不行,然后A再改进,当然需要改进的不止A,随着A的改进,B也得不断提升,B需要发现更细微的差异,直至他们觉得已经没什么差异了(实际肯定还存在差异),他们便决定停止"训练",开始卖吧。 实现代码 # -*- coding: utf-8 -*- # @author: Awesome_Tang # @date: 2019-02-22 # @version: python2.7 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data from datetime import datetime import numpy as np import os import matplotlib.pyplot as plt os.environ[

2017.4-Jeff Donahue, Trevor Darrell-Adversarial feature learning-UCB-ICLR2017 阅读笔记

前提是你 提交于 2019-12-08 05:46:50
2017.4-Jeff Donahue, Trevor Darrell-Adversarial feature learning-UCB-ICLR2017 本文创新点:提出 BiGANs ,能够进行 inverse mapping (data => latent space) 在GAN 中引入 encoder,命名为 Bi-GAN, 将 discriminator 对 X 和 G(z) 的判别转化为对 (x, E(x)) 和 (G(z), z) 的判别。 推导证明了 BiGAN 最优的 E 和 G 是互逆的: E = G − 1 E=G^{-1} E = G − 1 推导证明了 BiGAN 与 ℓ 0 \ell_0 ℓ 0 ​ loss 下的 autoencoder 是 closely related. 本文的 traning, hyper param. setting 与 evaluation 等,均沿用前人文献。 Abstract Target of the research Learn feature repre. for auxiliary problems where semantics are relevant. GAN cannot project: data => latent space This paper propose BiGANs ability of

【Active Learning - 04】Generative Adversarial Active Learning

独自空忆成欢 提交于 2019-12-08 05:42:15
主动学习系列博文: 【Active Learning - 00】主动学习重要资源总结、分享(提供源码的论文、一些AL相关的研究者):https://blog.csdn.net/Houchaoqun_XMU/article/details/85245714 【Active Learning - 01】深入学习“主动学习”:如何显著地减少标注代价:https://blog.csdn.net/Houchaoqun_XMU/article/details/80146710 【Active Learning - 02】Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally:https://blog.csdn.net/Houchaoqun_XMU/article/details/78874834 【Active Learning - 03】Adaptive Active Learning for Image Classification:https://blog.csdn.net/Houchaoqun_XMU/article/details/89553144 【Active Learning - 04】Generative Adversarial

生成对抗网络GAN的数学公式的前因后果

拥有回忆 提交于 2019-12-07 16:32:08
Basic Idea of GAN Generator G G是一个生成器,给定先验分布 Pprior(z) 我们希望得到生成分布 PG(x)  ,这里很难通过极大似然估计得到结果 Discriminator D D是一个函数,来衡量 PG(x) 与 Pdata(x) 之间的差距,这是用来取代极大似然估计 首先定义函数V(G, D)如下: 我们可以通过下面的式子求得最优的生成模型 下面我们来看看原文中几个重要的数学公式描述,首先我们直接上原始论文中的目标公式吧: 上述这个公式说白了就是一个最大最小优化问题,其实对应的也就是上述的两个优化过程。有人说如果不看别的,能达看到这个公式就拍案叫绝的地步,那就是机器学习的顶级专家,哈哈,真是前路漫漫。同时也说明这个简单的公式意义重大。 这个公式既然是最大最小的优化,那就不是一步完成的,其实对比我们的分析过程也是这样的,这里现优化D,然后在取优化G,本质上是两个优化问题,把拆解就如同下面两个公式: 优化D: 优化G: 可以看到,优化D的时候,也就是判别网络,其实没有生成网络什么事,后面的G(z)这里就相当于已经得到的假样本。优化D的公式的第一项,使的真样本x输入的时候,得到的结果越大越好,可以理解,因为需要真样本的预测结果越接近于1越好嘛。对于假样本,需要优化是的其结果越小越好,也就是D(G(z))越小越好,因为它的标签为0。但是呢第一项是越大