Applied Scientist · ML Knowledge

Amazon AS:Hyperparameter Tuning,怎样用有限预算找出可靠配置?

Grid、Random、Bayesian与多保真搜索的选择,重点解释验证泄漏、早停偏差与实验可复现性。

题目重点:Grid、Random、Bayesian与多保真搜索的选择,重点解释验证泄漏、早停偏差与实验可复现性。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 题目明确问有哪些调参方法,但没有指定模型、搜索空间、指标或计算预算;本文以分类模型、固定数据版本和总训练预算为训练合同。
  • 模型权重由训练拟合,学习率、深度、正则系数等由外层验证选择;某些训练参数可被元学习优化,不把这个基本区分说成永恒限制。
  • 测试集只作最终评估,时间序列按时间切分、同一用户多样本按用户分组;任何标准化、特征选择和采样只在每个训练折拟合。

解题路线

  1. 先定目标与约束:例如固定推理p95/内存下最大验证PR-AUC,而非只找最高训练accuracy。建立可信baseline,记录数据版本、切分、seed、代码、配置、预算、失败原因和完整学习曲线;不稳的基础训练应先修复。
  2. Grid适合少数离散维度且需要覆盖的空间,d维每维m点要m^d次。Random在同样trial数下给连续关键维度更多不同取值;学习率跨数量级用log区间,树深度用整数,只有选中某模型才展开其条件参数。Random是基线,不保证每个任务胜过Grid。
  3. Bayesian以已观测配置和成绩拟合surrogate,再由acquisition平衡探索/利用;适合单次训练贵且trial有限。需要处理噪声、条件空间、失败配置和并行pending trials。高维无结构空间或训练很便宜时,复杂surrogate未必划算。
  4. Successive Halving/Hyperband先给很多配置小预算,淘汰后给幸存者更多epoch/数据。预算必须和最终质量有一定关联;warmup慢或后期才好转的配置可能被错杀。异步调度提高利用率,但运行速度相关的选择偏差也要检查。
  5. 外层选择带来验证集过拟合:1000次反复看同一集不是1000次独立确证。小数据可用nested CV,候选先用少seed筛选,再对top配置增加seed/折数;以均值、方差及约束违例比较,不挑偶然最好的seed。
  6. 原论文作为Random基线参考:https://www.jmlr.org/papers/v13/bergstra12a.html;这里的预算安排、业务约束和实例是训练方案,不冒充论文实验结果或原面试数据。

手动走一遍

假设预算30次完整训练,每次20epoch。Grid的4维×5点要625次,超预算。训练安排可先试30配置×2epoch=60 epoch,再选10×6追加epoch=60,最后选3×12追加epoch=36,共156epoch;这是预算示例而非标准Hyperband公式。剩余预算用于候选重复seed和完整训练。若一个配置前2epoch因warmup很差,先检查早期排名与20epoch排名关系,不能直接判无效。

规模与取舍

T次完整训练成本约T·C_train;K折再乘K,重复S种seed乘S。多保真按各trial实际epoch累计预算;Bayesian拟合成本依surrogate与历史T增长,不以“试得少”证明总耗时少。

易错点与追问

容易失分的边界

  • 在测试集上调参。
  • 每折切分前先全数据标准化。
  • 把被剪枝的低保真成绩当完整成绩。
  • 只报告最好的seed。
  • 假设异步trial速度与质量无关。

继续深挖

  • 目标有accuracy/延迟/成本三个维度如何选Pareto候选?
  • 时间漂移时验证窗口怎么设计?
  • 怎样核对小预算与完整训练排名一致性?
  • 条件搜索空间怎样避免无效配置?

技术参考

  • Random Search 原论文:公开方法/语言合同参考,本文示例参数自拟,不代表题目数据或实际项目实现。
✓已复制微信号!