判别器
概述
GAN 中负责区分真实数据与生成数据的神经网络,目标是正确识别生成器产生的伪造样本。
关键内容
- 角色与目标:在 生成对抗网络(GAN) 中,判别器(Discriminator, D)扮演"鉴别专家"角色。它接收真实数据 x 或生成数据 G(z) 作为输入,输出该样本为真实数据的概率 D(·) ∈ [0, 1]。其目标是最大化正确区分真假样本的能力。
- 网络架构:典型的判别器是全连接或卷积神经网络,将高维数据(如图像)映射到标量概率值。常用架构包括 LeakyReLU 激活函数(防止梯度消失)和 Dropout 层(防止 过拟合(Overfitting))。注意:判别器通常不使用 BatchNorm,因为这可能导致 模式崩塌。
- 训练目标:判别器最大化 V(D, G) = E_{x~p_data}[log D(x)] + E_{z~p_z}[log(1 - D(G(z)))]。第一项鼓励对真实数据输出接近 1,第二项鼓励对生成数据输出接近 0。通常每步训练判别器 k 步(k=1),以保持与生成器的能力平衡。
- 关键平衡:判别器不能太强也不能太弱。太强会导致 梯度消失(生成器梯度为零,无法学习);太弱则无法提供有效的训练信号。实践中通过控制训练步数比、学习率、谱归一化等方式维持两者的能力平衡。
来源
- Generative Adversarial Nets (2014 论文) — 原始论文中定义的判别器角色
- 10_gan_2014.md — 源文件,含完整 PyTorch 实现
相关
- 生成对抗网络(GAN) — part_of
- 生成器 — compares_to
- 对抗训练 — part_of
- 过拟合(Overfitting) — relates_to
- Dropout(随机失活) — uses
- 梯度消失 — relates_to