模型调参与AutoML
一、调参在竞赛中的定位
| 维度 | 说明 |
|---|---|
| 调参时机 | 调参应放在最后阶段,不是首要步骤 |
| 优先级 | 赛题理解 > 数据分析 > 特征工程 > 模型选择 > 模型集成 > 调参 |
| 收益递减 | 随着比赛推进,每次尝试的精度收益逐渐减小,调参的收益通常最小 |
| 避免盲目 | 不是所有比赛都需要调参,有些比赛数据理解和特征工程就足够 |
| 验证集依赖 | 调参必须依赖验证集,验证集打分是调参的基础 |
二、人工调参
| 维度 | 说明 |
|---|---|
| 方法 | 人工给定几组超参数组合,分别训练后选择验证集精度最优的 |
| 人的作用 | 人负责选择初始超参数空间,以及根据结果决定下一步调整方向 |
| 优点 | 靠谱、资源消耗少、基于领域知识有针对性 |
| 知识要求 | 需要了解每个超参数如何影响模型(增加拟合能力还是减少过拟合) |
| 适用场景 | 超参数数量少、搜索空间小、对模型有较深理解时 |
三、网格搜索(Grid Search)
| 维度 | 说明 |
|---|---|
| 方法 | 对每个超参数给定离散取值,穷举所有组合进行搜索 |
| 搜索空间 | 若4个超参数各有3个取值,则需搜索3^4=81种组合 |
| 交叉验证 | 每组超参数需跑K折交叉验证,总训练次数 = 组合数 × K |
| 优点 | 搜索均匀,不会遗漏任何组合 |
| 缺点 | 计算量大,81组 × 5折 = 405次训练 |
| 实现 | sklearn的GridSearchCV可直接使用 |
四、随机搜索(Random Search)
| 维度 | 说明 |
|---|---|
| 方法 | 对每个超参数给定取值范围,从中随机采样组合 |
| 与网格搜索区别 | 粒度不同、随机性不同,搜索不如网格均匀 |
| 优点 | 可在更大范围内搜索,不受离散取值限制 |
| 缺点 | 可能遗漏最优组合,随机性导致结果不稳定 |
| 实现 | sklearn的RandomizedSearchCV可直接使用 |
五、贝叶斯优化(Bayesian Optimization)
| 维度 | 说明 |
|---|---|
| 核心思想 | 在已知若干超参数-精度对应关系的基础上,建模预测下一个更优点可能的位置 |
| 建模过程 | 用已有数据点构建代理模型(如高斯过程),预估超参数空间与精度的关系曲线 |
| 搜索策略 | 不是盲目搜索,而是基于已有结果智能选择下一个搜索点 |
| 初始化 | 通常先随机初始化5个点作为已知点,然后迭代优化 |
| 优点 | 搜索空间比网格/随机搜索小,减少无效搜索 |
| 缺点 | 计算量仍较大,搜索空间大时仍需费很多时间 |
| 实现 | bayesian-optimization库、Optuna等 |
| 连续值处理 | 贝叶斯优化搜索得到的是连续值,需转换为整数(如树深度、树数量) |
六、LightGBM调参示例
| 维度 | 说明 |
|---|---|
| 关键超参数 | 学习率(learning_rate)、树深度(max_depth)、叶子节点数(num_leaves)、树数量(n_estimators) |
| LightGBM CV | 使用lgb.cv可直接输出训练集AUC和5折AUC方差,方便评估 |
| 调参顺序 | 先调学习率和树数量,再调树深度和叶子节点数 |
| 学习率范围 | 通常0.01到0.1之间 |
| 树深度范围 | 通常3到8之间 |
| 叶子节点数 | 通常31到127之间,与树深度相关 |
七、随机种子(Seed)的作用
| 维度 | 说明 |
|---|---|
| 本质作用 | 固定随机性,确保实验可复现 |
| 对精度影响 | 对模型精度影响相对较小,不如学习率、Batch Size等参数影响大 |
| 调参建议 | 优先调整非Seed参数,Seed调优放在最后 |
| 多样性利用 | 不同Seed训练的模型可作为集成学习的多样性来源 |
八、AutoML工具
| 工具 | 特点 | 适用场景 |
|---|---|---|
| Keras Tuner | 深度学习模型的超参数搜索 | 深度学习 |
| Optuna | 通用超参数优化框架,支持多种搜索算法 | 轻量级搜索 |
| AutoGluon | 自动化机器学习,自动选择模型和调参 | 快速出结果 |
| TPOT | 基于遗传算法的AutoML工具 | Pipeline搜索 |
| NNI (Microsoft) | 支持多种搜索算法,可视化 | 通用超参搜索 |
九、调参的注意事项
| 维度 | 说明 |
|---|---|
| 避免过拟合 | 在验证集上调参可能导致过拟合验证集,需在测试集上最终验证 |
| 时间成本 | 调参耗时较长,需权衡时间投入与精度收益 |
| 早停机制 | 使用Early Stopping可减少训练时间,自动找到最优迭代轮数 |
| 并行搜索 | 网格搜索和随机搜索可并行执行,加速搜索过程 |
| 记录管理 | 记录每次调参的超参数组合和对应精度,避免重复搜索 |
十、高级调参方法
Hyperband
| 维度 | 说明 |
|---|---|
| 核心思想 | 基于逐半淘汰(Successive Halving)的资源分配策略,快速淘汰差配置 |
| 工作方式 | 先用少量资源(如1个epoch)评估大量配置,保留表现好的,逐步增加资源 |
| 优势 | 比网格搜索和随机搜索快数倍,自动平衡探索与利用 |
| 参数 | max_iter(最大资源)、eta(淘汰比例,通常3) |
| 适用场景 | 训练成本高的深度学习模型 |
BOHB(Bayesian Optimization + Hyperband)
| 维度 | 说明 |
|---|---|
| 核心思想 | 结合贝叶斯优化和Hyperband,用贝叶斯模型指导Hyperband的采样 |
| 优势 | 兼具Hyperband的效率和贝叶斯优化的智能搜索 |
| 实现 | HpBandSter库 |
| 适用场景 | 大规模超参搜索,搜索空间大时 |
ASHA(Asynchronous Successive Halving)
| 维度 | 说明 |
|---|---|
| 核心思想 | Hyperband的异步版本,多组配置并行训练,异步淘汰 |
| 优势 | 比同步Hyperband资源利用率更高 |
| 实现 | Ray Tune内置 |
| 适用场景 | 分布式训练环境 |
Population Based Training(PBT)
| 维度 | 说明 |
|---|---|
| 核心思想 | 维护一组模型种群,训练过程中差的模型从好的模型复制权重并变异超参 |
| 变异操作 | 学习率乘以0.8或1.2,dropout增减0.1等 |
| 优势 | 训练和调参同时进行,无需单独调参阶段 |
| 实现 | Ray Tune / PBT实现 |
| 适用场景 | 长时间训练的模型,如强化学习 |
调参方法选择
| 场景 | 推荐方法 | 理由 |
|---|---|---|
| 快速实验 | 人工调参 | 基于经验快速定位 |
| 小搜索空间 | 网格搜索 | 确保不遗漏 |
| 大搜索空间 | 贝叶斯优化(Optuna) | 智能搜索 |
| 训练成本高 | Hyperband / BOHB | 快速淘汰差配置 |
| 分布式环境 | ASHA + Ray Tune | 并行高效 |
| 长时间训练 | PBT | 训练调参一体化 |