【机器学习】参数与超参数

机器学习中的模型参数和模型超参数在作用、来源等方面都有所不同,而模型超参数常被称为模型参数,这样,很容易对初学者造成混淆。本文给出了模型参数和模型超参数的定义,并进行了对比,指出了二者本质上的区别:模型参数是模型内部的配置变量,可以用数据估计模型参数的值;模型超参数是模型外部的配置,必须手动设置参数的值。

 

我们在做研究的时候,会碰到很多术语。有时,在不同的研究领域还会出现同样名称的术语。比如,统计学、经济学中经常使用的“模型参数”和“模型超参数”,在机器学习中也同样存在。

 

机器学习领域中的“模型参数”“模型超参数”在作用、来源等方面都有所不同,初学者如果对二者没有明确的认识,学习起来往往会比较吃力,尤其是那些来自统计学和经济学领域的初学者们。

 

为了让大家在应用机器学习时,对“参数模型”和“超参数模型”有一个清晰的界定,在这篇文章中,我们将具体讨论这两个术语。

 

首先,我们来看一下“参数”是什么?

 

参数作为模型从历史训练数据中学到的一部分,是机器学习算法的关键 。

 

统计学中的“参数”:

 

在统计学中,你可以假设一个变量的分布,比如高斯分布。高斯分布的两个参数分别是平均值(μ)和标准差(sigma)。这在机器学习中是有效的,其中这些参数可以用数据估计得到并用作预测模型的一部分。

 

 编程中的“参数”:

 

编程中可以将参数传递给函数。在这种情况下,参数是一个函数参数,可以有一个值范围。在机器学习中,您正在使用的具体模型就是函数,需要参数才能对新数据进行预测。

 

“参数”和“模型”有什么关系?

 

根据经典的机器学习文献,可以将模型看作假设,而参数是根据特定的数据集对假设进行的具体调整。

 

模型是否具有固定或可变数量的参数,决定了模型是“参数”模型或“非参”模型。

 

什么是模型参数?

 

简单来说,模型参数就是模型内部的配置变量,可以用数据估计它的值。

 

具体来讲,模型参数有以下特征:

 

  • 进行模型预测时需要模型参数。

  • 模型参数值可以定义模型功能。

  • 模型参数用数据估计或数据学习得到。

  • 模型参数一般不由实践者手动设置。

  • 模型参数通常作为学习模型的一部分保存。

 

通常使用优化算法估计模型参数,优化算法是对参数的可能值进行的一种有效搜索。

 

模型参数的一些例子包括:

 

  • 人造神经网络中的权重。

  • 支持向量机中的支持向量。

  • 线性回归或逻辑回归中的系数。

 

什么是模型超参数?

 

模型超参数是模型外部的配置,其值不能从数据估计得到。

 

具体特征有:

 

  • 模型超参数常应用于估计模型参数的过程中。

  • 模型超参数通常由实践者直接指定。

  • 模型超参数通常可以使用启发式方法来设置。

  • 模型超参数通常根据给定的预测建模问题而调整。

 

怎样得到它的最优值: 对于给定的问题,我们无法知道模型超参数的最优值。但我们可以使用经验法则来探寻其最优值,或复制用于其他问题的值,也可以通过反复试验的方法。

 

模型超参数的一些例子包括:

 

  • 训练神经网络的学习速率。

  • 支持向量机的C和sigma超参数。

  • k邻域中的k。

 

“模型参数”和“模型超参数”

 

二者的联系:

 

当针对特定问题调整机器学习算法时,例如在使用网格搜索或随机搜索时,你将调整模型或命令的超参数,以发现一个可以使模型预测最熟练的模型参数。许多模型中重要的参数无法直接从数据中估计得到。例如,在K近邻分类模型中...这种类型的模型参数被称为调整参数,因为没有可用的分析公式来为其计算一个合适的值。

- 第64-65页,应用预测建模,2013

 

区分:

 

模型超参数通常被称为模型参数,这种叫法很容易让人产生误解。解决这个问题的一个很好的经验法则如下:如果你必须手动指定一个“模型参数”,那么它可能就是一个模型超参数。

 

进一步阅读 

  • 超参数-维基百科 - https://en.wikipedia.org/wiki/Hyperparameter

  • 什么是机器学习中的超参数?Quora - https://www.quora.com/What-are-hyperparameters-in-machine-learning

  • 模型超参数和模型参数有什么区别?StackExchange- https://datascience.stackexchange.com/qu

  • 什么是超参数?Reddit -https://www.reddit.com/r/MachineLearning/comments/40tfc4/what_is_considered_a_hyperparameter/

 

总结

读完这篇文章可以了解模型参数和模型超参数的明确定义和区别。

总而言之,模型参数是从数据中自动估计的,而模型超参数是手动设置的,并用于估计模型参数的过程。

### 超参数的概念 在机器学习中,模型通常包含两类参数:一类是从数据中学到的参数Parameter),另一类是由人工设定的超参数(Hyperparameter)。超参数是指那些无法从数据中自动推导出来的参数,它们需要由研究者手动指定[^2]。这类参数决定了模型的学习过程以及其复杂度。 超参数的选择对于模型表现至关重要。即使是最先进的模型架构,在不合适的超参数下也可能表现出较差的效果。因此,合理地调整超参数成为提高模型性能的关键步骤之一[^3]。 --- ### 常见的超参数调整方法 #### 1. **网格搜索 (Grid Search)** 网格搜索是一种经典的超参数优化技术。它通过对预定义的超参数空间进行全面扫描来寻找最优组合。具体来说,这种方法会穷举所有可能的超参数组合,并评估每种组合下的模型性能。尽管该方法简单易懂且容易实现,但它的时间开销较大,尤其是在高维超参数空间中[^4]。 #### 2. **随机搜索 (Random Search)** 网格搜索相比,随机搜索不会遍历整个超参数空间,而是在给定范围内随机采样若干组超参数进行测试。研究表明,在某些情况下,随机搜索可以更高效地找到接近最优解的结果,尤其是当部分超参数的影响较小时。 #### 3. **贝叶斯优化 (Bayesian Optimization)** 贝叶斯优化利用概率模型构建目标函数的代理模型,并通过迭代更新的方式逐步逼近全局最优点。相比于传统的网格搜索和随机搜索,贝叶斯优化能够更加智能化地探索超参数空间,减少不必要的计算资源浪费[^1]。 #### 4. **基于强化学习的方法** 近年来,随着深度强化学习的发展,一些新的超参数调整策略被提出。例如,可以通过训练一个控制器网络来自动生成适合特定任务的最佳超参数配置方案。 #### 5. **元学习 (Meta-Learning)** 元学习旨在让算法具备快速适应新任务的能力。在这种背景下,也可以将其应用于超参数调节领域——即通过分析历史实验记录总结规律并预测当前场景下的理想设置值。 --- ### 实现示例 以下是使用Python中的`sklearn`库执行网格搜索的一个基本例子: ```python from sklearn.model_selection import GridSearchCV from sklearn.svm import SVC from sklearn.datasets import load_iris # 加载数据集 data = load_iris() X, y = data.data, data.target # 定义支持向量机分类器及其候选超参数范围 param_grid = {'C': [0.1, 1, 10], 'gamma': [1, 0.1, 0.01]} model = SVC() # 创建GridSearch对象 grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=3) # 执行搜索操作 grid_search.fit(X, y) print(f"Best Parameters: {grid_search.best_params_}") ``` 上述代码展示了如何针对SVM模型的不同核系数(`C`)及正则化项强度(`gamma`)实施自动化筛选流程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值