Manual Hyperparameter Tuning
-
从一个不错的baseline开始,比如质量比较高的工具包或论文里面的报告
-
调整一个参数,重新训练模型来观察变化
-
重复多次来获得一些见解
- 哪种超参重要
- 模型对于超参的敏感性,比如Adam比SGD好调参,对参数的敏感没那么强,但可能效果差一点
- 比较好的范围是什么
-
需要细心管理实验
-
保存训练日志和参数去比较,分享或是重复
- 最简单的方法就是把日志保存在txt,关键指标放在excel里面
- 现在有更好的选择,比如tensorboard和weight & bias
-
重复实验是很难的,主要和以下相关
- 环境(硬件和库),python本身兼容性有一定问题
- 代码,怎么调用库等等
- 随机种子,一般是数据的随机性在里面,尽量用更稳定的方法,实在做不到可以ensemble
Automated Hyperparameter Tuning
- 计算成本指数下降,人力成本上升
- 一个标准的ML任务每次训练开销(其实很多任务没这么大)
- 树:cpu 10分钟;神经网络:gpu 1小时
- 1M的用户日志,10k图像
- 数据科学家开销的每天>$500
- 假设给1000次机会试算法
- 通常能打败90%的数据科学家
Automated Machine Learning(AutoML)
- 对机器学习每个步骤自动调整来解决真实世界问题:数据清洗,特征提取,模型选择…
- 参数优化(HPO):通过搜索算法找到一组好的超参数
- 神经架构搜索(NAS):构建一个好的神经网络模型