机器学习 超参数优化方法

机器学习 超参数优化方法

机器学习模型严重依赖于众多可调整的参数,称为超参数。找到这些超参数的最佳组合可以极大地提升模型的性能和预测准确性。本文将深入探讨机器学习中的超参数优化技术。它们将能够使用机器学习算法有效地解决复杂的问题。选择适当的参数值对模型学习模式以及对未见数据的泛化能力都有重要影响。

超参数

超参数定义了机器学习算法的行为和架构,而不是从训练数据本身中学习得到的。

常用的超参数

  • 学习率: 该参数影响模型内部权重每次更新时所融入的信息量。

  • 正则化强度: 通过对复杂模型表示施加惩罚来控制过拟合。

  • 隐藏层或单元个数: 在神经网络中分别决定网络的深度和宽度。

  • 核函数类型或大小: 这些超参数在支持向量机(SVM)中起到了重要作用,定义了输入样本之间的相似性度量函数。

  • 树的深度或分割准则: 具体涉及决策树或随机森林,它们管理着树结构的构建。

网格搜索

网格搜索涉及使用交叉验证对所有相关超参数在预定义范围内的所有可能组合进行彻底评估。

考虑使用两个可调参数(正则化强度C和核系数gamma)拟合SVM分类器。网格搜索会彻底评估每个组合,比如{C = 0.1,gamma = 0}和{C = 0.1,gamma = 0.01},以便我们可以根据交叉验证性能指标(如准确率或F1分数)选择最佳值。

示例―SVM的网格搜索

伽马 0.1
0.01 {C = 0.1, gamma = 0.01}
0.1 {C = 0.1, gamma = 0.01}
1 {C = 0.1, gamma = 1}

随机搜索

随机搜索通过随机地从定义范围内抽样超参数组合,来补充网格搜索的不足。通过设置迭代次数,用户可以控制探索-利用的权衡。

考虑一个具有学习率(η)和隐藏单元数量等参数的神经网络模型,随机搜索通过随机选择组合,在超参数空间中更高效地探索,有可能在没有耗时的全面评估的情况下发现最优设置。

示例-神经网络的随机搜索

Number of hidden units Learning rate (η)
100 0.1
200 0.01
300 0.001

贝叶斯优化

贝叶斯优化利用概率建模来基于先前评估的参数集形成目标函数的先验分布。它利用这些模型迭代智能地建议最大化期望改善的新配置,以提高性能指标。

通过连续的建议-评估循环,决策树的关键超参数(如树的深度或分割准则)以资源高效的方式进行微调,同时避免在所有可能的组合中进行蛮力评估。

示例 – 决策树的贝叶斯优化

Splitting Criteria Tree depth
Gini 1
Gini 2
Gini 3
Gini 4
Gini 5
Entropy 1
Entropy 2
Entropy 3
Entropy 4
Entropy 5

进化算法

进化算法从自然进化原理中汲取灵感,如选择和突变,以有效地引导复杂空间中的探索−应用遗传算法等技术可以根据问题复杂性或时间限制自动调整计算资源。

差分进化

差分进化是另一种基于进化算法的流行技术,它使用向量差异而不是常见于遗传算法的离散突变。

它从种群初始化开始,然后通过交叉、突变和交叉来创建新的种群来探索和收敛于全局最优解。

基于梯度的优化

利用梯度信息使我们能够使用基于梯度的优化算法,如随机梯度下降(SGD)、Adam优化器或其他变种,在训练周期中有效地同时更新模型参数和超参数。

遗传算法

受自然进化原理的启发,遗传算法模拟了交叉和突变等生物过程,以隐式地优化高度非线性函数,这些函数隐含了各种超参数之间的复杂关系。

粒子群优化

借鉴群体智能的灵感,粒子群优化模拟了一群鸟或一群鱼寻找最优解的行为。每个候选解都被表示为探索和利用搜索空间的粒子,通过与其他粒子的交互来实现。

模拟退火

模拟退火利用冶金学原理,在超参数调优过程中平衡探索和利用。它随着时间逐渐降低”温度”,允许偶尔接受较差的解,以避免陷入局部最优。

基于树的Parzen估计(TPE)

TPE使用核密度估计构建了两个模型:一个用于目标函数的最大值,另一个用于失败尝试的概率分布。然后,它根据对性能改进的预期选择超参数,同时迭代地收集新的信息。

集成技术

集成方法结合了具有不同超参数集的多个模型,通过利用每个组件贡献的多样化视角增强模型的鲁棒性和泛化能力。通过智能地融合各种模型的预测,技术如装袋、提升或堆叠可以实现更优异的性能。

自动超参数调优库

几个先进的软件库,如Optuna、Hyperopt或AutoML,提供了配备内置技术的强大框架,用于高效的超参数优化。这些库通常提供用户友好的API接口,并自动化了系统化探索中的许多重复任务。

结论

超参数优化对于释放机器学习的真正潜力至关重要。网格搜索、随机搜索和贝叶斯优化等技术使我们能够系统地探索广阔的参数空间,并发现最佳设置,同时提高模型的准确性和性能。随着从清晰的示例中提供的帮助,从业人员将这些技术纳入工作流程中。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

机器学习 精选笔记