9.1 模型调参【stanford-cs329p】


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):构建一个好的神经网络模型