超参数选择必须留在评估边界内
区分模型参数与超参数,说明搜索空间、验证集、交叉验证和嵌套评估怎样避免选择偏差。
超参数选择必须留在评估边界内
模型参数由训练数据和优化算法估计,超参数则规定模型结构、正则强度、学习率或训练过程。选择超参数也是从数据中学习:尝试越多,越可能找到偶然适合当前验证集的组合。因此搜索过程必须被包含在评估边界内,测试集不能承担调参工作。
搜索空间先于搜索算法
调参从定义候选范围开始。范围过窄可能排除合理方案,过宽会浪费预算并增加选择噪声。线性尺度适合均匀变化,学习率、惩罚系数等跨数量级参数通常更适合对数尺度。
参数之间可能有条件关系。某种模型结构才使用的深度、某种正则方式才需要的系数,不应组合成无效实验。搜索空间应编码这些条件,并限制不满足资源或安全约束的配置。
范围来源可以是理论、既有实验和小规模试验,但不能依据最终测试结果反向修改。每次扩大空间都会增加新的选择自由度,需要重新评估偏差。
网格与随机搜索分配预算不同
网格搜索枚举预设组合,规则清晰,适合维度少且每个参数候选明确的情况。维度增加后,组合数迅速增长,而且大量预算会落在不重要参数的不同取值上。
随机搜索从分布采样组合,在同样试验次数下可以探索更多独立取值。结果取决于采样分布和随机种子。它并不天然优于所有网格,而是以不同方式使用预算。
贝叶斯优化、逐步淘汰等方法根据已有结果决定下一次尝试,可以减少昂贵训练,但引入了额外模型和早期指标假设。不同配置若训练速度不同,过早淘汰可能偏向快速起效的方案。
验证数据承担选择职责
每个候选在训练部分拟合,在验证部分比较。若使用交叉验证,所有预处理、特征选择和重采样都必须在每个训练折内部拟合,避免验证折信息泄漏。
时间、群组和空间相关数据需要相应切分。随机 K 折可能让同一用户、同一地点或未来时段同时出现在训练与验证中,搜索将偏好利用泄漏结构的配置。
比较指标应在搜索前确定。尝试多个指标后挑一个让结果最好,同样构成选择。多目标任务可以明确主指标、约束和可接受区间,而不是事后拼接权重。
最优验证分数带有选择偏差
即使所有候选真实能力相同,验证噪声也会让其中一个看起来最好。候选越多,最大分数越容易受偶然波动影响。报告最佳验证分数作为最终性能通常偏乐观。
嵌套交叉验证用内层选择超参数、外层估计整个选择流程的性能。它计算成本较高,但在样本有限且需要比较算法时更可靠。拥有独立测试集时,也可在开发完成后只评估一次。
最终模型通常用选定超参数在完整训练数据上重新拟合。测试结果评价的是选择流程与最终训练方案,不是某个内层折模型。
资源预算也是实验条件
训练时长、最大迭代、硬件和并行度会影响候选比较。一个需要更长收敛时间的配置在统一短预算下可能被低估,而允许每个模型任意训练又使成本不可比。
应记录每个试验的数据版本、代码、参数、种子、资源和停止原因。失败试验不能静默删除,否则搜索报告会夸大成功率并隐藏不稳定区域。
并行搜索会竞争磁盘、内存或加速器,运行速度和数值行为可能变化。生产选择还要考虑延迟、内存和维护成本,不能只按离线分数排序。
稳定性比单一冠军更重要
两个配置分数差异小于折间波动时,很难断言冠军真实更好。可以查看均值、方差、各群体表现和学习曲线,并优先选择更简单、成本更低或更稳定的方案。
超参数敏感性也是风险信号。极小变化导致性能剧烈波动,可能说明数据不足、训练不稳定或选择落在狭窄偶然区域。部署前应在邻近配置和多个种子上复核。
模型选定后,阈值和概率校准仍是独立决策。把分类阈值混在模型搜索中可以实现,但必须由内层验证完成,不能在测试集上调到最好。
测试集只用于最终检验
测试结果不理想时回到搜索并再次查看同一测试集,测试集就逐渐变成验证集。需要继续开发时,应获得新的独立测试数据,或明确承认现有数字已经参与选择。
可靠调参不是尝试尽可能多的组合,而是预先定义空间、指标、切分和预算,在训练边界内完成选择,再用独立数据估计整个流程。这样得到的结果才描述模型面对未知样本的能力,而不是搜索过程对一份评估数据的适配程度。
当业务约束会改变时,还应保留若干可接受候选及其成本曲线。线上延迟上限、可用内存或误判代价调整后,可以在已验证候选中重新决策;这比拿测试集再次搜索更能保持评估边界完整。
选择记录应能够复现当时的排序依据和取舍。
资料依据
- scikit-learn Project:Cross-validation: evaluating estimator performance,https://scikit-learn.org/stable/modules/cross_validation.html
- scikit-learn Project:User Guide,https://scikit-learn.org/stable/user_guide.html