生成对抗网络(GAN)的原理、实践与挑战
1. 寻找误报与训练交替
在训练过程中,我们会寻找误报情况。生成一张假账单,如果判别器将其分类为真,就对判别器进行惩罚。完成这一步后,重复真负样本步骤,这样在每一轮训练中,判别器和生成器都有两次更新机会。
2. 构建简单GAN系统
为了便于在二维空间中进行说明,我们选择一个简单的例子。将训练集中的所有样本看作抽象空间中的点云,真实样本点服从二维高斯分布,中心位于(5, 5),标准差为1。
2.1 生成器与判别器的目标
- 生成器:尝试将给定的随机数转化为符合上述高斯分布的点,目标是让判别器无法区分真实点和生成器生成的合成点。
- 判别器:判断输入的点是来自原始高斯分布的真实样本,还是生成器生成的合成样本。
2.2 使用小批量数据
仅根据单个点,判别器很难确定其来源。为了简化判别器的工作,我们使用小批量数据(通常是32到128之间的2的幂次方)。通过一批点,判别器更容易判断它们是否来自原始高斯分布。
2.3 构建判别器和生成器网络
由于原始分布较为简单,我们可以构建简单的网络。但需要注意的是,GAN对架构和超参数非常敏感,微小的变化可能会导致性能的巨大差异。因此,在开发GAN时,需要使用特定数据进行实验,尽快找到合适的设计和超参数。
2.3.1 生成器
- 输入:四个在0到1之间均匀选择的随机值。
- 结构:
- 第一个全连接层:16个神经元,使用Leaky ReLU激活
超级会员免费看
订阅专栏 解锁全文
425

被折叠的 条评论
为什么被折叠?



