概述
对其进行良好的调优往往是区分平庸模型与出色模型的关键。
深入探讨
模型参数(权重)是在训练期间从数据中学习的。超参数则不同:它们是您预先设置的控制学习如何发生的旋钮,例如学习率、批量大小、层数、正则化强度以及训练时间。它们无法直接通过梯度下降进行优化,因此您可以通过训练许多候选模型并在验证集上进行比较来搜索好的值。最简单的方法是网格搜索,在预定义的网格上尝试每种组合,但它的扩展性非常差。随机搜索通常通过采样组合更快地找到好的设置。更高级的贝叶斯优化构建了一个概率模型,其中的设置看起来很有希望,并将搜索集中在那里。学习率通常是最有影响力的超参数。
现实世界的实施
将学习率扫描几个数量级,以找到网络快速训练而不发散的值。
使用随机搜索来调整表格数据上梯度提升模型的树深度、树数量和学习率。
运行贝叶斯优化,在有限的 GPU 预算上联合调整深度网络的正则化强度和批量大小。
应用 Hyperband 来短暂训练数十种配置,然后只为最有希望的幸存者提供更多的时期。
超参数调优的未来
手动和基于网格的调整正在让位于自动化机器学习 (AutoML) 和更智能的搜索,例如贝叶斯优化和 Hyperband,它们使用计算的效率要高得多。随着基础模型的发展,每次试验的完全再训练变得异常昂贵,因此注意力正在转向更便宜的代理、从小规模运行中预测良好设置的缩放法则,以及调整轻量级适配器而不是整个模型。预计调整将变得越来越自动化和预算意识,通过工具明确地权衡搜索成本和预期收益。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是超参数调优?
超参数是您在训练前选择的设置,例如学习率或模型大小,模型不会自行学习。调整好它们通常是平庸模型和优秀模型之间的区别。
超参数与常规模型参数有何区别?
权重(参数)是在训练期间从数据中学习的。预先选择超参数(例如学习率或层数)并控制训练的进行方式。
哪个通常被认为是深度学习中最有影响力的超参数调整?
学习率强烈影响模型是否收敛以及收敛的速度。太高,训练出现偏差;太低了,它会爬行或被卡住。
为什么随机搜索在超参数调整方面通常优于网格搜索?
网格搜索浪费了对不重要维度的尝试。随机搜索可以更有效地探索空间,并且通常可以通过更少的试验达到良好的配置。
贝叶斯优化如何选择下一步要尝试的超参数配置?
贝叶斯优化对配置和验证分数之间的关系进行建模,然后选择下一个试验来平衡对不确定区域的探索与对有希望区域的利用。
为什么最终测试集在超参数调整期间必须保持不变?
调整会选择最适合您评估的任何数据的设置。如果这是测试集,那么您报告的性能就会被夸大。调优使用单独的验证集。