生成对抗网络-GAN

xiaoxiao2021-02-28  129

生成对抗网络-GAN

1. GAN基础

本质

图片生成器

组成:

D:判别网络;G:生成网络;Loss:判别是真实模型的概率:是/否真值。

数学原理

其中,z:均匀分布变量;x:某空间的数据;z->x生成某空间数据; 黑线:目标标准分布;绿线:生成数据分布;蓝线:判断函数(根据x大小判断是否真实的概率)

初始状态:生成数据同真实数据差距明显,容易判别;训练过程:对是否真实判断得到的loss引导生成模型更新,差距减少;最终状态:生成数据同真实数据相似,无法识别。

对于D:maximize【D(x)+1-D(G(z))】 对于G:minimize【1-D(G(z))】 目标:

minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(x)))] 假设前提:判别模型D,生成模型G具有学习能力,能够收敛。

简单模型

G: relu+sigmoid nn; D: maxout

优缺点

优点:

不需要大量label数据,loss来源于D判定;产生大量生成数据用于训练,接近无监督学习;可以和深度神经网络结合。

缺点:

数据直接生成,没有推导过程;生成器,判断器需要配合共同训练难度较大;容易出现训练失败。

可能性

连接神经网络扩展;输入不仅是噪声信号,条件控制;时域信号生成。

2. 深度 GAN

DCGAN(Deep Convolutional GAN)

卷积神经网络+GAN 变化: 生成器G;判别器D(conv feat>1)

结构细节

没有pooling,stride conv/deconv运用batchnorm;不要FC(全连接层);非线性激励ReLU(G),LeakyReLU(D).

总结

GAN同深度CNN网络结合;噪声输入有着重要作用,可以实现有意义的运算;对输入信号实际意义可以有更深入研究,定性输出有可能。

3. 条件 GAN

cGAN(conditional)

用一些信息对GAN的生成图片进行范围约束; 信息的类型:文字、图片;

训练过程输入:随机信息+约束信息特征。

文字作为约束

输入: 随机信息+约束信息特征

文字+位置作为约束

Where and what ?

某位置的文字约束-key points condition

关键点多层次参与图片生成。

图片作为约束条件

利用图片生成相关的图片。

映射关系无限可能;图片分割;轮廓生成;热图生成;图片补全;高精度生成。

模型结构: 随机输入同图片结合; G学习图片到转化图片的映射关系; D判断生成图片和正式图片是否一致。

LcGAN(G,D)=Ex,ypdata(x,y)[logD(x,y)]+Expdata(x),zpz(z)[log(1D(x,G(x,z)))] $$

G:反池化,反卷积结构(deconv) Unet结构。 D:PatchGAN 图片整体优化会造成生成的图片边界模糊,高频信息难以估计。 解决方案:判别器关注在local区域。

4. Info GAN

特点

在DCGAN中,随机参数z的值有一定实际意义,如果有text label可以学习这种约束关系,如果没有label数据,则使用infoGAN。

infoGAN可以自动学习z中部分变量的意义。

Z分为两部分,c和z;c代表数据分布某种物理意义,z随机信号。

关系

DCGAN、InfoGAN没有额外数据标注;DCGAN中z对生成数据控制作用不确定,需要尝试观察;InfoGAN没有额外的标注,能够学到c与生成图片关系,引入Mutual Info 概念,其参与目标函数的确定,关系越紧密 I 越高,训练过程使得Mutual Info高,实现生成图片同c的联系。

I(X;Y)=H(X)H(X|Y)=H(Y)H(Y|X) 新的loss为: minGmaxDVI(D,G)=V(D,G)λI(c;G(z,c)) 其中,V(D,G)为旧的loss。

例如,有四个pattern,设计出4个c,希望最终每个c对应一个pattern的强度。

结果

确定c向量长度,观察各个c物理意义。 特点:

无监督学习;自动学到模式;

可用于生成特点图片。 要求:

训练图片的模式比较明显。

5. Wasserstein GAN

GAN存在的问题

训练困难,G、D需要经过次数尝试,需要匹配好;Loss无法知道能否优化,图片的质量和分布无法得到明确的体现;生成样本单一;改进方案靠暴力多次尝试。

**原因:**Loss函数选择不合适,使模型容易面临梯度小时,梯度不稳定,优化目标不定导致模型失败。

WGAN的特点

无需平衡D、G的训练组合;解决collapse model的问题,保证样本的多样性;结构更改简单有效。

改进方法

充分利用神经网络拟合性能以及数值近似。

判别器最后一层去掉sigmoid(使得loss更明显);生成器和判别器的loss不去log(使得loss更明显);判别器的参数更新截断;不用基于动量的优化算法。

6. 实例:图片生成器

Image conditon pix2pix

fork代码参见:https://github.com/KoalaTree/pix2pix-tensorflow

转载请注明原文地址: https://www.6miu.com/read-83380.html

最新回复(0)