深度卷积生成对抗网络(DCGAN)原理与实现(采用Tensorflow2


Ian Goodfellow 在首次提出GAN,使用了形象的比喻来介绍 GAN 模型:生成网络 G 的功能就是产生逼真的假钞试图欺骗鉴别器 D,鉴别器 D 通过学习真钞和生成器 G 生成的假钞来掌握钞票的鉴别方法。这两个网络在相互博弈中进行训练,直到生成器 G 产生的假钞使鉴别器 D 难以分辨。而DCGAN是使用卷积操作和反卷积操作来替代原始GAN中的全连接操作。

DCGAN网络结构


GAN包含生成网络(Generator, G )和判别网络(Discriminator, D ),其中 G 用于学习数据的真实分布, D 用于将 G 生成的数据与真实样本区分开。

DCGAN网络架构

生成网络 G ( z ) G(z) G(z) G 从先验分布 p z ( ⋅ ) p_z(\cdot ) pz​(⋅)中采样潜变量 z ∼ p z ( ⋅ ) z\sim p_z(\cdot) z∼pz​(⋅),通过 G 学习分布 p g ( x ∣ z ) p_g (x|z) pg​(x∣z),获得生成样本 x ∼   p g ( x ∣ z ) x\sim ~p_g (x|z) x∼ pg​(x∣z)。其中潜变量z的先验分布 p z ( ⋅ ) p_z (\cdot) pz​(⋅)可以假设为常见的分布。

判别网络 D ( x ) D(x) D(x) **D**是一个二分类网络,它判断采样自真实数据分布 p r ( ⋅ ) p_r (\cdot) pr​(⋅)的数据 x r ∼ p r ( ⋅ ) x_r\sim p_r(\cdot ) xr​∼pr​(⋅)和采样自生成网络的生成的数据 x f ∼ p g ( x ∣ z ) x_f\sim p_g (x|z) xf​∼pg​(x∣z),判别网络的训练数据集由 x r x_r xr​和 x f x_f xf​组成。真实样本 x r x_r xr​的标签标为1,生成网络产生的样本 x f x_f xf​标为0,通过最小化判别网络 D 的预测值与标签之间的误差来优化判别网络。

GAN训练目标


判别网络目标是分辨出真样本 x r x_r xr​与假样本 x f x_f xf​。它的目标是最小化预测值和真实值之间的交叉熵损失函数:

m θ i n L = C E ( D θ ( x r ) , y r , D θ ( x f ) , y f ) \underset{θ}min \mathcal L = CE(D_θ (x_r ), y_r,D_θ (x_f),y_f) θm​inL=CE(Dθ​(xr​),yr​,Dθ​(xf​),yf​)

CE表示交叉熵损失函数CrossEntropy:

L = − ∑ x r ∼ p r ( ⋅ ) l o g D θ ( x r ) − ∑ x f ∼ p g ( ⋅ ) l o g ( 1 − D θ ( x f ) ) \mathcal L = − \sum_{x_r \sim p_r (\cdot)}logD_θ (x_r ) −\sum_{x_f \sim p_g (\cdot) } log (1 − D_θ (x_f )) L=−xr​∼pr​(⋅)∑​logDθ​(xr​)−xf​∼pg​(⋅)∑​log(1−Dθ​(xf​))

判别网络 D 的优化目标是:

θ ∗ = a θ r g m i n − ∑ x r ∼ p r ( ⋅ ) l o g D θ ( x r ) − ∑ x f ∼ p g ( ⋅ ) l o g ( 1 − D θ ( x f ) ) θ^∗ = \underset{θ}argmin − \sum_{x_r \sim p_r (\cdot)}logD_θ (x_r ) −\sum_{x_f \sim p_g (\cdot) } log (1 − D_θ (x_f )) θ∗=

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值