生成对抗网络与数据处理全解析
一、生成对抗网络基础
(一)损失函数的选择
生成器作为神经网络,需要合适的损失函数。损失函数的选择至关重要,它取决于我们对生成器的目标设定,合适的损失函数能使生成器收敛。例如,Goodfellow等人最初的GAN论文中的生成器损失函数,该函数表明判别器在最小化其判断正确的对数概率,这是对抗训练模式的一部分。同时,生成器的损失函数设计不佳可能会导致梯度饱和问题,即学习梯度接近零,使学习几乎无法进行。判别器的损失函数采用标准的交叉熵实现,且通过多个小批量进行训练。
(二)损失函数模板类
在构建模型和配对GAN架构时,通常需要多个损失函数。为了存储这些损失方法,我们可以定义一个损失函数的模板类。对代码进行一定的标准化,有助于确保代码的可读性和可维护性。
(三)训练策略
GAN模型依赖于对抗训练。在训练过程中,会同时出现看似冲突的误差函数的最小化和最大化,这涉及到MiniMax问题。通过在每个epoch采样两个小批量,GAN架构能够同时最大化生成器的误差和最小化判别器的误差。生成模型通常难以训练出好的结果,GAN也不例外,但我们可以通过一些技巧让模型收敛并产生结果。
(四)不同的GAN架构
多数GAN架构的变化主要体现在生成器和损失函数上。以风格迁移为例,这是一种简单且常见的GAN应用。不同的风格迁移任务可能需要不同的GAN架构,如Adobe Research Labs的一篇论文专注于化妆应用和去除,其架构较为先进,包含五个独立的损失函数,能够同时学习化妆应用和去除功能。而在转移画家风格时,相对更容易,因为统一风格的转移比多种不同化妆风格的转移
超级会员免费看
订阅专栏 解锁全文
1452

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



