条件GAN损失函数推导
时间: 2024-07-29 10:01:16 浏览: 75
条件GAN (Conditional Generative Adversarial Networks, CGANs) 的损失函数相比于普通GAN有所扩展,它引入了一个额外的输入变量来指导生成器。CGAN的损失函数通常包括两个部分:鉴别器的损失\( L_D \) 和生成器的损失\( L_G \)。
1. **鉴别器的损失 \( L_D \)**[^1]:
- \( D(x, c) \) 表示鉴别器对真实样本(x与条件c)的概率判断,
- \( D(G(z, c), c) \) 对于生成样本(由G生成并结合条件c)的概率判断。
\( L_D \) 是这两个判断之间的差异,如交叉熵损失的形式:
```markdown
\( L_D(D) = \mathbb{E}_{(x,c)\sim p_{data}(x,c)}[\log D(x,c)] + \mathbb{E}_{z\sim p_z(z),c\sim p_c(c)}[\log(1 - D(G(z,c),c))] \)
```
2. **生成器的损失 \( L_G \)**:
生成器的目标是欺骗鉴别器,使其相信生成的样本是真实的。因此,生成器损失是反向计算鉴别器对生成样本的判断:
```markdown
\( L_G(G) = \mathbb{E}_{z\sim p_z(z),c\sim p_c(c)}[\log D(G(z,c),c)] \)
```
总的来说,CGAN的训练过程是让鉴别器尽可能准确地区分真实样本和生成样本,而生成器则试图生成更接近真实的样本以蒙骗鉴别器。通过迭代更新这两个网络,它们会在对抗中不断优化。
阅读全文