task10GAN

GAN的核心思想,训练生成器,当生成器生成的数据让判别器无法辨别时就是一个号的生成器。
生成模型:建模x的分布p(x)
Image Name
对于生成器,开始绘制一些随机分布的参数 z ∈ R d \mathbf z\in\mathbb R^d zRd , 如正态分布 z ∼ N ( 0 , 1 ) \mathbf z \sim \mathcal{N} (0, 1) zN(0,1).我们把 z \mathbf z z 成为潜在变量. 然后使用一个函数来生成 x ′ = G ( z ) \mathbf x'=G(\mathbf z) x=G(z). 生成器的目标是欺骗判别器,让判别器认为 x ′ = G ( z ) \mathbf x'=G(\mathbf z) x=G(z) 是一个真实数据, 例如,我们希望 D ( G ( z ) ) ≈ 1 D( G(\mathbf z)) \approx 1 D(G(z))1. 换言之,对于给定的判别器 D D D, 我们更新 G G G 使得 y = 0 y=0 y=0时交叉熵损失最大,

max ⁡ G { − ( 1 − y ) log ⁡ ( 1 − D ( G ( z ) ) ) } = max ⁡ G { − log ⁡ ( 1 − D ( G ( z ) ) ) } . \max_G \{ - (1-y) \log(1-D(G(\mathbf z))) \} = \max_G \{ - \log(1-D(G(\mathbf z))) \}. Gmax{(1y)log(1D(G(z)))}=Gmax{log(1D(G(z)))}.

如果判别器表现很好, 那么 D ( x ′ ) ≈ 0 D(\mathbf x')\approx 0 D(x)0所以上述损失接近0, 但是这样会因为值太小而产生梯度消失,导致训练失败。所以,我们通常使用下面的损失函数:

min ⁡ G { − y log ⁡ ( D ( G ( z ) ) ) } = min ⁡ G { − log ⁡ ( D ( G ( z ) ) ) } , \min_G \{ - y \log(D(G(\mathbf z))) \} = \min_G \{ - \log(D(G(\mathbf z))) \}, Gmin{ylog(D(G(z)))}=Gmin{log(D(G(z)))},

x ′ = G ( z ) \mathbf x'=G(\mathbf z) x=G(z) 带入判别器,并使得 y = 1 y=1 y=1.

总的来说, D D D G G G 的总的loss是一个极大极小的对抗损失函数:

m i n D m a x G { − E x ∼ Data l o g D ( x ) − E z ∼ Noise l o g ( 1 − D ( G ( z ) ) ) } . min_D max_G \{ -E_{x \sim \text{Data}} log D(\mathbf x) - E_{z \sim \text{Noise}} log(1 - D(G(\mathbf z))) \}. minDmaxG{ExDatalogD(x)EzNoiselog(1D(G(z)))}.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值