常用的调优方法有:网格搜索、随机搜索、贝叶斯优化方法。
参数搜索包含3个要素
- 目标函数
- 搜索范围
- 搜索步长等其他参数
1 网格搜索
- 网格搜索通过查找搜索范围内所有的点来确定最优值。如果采用较大的范围和较小的步长,有很大的概率找到全局最优。
- 但是这个方法消耗资源和时间严重,特别是超参数比较多的时候
- 实际应用中,网格搜索一般会使用较大的搜索范围和步长确定最优值可能出现的位置,然后逐渐缩小范围和步长来寻找精确的最优值,但目标是函数一般是非凸的,容易错过最优值
2 随机搜索
- 随机搜索不再测试上下界内的所有值,而是在搜索范围内随机选点。
- 依据是,当样本数量非常大的时候,通过随即搜索也可以找到最优值或近似值。
3 贝叶斯优化算法
- 贝叶斯优化在测试一个新的点时,会考虑前一个点的信息。
- 方法:首先根据先验分布假设一个搜集函数;然后每次使用新的采样点来测试目标函数时,利用这个信息更新目标函数的先验分布;最后,算法测试由后验分布给出的全局最优值最可能出现的位置的点。
- 注意:一旦找到了局部最优值,会在该区域一直采样,很容易陷入局部最优,为了弥补这个缺陷,贝叶斯优化算法会在探索和利用之间找到一个平衡点,探索是指在还未取样的区域进行采样,利用是根据后验分布在最可能出现全局最优值的区域进行采样。
欢迎关注微信公众号(算法工程师面试那些事儿),本公众号聚焦于算法工程师面试,期待和大家一起刷leecode,刷机器学习、深度学习面试题等,共勉~