机器学习中的超参数

2025年6月18日 | 阅读 5 分钟

机器学习中的超参数是用户显式定义的,用于控制学习过程的参数。 这些超参数用于改进模型的学习,并且在模型开始学习过程之前设置其值。

Hyperparameters in Machine Learning

在本主题中,我们将讨论机器学习中最重要概念之一,即超参数,它们的示例、超参数调优、超参数的类别,以及机器学习中的超参数与参数有何不同?但在开始之前,让我们先理解超参数。

什么是超参数?

在机器学习/深度学习中,模型由其参数表示。相比之下,训练过程涉及选择由学习算法使用的最佳/最优超参数,以提供最佳结果。那么,这些超参数是什么呢?答案是:“超参数定义为用户显式定义的,用于控制学习过程的参数。”

这里的“超”前缀表示这些参数是用于控制学习过程的顶层参数。超参数的值由机器学习工程师在学习算法开始训练模型之前选择和设置。因此,它们是模型外部的,并且其值在训练过程中不能更改

机器学习中超参数的一些示例

  • kNN 或 K-最近邻算法中的 k
  • 训练神经网络的学习率
  • 训练-测试分割比例
  • 批量大小
  • Epochs 数量
  • 决策树中的分支
  • 聚类算法中的簇数量

参数和超参数的区别?

参数和超参数或模型超参数之间一直存在很大的混淆。因此,为了消除这种混淆,让我们理解它们之间的区别以及它们是如何相互关联的。

模型参数

模型参数是模型内部的配置变量,模型会自行学习它们。例如,线性回归模型中自变量的 W 权重或系数。或者SVM 中自变量的权重或系数、神经网络的权重和偏置、聚类中的簇中心。模型参数的一些要点如下:

  • 模型使用它们进行预测。
  • 它们由模型从数据本身学习得到。
  • 这些通常不是手动设置的。
  • 它们是模型的一部分,是机器学习算法的关键。

模型超参数

超参数是用户显式定义的,用于控制学习过程的参数。模型参数的一些要点如下:

  • 这些通常由机器学习工程师手动定义。
  • 对于给定的问题,无法知道超参数的确切最佳值。最佳值可以通过经验法则或反复试验来确定。
  • 一些超参数的示例是训练神经网络的学习率、KNN 算法中的 K

超参数的类别

超参数大致可以分为两类,如下所示:

  1. 优化超参数
  2. 特定模型的超参数

优化超参数

选择最佳超参数的过程称为超参数调优,调优过程也称为超参数优化。优化参数用于优化模型。

Hyperparameters in Machine Learning

以下是一些流行的优化参数:

  • 学习率 (Learning Rate): 学习率是优化算法中的一个超参数,它控制着在模型权重更新时,模型需要根据估计的误差做出多大的改变。它是构建神经网络时的关键参数之一,并且它决定了模型参数交叉检查的频率。选择最优学习率是一项艰巨的任务,因为如果学习率非常小,它可能会减慢训练过程。另一方面,如果学习率过大,它可能无法正确优化模型。

注意:学习率是优化模型的关键超参数,因此如果只需要调整一个超参数,建议调整学习率。

  • 批次大小 (Batch Size): 为了提高学习过程的速度,训练集被分成不同的子集,称为批次。Epoch 数量 (Number of Epochs): Epoch 可以定义为训练机器学习模型的完整周期。Epoch 代表一个迭代学习过程。Epoch 的数量因模型而异,并且各种模型都是通过一个以上的 epoch 创建的。为了确定正确的 epoch 数量,需要考虑验证误差。Epoch 的数量会一直增加,直到验证误差减少。如果连续的 epoch 没有出现误差减少的改善,则表明应该停止增加 epoch 的数量。

特定模型的超参数

涉及模型结构的超参数称为特定模型的超参数。如下所示:

  • 隐藏单元数量 (A number of Hidden Units): 隐藏单元是神经网络的一部分,指的是神经网络中输入和输出单元之间的处理器层组成的组件。

指定神经网络的隐藏单元数量超参数很重要。它应该介于输入层的大小和输出层的大小之间。更具体地说,隐藏单元的数量应该是输入层大小的 2/3,加上输出层的大小。

对于复杂函数,需要指定隐藏单元的数量,但它不应该导致模型过拟合。

  • 层数 (Number of Layers): 神经网络由垂直排列的组件组成,称为层。主要有输入层、隐藏层和输出层。3 层神经网络比 2 层网络具有更好的性能。对于卷积神经网络,更多的层可以构建更好的模型。

结论

超参数是在将机器学习算法应用于数据集之前,显式定义的用于控制学习过程的参数。它们用于指定模型的学习能力和复杂性。一些超参数用于模型优化,例如批次大小、学习率等,一些则特定于模型,例如隐藏层数量等。