ML、DL、CNN学习记录7



ML、DL、CNN学习记录7

GAN(Generative Adversarial Network)

到目前为止,GAN主要应用于图像生成、人脸变换、 生成高质量图像、场景生成、半监督建模、图像混合、图像修复、RelD、 超分辨率重建、遮挡剔除、语义分割、目标检测、特征点检测、视频预测与合成、纹理与风格转换等。

在这里插入图片描述

Image,label

GAN的学习

生成器和判别器的训练
判别器:直接单独的网络(可单独训练)
生成器:需要和GAN一起训练

在这里插入图片描述

GAN目标

  • 判别网络的目的:就是能判别出来属于的一张图它是来自真实样本集还是假样本集。假如输入的是真样本,网络输出就接近1,输入的是假样本,网络输出接近0,那么很完美,达到了很好判别的目的。
  • 生成网络的目的:生成网络是造样本的,它的目的就是使得自己造样本的能力尽可能强,强到什么程度呢,你判别网络没法判断我是真样本还是假样本。

再理解GAN

  • 判别网络说,我很强,来一个样本我就知道它是来自真样本集还是假样本集。生成网络就不服了,说我也很强,我生成一个假样本,虽然我生成网络知道是假的,但是你判别网络不知道呀,我包装的非常逼真,以至于判别网络无法判断真假,那么用输出数值来解释就是,生成网络生成的假样本进去了判别网络以后,判别网络给出的结果是一个接近0.5的值,极限情况就是0.5,也就是说判别不出来了,这就是纳什平衡了。

GAN的损失函数

在这里插入图片描述

对于判别器 (参数更新):
E x ⋅ P d a t a ( x ) [ l o g D ( x ) ] E_{x·Pdata}(x)[log D(x)] ExPdata(x)[logD(x)]:越大越好,代表判别器效果越好。

D ( x ) D(x) D(x)越接近1越好, l o g D ( x ) log D(x) logD(x)越大越好。

E z ⋅ P z ( z ) [ l o g ( 1 − D ( G ( z ) ) ) ] E_{z·P_z}(z)[log(1- D(G(z)))] EzPz(z)[log1D(G(z))]:越大越好

D ( G ( z ) ) D(G(z)) D(G(z)):越接近0越好
[ l o g ( 1 − D ( G ( z ) ) ) [log(1- D(G(z))) [log(1D(G(z))):越大越好

对于生成器 (参数更新):

E x ⋅ P d a t a ( x ) [ l o g D ( x ) ] E_{x·Pdata}(x)[log D(x)] ExPdata(x)[logD(x)]:越大越好,代表判别器效果越好。

D ( x ) D(x) D(x)越接近1越好, l o g D ( x ) log D(x) logD(x)越大越好。

E z ⋅ P z ( z ) [ l o g ( 1 − D ( G ( z ) ) ) ] E_{z·P_z}(z)[log(1- D(G(z)))] EzPz(z)[log1D(G(z))]:越大越好

D ( G ( z ) ) D(G(z)) D(G(z)):越接近1越好,代表生成的数据尽可能的与真实数据一样
[ l o g ( 1 − D ( G ( z ) ) ) [log(1- D(G(z))) [log(1D(G(z))):越小越好

logD(x)和G(z)无关,求导时直接为零

GAN 训练

在这里插入图片描述



GAN的扩展


DCGAN

  • DCGAN的全称是Deep Convolution Generative Adversarial Networks (深度卷积生成对抗网络)。是2014年Ian J. Goodfellow的那篇开创性的GAN论文之后一个新的提出将GAN和卷积网络结合起来,以解决GAN训练不稳定的问题的一篇 paper.
  • DCGAN的原理和GAN是一样的( GAN网络提出了理论,具体的G, D实现可以自己来定)。DCGAN把上述的GD换成了两个卷积神经网络。D可以理解为一个分类的卷积网络。G则是一个全卷积网络。但不是直接换就可以了DCGAN对卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度,这些改变有:
  1. G网络中使用转置卷积(反卷积) ( transposed convolutional layer) 进行上采样,D网络中用strided convolutions来替代空间池化(pooling) ;
  2. 除了生成器模型的输出层和判别器模型的输入层,在网络其它层上都使用了BatchNormalization,使用BN可以稳定学习,有助于处理初始化不良导致的训练问题;
  3. 去掉Full-Conn层,使网络变为全卷积网络;
  4. G网络中使用ReLU作为激活函数,最后一层使用tanh;
  5. D网络中使用LeakyReLU作为激活函数.

CGAN

CGAN与GAN的不同之处在哪儿? CGAN解决了哪些GAN不能解决的问题?

  1. CGAN与GAN不同之 处在于生成器和辨别器中添加了同样的条件,该条件可以是任何标签。
  2. CGAN解决了普通的GAN生成模型时方向不确定性,使得生成的输出更加符合我们的预期。

在这里插入图片描述


Stack GAN

Stack GAN-简书

文字 --> 图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值