超参数调优的工作方式 - Amazon SageMaker

超参数调优的工作方式

在您生成复杂机器学习系统时,例如深度学习神经网络,探讨所有可能的组合不切实际。超参数调优可以通过尝试模型的多种变体来提高工作效率。它通过关注指定范围内最有前途的超参数值组合,以自动寻找最佳模型。要获得良好的结果,您必须选择合适的探索范围。

请使用 API 参考指南,了解如何与超参数调优进行交互。本页中的示例可以在 HyperParameterTuningJobConfigHyperbandStrategyConfig API 中找到。

注意

由于算法本身是推测性的,超级参数调优模型可能会无法收敛到最佳答案。即使可能的最佳值组合在您选择的范围内,也可能发生这种情况。

使用网格搜索时,超参数调优从您在创建作业时所指定的分类值范围中选择值的组合。使用网格搜索策略时,仅支持分类参数。您无需指定 MaxNumberOfTrainingJobs。调优作业创建的训练作业数量将自动计算为可能的不同分类组合的总数。如果指定,则 MaxNumberOfTrainingJobs 的值应等于可能的不同分类组合的总数。

使用随机搜索时,超参数调优对于它启动的每个训练作业,将从您为超参数指定的范围内选择随机的值组合。由于超参数值的选择不依赖于先前训练作业的结果,因此您可以运行最大数量的并发训练作业,而不影响调优性能。

有关使用随机搜索的示例笔记本,请参阅使用 SageMaker XGBoost 和自动模型调优执行随机搜索和超参数标度笔记本。

贝叶斯优化

贝叶斯搜索将超参数调优视为回归问题。给定一组输入特征(超参数),超参数调优会针对您选择的指标来优化模型。为解决回归问题,超参数调优会猜测哪些超参数组合有可能获得最佳结果,然后运行训练作业来测试这些值。在测试了一组超参数值之后,超参数调优使用回归来选择要测试的下一组超参数值。

超参数调优使用贝叶斯优化的 Amazon SageMaker 实施。

在选择下一个训练作业的最佳超参数时,超参数调优会考虑迄今为止所了解到的有关此问题的全部信息。有时,它会选择与导致先前最佳训练作业的组合接近的超参数值组合,以逐步提高性能。这使得超参数调优可以利用最佳的已知结果。其他时候,它会选择一组远离已尝试过的值的超参数值。这使得它可以探索超参数值的范围,以尝试找到新的尚未了解的领域。探索/利用的权衡在许多机器学习问题中都很常见。

有关贝叶斯优化的更多信息,请参阅以下内容:

Hyperband

Hyperband 是一种基于多保真度的调优策略,可以动态地重新分配资源。Hyperband 使用训练作业的中间结果和最终结果,将周期重新分配给利用率高的超参数配置,并自动停止那些表现不佳的超参数配置。它还可以无缝扩展以使用大量并行训练作业。与随机搜索和贝叶斯优化策略相比,这些功能可以显著加快超参数调优的速度。

Hyperband 只能用于调整在不同资源级别发布结果的迭代算法。例如,Hyperband 可用于调整用于图像分类的神经网络,该神经网络会在每个周期之后发布准确性指标。

有关 Hyperband 的更多信息,请参阅以下链接:

具提前停止功能的 Hyperband

如果训练作业不太可能改进超参数调优作业的目标指标,则训练作业可以提前停止。这有助于缩短计算时间并避免模型过度拟合。Hyperband 使用先进的内部机制来实现提前停止。因此,在使用 Hyperband 内部提前停止功能时,HyperParameterTuningJobConfig API 中的 TrainingJobEarlyStoppingType 参数必须设置为 OFF

注意

超参数调优可能不会改进您的模型。它是用于构建机器解决方案的高级工具。因此,应将其视为科学发展过程的一部分。