选对了算法,模型表现还是一塌糊涂?问题可能出在你没碰过的那堆数字上。
超参数(hyperparameter)是模型训练前人工设定的配置项,直接决定模型怎么学、学多快、学到什么程度。和训练过程中自动学习的模型参数不同,这些数字需要你在启动训练前就拍板。拍错了,再厉害的算法也能跑成废铁。
Grid Search:穷举法的暴力美学
最直观的思路是列个表格,把所有可能的组合试一遍。学习率0.01、0.001、0.0001各跑一轮,批量大小32、64、128全测一通,最后挑验证集表现最好的那组。
这种方法在参数空间小的时候很管用。但变量超过三四个,计算成本会指数级爆炸。想象一下:5个参数,每个10个候选值,就是10万次训练循环。算力 burn 得起,时间也耗不起。
Random Search:用随机性打败维度诅咒
2012年Bergstra和Bengio的论文戳破了一个反直觉的事实:随机采样在多数场景下比网格搜索更高效。不是每个参数都同等重要,随机搜索用更少的试验次数覆盖更广阔的搜索空间。
实际工程中,随机搜索常被当作baseline。它不需要你对参数间的相互作用有先验知识,代码三行就能跑起来。缺点是结果不可复现,两次跑可能给出差异明显的推荐值。
Bayesian Optimization:把调参变成概率游戏
更聪明的玩法是把每次试验的结果喂给高斯过程,让算法自己猜下一轮该测哪组参数。核心思想简单:表现好的区域值得细挖,表现差的区域快速放弃。
这种方法在计算资源紧张、单次训练成本高的场景下优势明显。AutoML工具箱里那些"一键最优"的功能,底层多半是这个逻辑。代价是实现复杂,调参器的超参数本身又成了新问题。
去年Kaggle一份调研显示,冠军方案里手工调参和自动化搜索的比例大概是6:4。工具越来越聪明,但人对业务场景的理解,暂时还找不到替代品。
你上次完整记录下一组超参数的实验日志,是什么时候?
热门跟贴