机器学习填坑:你知道模型参数和超参数之间的区别吗?
图片来自Bruce Guenter,保留部分权利
翻译 | AI科技大本营(rgznai100)
参与 | 姜沂,焦燕
导语
机器学习中的模型参数和模型超参数在作用、来源等方面都有所不同,而模型超参数常被称为模型参数,这样,很容易对初学者造成混淆。本文给出了模型参数和模型超参数的定义,并进行了对比,指出了二者本质上的区别:模型参数是模型内部的配置变量,可以用数据估计模型参数的值;模型超参数是模型外部的配置,必须手动设置参数的值。
我们在做研究的时候,会碰到很多术语。有时,在不同的研究领域还会出现同样名称的术语。比如,统计学、经济学中经常使用的“模型参数”和“模型超参数”,在机器学习中也同样存在。
机器学习领域中的“模型参数”“模型超参数”在作用、来源等方面都有所不同,初学者如果对二者没有明确的认识,学习起来往往会比较吃力,尤其是那些来自统计学和经济学领域的初学者们。
为了让大家在应用机器学习时,对“参数模型”和“超参数模型”有一个清晰的界定,在这篇文章中,我们将具体讨论这两个术语。
首先,我们来看一下“参数”是什么?
参数作为模型从历史训练数据中学到的一部分,是机器学习算法的关键。
统计学中的“参数”:
在统计学中,你可以假设一个变量的分布,比如高斯分布。高斯分布的两个参数分别是平均值(μ)和标准差(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/
总结
读完这篇文章可以了解模型参数和模型超参数的明确定义和区别。
总而言之,模型参数是从数据中自动估计的,而模型超参数是手动设置的,并用于估计模型参数的过程。
原文链接
http://machinelearningmastery.com/difference-between-a-parameter-and-a-hyperparameter/