模型的超参优化
超参数的定义
机器学习提前设置的参数,并不是通过数据训练出来的。
e.g. 学习率,正则化系数等等。
调参方法
- 经验调参:基于功臣三个hide经验,不能保证得到最优的参数组合。
- 网格搜索:本质上是穷举搜索,通过循环遍历得到最优组合,较为耗时。当调优的参数达到一定数量的组合时,会极大增加计算复杂度。
网格搜索需要使用一个专门的python库:GridSearchCV - 随机网络搜索:随机选取一部分参数组合进行验证,耗时相对于网络搜索会显著降低(实际测试结果与网格搜索不相上下)
随机网格搜索,需要进行搜索子空间的采样,采样越多,搜索精度越高,但搜索的时间也会相应的变长,相反,采样越少,虽然会减少搜索时间,但是搜索精度就会降低。 - 贝叶斯调参:给定优化的目标函数,不断添加样本做高斯后验分布。可以通过求导,梯度下降和色块覆盖等方式求解优化函数。根据函数是否光滑,是否连续和可微分决定使用哪种方法。
贝叶斯调参需要安装python库:bayesian-optimization
在这里简单介绍色块方法:
当函数较为复杂时,可以先在曲线上采样,获得不同的潜在曲线簇,然后不断的增加采样点,确定最终的拟合曲线。 - AutoML:采用专门的python库:autogluon.tabular对于模型训练和模型优化部分调参,将更多的时间花在数据清洗和模型的特征工程方面。
注:在使用autogluon.tabular的时候,train_presets参数推荐good_quality,可以更好地平衡计算量与精确度的关系,best_quality时间会非常久,精度的提升也不是非常的显著。