机器学习超参数调优

Posted 4privetdrive

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习超参数调优相关的知识,希望对你有一定的参考价值。

超参数调优方法

网格搜索

  通过查找搜索范围内的所有的点来确定最优值。如果采用较大的搜索范围以及较小的步长,网络搜索有很大概率找到全局最优值。然而,这种搜索方案十分消耗计算资源和时间,特别是需要调优的超参数比较多的时候,因此,在实际应用中,网格搜索法一般会使用较广的搜索范围和步长,来寻找全局最优值可能的位置;然后会逐渐缩小搜索范围和步长,来寻找更精确的最优值。这种方案可以降低所需的时间和计算量,但由于目标函数一般是非凸的,所以很可能会错过全局最优值。

随机搜索

  理论依据是如果样本集足够大,那么通过随机采样也能大概率地找到全局最优值,或其近似值。随机搜索一般会比网格搜索要快一些,但是和网格搜索的快速版一样,它的结果也是没法保证的。

贝叶斯优化算法 

  网格搜索和随机搜索在测试一个新点时,会忽略前一个点的信息;而贝叶斯优化算法则充分利用了之前的信息。贝叶斯优化算法通过对目标函数形状进行学习,找到使目标函数向全局最优值提升的函数。具体来说,它学习目标函数形状的方法是,首先根据先验分布,假设一个搜集函数;然后,每一次使用新的采样点来测试目标函数时,利用一个这个信息来更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最值最可能出现的位置的点。

  对于贝叶斯优化算法,需要注意的是,一旦找到了一个局部最优值,它会在该区域不断采样,所以很容易陷入局部最优值。为了弥补这个缺陷,贝叶斯优化算法会在搜索和利用之间找到一个平衡点,“搜索”就是在还未取样的区域获取采样点;而“利用”则是根据后验分布在最可能出现全局最值的区域进行采样。

以上是关于机器学习超参数调优的主要内容,如果未能解决你的问题,请参考以下文章

机器学习 | 特征工程- 超参数调优方法整理

Spark2.0机器学习系列之2:基于Pipeline交叉验证ParamMap的模型选择和超参数调优

Python机器学习及实践——进阶篇6(超参数搜索)

Python机器学习及实践——进阶篇6(超参数搜索)

机器学习100天(二十九):029 K折交叉验证

机器学习100天(二十九):029 K折交叉验证