调整生成对抗网络(GAN)的超参数,相比于标准监督学习模型,面临独特难题。GAN训练的动态双人游戏特性意味着损失持续变化,收敛性无法保证。一组初期表现良好的超参数,在训练后期可能导致不稳定或模式崩溃。此外,标准损失值(生成器损失、判别器损失)通常不能很好地反映样本质量,这使得直接优化它们变得困难。因此,针对超参数调整,采取系统且有耐心的办法,并以恰当的评估指标为指引,是成功训练高级GAN模型的必要条件。
在GAN中识别超参数
尽管具体超参数取决于所选架构(例如StyleGAN、BigGAN、WGAN-GP)和优化器,但有几个参数始终需要仔细调整:
- 学习率: 这通常是最敏感的超参数。生成器(lrG)和判别器(lrD)使用单独的学习率很常见。第三章讨论的双时间尺度更新规则(TTUR)等技术明确建议使用不同的学习率(通常lrD>lrG)。值通常在1e−5到5e−4之间。
- 优化器参数: 对于Adam或AdamW优化器,动量参数β1和β2影响训练过程。尽管默认值(β1=0.9,β2=0.999)是常见的起点,但GAN文献常建议使用较低的β1值(例如0.0或0.5),以减少动量并可能提升稳定性,尤其是对于生成器而言。
- 批大小: 较大的批大小通常能提供更稳定的梯度估计,但会增加内存需求,有时可能导致更尖锐的局部最小值,潜在地损害泛化能力。BigGAN展示了使用超大批大小的成功,但这通常需要仔细调整其他参数,例如学习率和稳定化技术。批大小与归一化层(如批量归一化)和正则化技术有明显影响。
- 损失函数权重: 许多高级GAN在其损失函数中加入额外项。例如:
- 在WGAN-GP中,梯度惩罚系数(λGP)平衡了 Wasserstein 距离估计与 Lipschitz 约束的施加。常见值约为10。
- 在CycleGAN中,权重控制着对抗损失与循环一致性损失的相对重要性。
- 在InfoGAN中,权重调节着标准GAN损失与互信息项之间的平衡。
这些权重直接影响训练优先级,需要仔细调整。
- 架构参数: 尽管StyleGAN等核心架构已有既定结构,但网络深度、层宽度(通道数)、归一化类型(批量归一化、实例归一化、层归一化、谱归一化)以及激活函数的变化,在将模型应用于新数据集或任务时,可以被视为超参数。
- 正则化: 权重衰减或Dropout等技术,如果使用,有相关的强度参数需要调整。谱归一化,主要是一种稳定化技术,它影响网络的容量和动态表现。
系统性调整策略
纯粹依靠直觉或手动调整通常效率低下,并且难以找到复杂GAN的最佳设置。建议采用更结构化的方法:
网格搜索
网格搜索涉及为每个超参数定义一组离散值,并评估每种可能组合的模型表现。例如,你可能测试学习率[1e−5,5e−5,1e−4]和β1值[0.0,0.5]。
- 优点: 易于理解和实现。在定义的网格内是详尽的。
- 缺点: 受“维度诅咒”影响。组合数量随超参数数量呈指数增长。它会浪费计算资源在没有前景的区域上,并可能遗漏网格点之间的最佳值。对于超过少数几个超参数的情况,通常在计算上不可行,尤其是在GAN训练时间较长时。
随机搜索
随机搜索,由Bergstra和Bengio(2012)提出,从指定范围或分布中随机采样超参数组合。例如,从10−5到10−3均匀采样lr,从0.0到0.9均匀采样β1。
- 优点: 经验表明,在相同的计算预算下,它比网格搜索更高效,尤其当某些超参数远比其他超参数更重要时。更易于并行化。不太可能完全遗漏良好区域。
- 缺点: 不如网格搜索那样系统化。可能需要更多样本才能密集覆盖最有前景的区域。表现取决于所选的采样分布。
2D超参数空间中评估点的比较。网格搜索在固定网格上评估点,而随机搜索在空间内随机采样点,通常能更有效地探查重要维度。
贝叶斯优化
贝叶斯优化是一种序列化、基于模型的方法,特别适用于优化代价高昂的黑盒函数,例如训练好的GAN的性能指标(如FID分数)。
- 代理模型: 它根据先前评估过的点,构建超参数与目标指标之间关系的概率模型(通常是高斯过程)。
- 采集函数: 它使用采集函数(例如,预期改进、上置信界)来确定下一组要评估的超参数。该函数平衡了对参数空间不确定区域的勘察与对已知表现良好区域的利用。
- 评估: 使用选定的超参数训练GAN,并计算目标指标。
- 更新: 结果用于更新代理模型。
- 优点: 比网格搜索或随机搜索更样本高效,寻找良好超参数所需的GAN训练次数更少。对高维空间和昂贵评估有效。
- 缺点: 实现更复杂。序列性质限制了与随机搜索相比的并行化(尽管存在并行变体)。表现取决于代理模型和采集函数的选择。
贝叶斯优化在超参数调整中的流程。它迭代地构建目标函数的模型,并用它来智能选择下一组要评估的超参数。
基于种群的训练(PBT)
PBT并行训练一组模型。定期地,表现较差的模型会采用表现较好模型的权重和超参数,可能还会对超参数施加随机扰动。这使得在训练过程中可以同时优化权重和超参数。
- 优点: 能够发现复杂的超参数调度。对大规模实验有效。集成了优化和调整。
- 缺点: 训练一个种群需要大量计算资源。需要更复杂的设施。
GAN特有调整考量
- 目标指标: 不要仅仅依靠生成器或判别器损失进行调整。使用定量指标,如FID、IS、PPL,或任务特定指标(例如条件GAN的分类准确率),在训练期间或最终生成样本上定期评估。选择与期望结果相符的指标(例如,FID用于图像保真度和多样性)。
- 稳定性与质量: 通常存在权衡。那些能最大化稳定性的超参数(例如,非常高的梯度惩罚权重)可能会轻微损害可达到的最高质量。调整在于寻找一个适合你目标的平衡点。
- 早期停止与检查点: 在整个训练过程中,在验证集上监测所选指标(例如FID)。定期保存模型检查点,尤其当指标改善时。GAN训练可能突然发散,因此拥有良好状态的检查点很重要。
- 计算预算: 要切合实际。没有大量计算资源,完整的贝叶斯优化或PBT可能不可行。从有限次数的随机搜索开始,或根据以往工作集中手动调整最敏感的参数(如学习率)。
- 实验追踪: 使用MLflow、Weights & Biases或TensorBoard HParams等工具,记录每次运行的超参数、代码版本、评估指标以及定性结果(生成的样本)。这种组织方式对于比较实验和复现结果必不可少。
为高级GAN找到合适的超参数是一个迭代过程,它结合了算法知识、系统搜索策略、细致评估和实验管理。尽管计算密集,但结构化的方法显著增加了训练出成功且高质量生成模型的可能性。