什么是“超参数”?跟“参数”有何不同?

前言

临床研究中机器学习的应用越来越多了,由此产生的跨界问题也不少。来自一位临床朋友的修回意见,"What are the hyper-parameters for LASSO regression?",这个超参数(hyper-parameter)把这位朋友吓坏了,因为他连参数(parameter)是什么也不知道所以下面找了这篇文章给大家科普一下。

在机器学习领域,通常会听到很多名词,而且每个人用的可能有所差别,不太统一。如果从其他领域跨入机器学习领域,甚至会出现同一个名词在两个不同领域有不同理解的情况

比如今天我们要讨论的题目中提到的两个名词,在入门机器学习时可能会被混淆,尤其是对于那些来自统计学或经济学领域的朋友。

What is a Model Parameter?

模型参数指的是模型内部的配置变量(configuration variable),可通过数据来估计其取值。

在模型预测时要求提供

是模型对于研究问题的价值体现

从数据中估计或学习得到

通常不被人为设定

常作为最终模型的一部分被保存

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

在经典的机器学习文献中,我们可以把模型看作是假设,把参数看作是针对某特定数据实现假设的工具。

通常来说,模型参数是算法考虑所有可能取值后得到的最优解。

统计学:在统计学中,我们可能会为一个变量假设服从某个分布,如高斯分布。高斯分布具有两个参数,分别是均数和标准差。这样的理解在机器学习中也是成立的,这些参数可以通过数据进行估计,并且作为预测模型的一部分。

编程:在编程中,我们可能把参数传递给函数。在这个情况下,参数作为函数变量(function argument)可以取一系列值中的一个。在机器学习中,我们使用模型就是在外部数据中进行预测所需的函数和参数。

模型具有固定个数的参数,叫做参数模型,若具有可变个数的参数,则为非参数模型。

下面是几个关于模型参数的例子:

人工神经网络的权重

支持向量机中的支持向量

线性回归及logistic回归中的回归系数

What is a Model Hyperparameter?

模型超参数指的是模型外部的配置变量,不能通过数据来估计其取值。

常用于帮助估计模型参数的过程

通常由人为设定

可用探索的方法对其进行设定

可针对给定的预测建模问题对超参数进行调整

我们不能获得针对某个特定问题的模型参数的最优取值。但我们可以采用经验法则,参考用于其他问题的取值,或者通过反复尝试寻找最佳值。

当机器学习算法用于解决特定问题时,我们正是采用规则搜寻或者随机搜寻的方式,对模型的超参数进行调整,来发现模型的参数,从而得到最优的预测。

下面是摘自书籍《Applied Predictive Modeling》(2013)第 64-65页关于超参数的一段话:

“Many models have important parameters which cannot be directly estimated from the data. For example, in the K-nearest neighbor classification model … This type of model parameter is referred to as a tuning parameter because there is no analytical formula available to calculate an appropriate value.”

从上面的描述可知,模型超参数有时被叫做模型参数,如何能克服这种混淆呢?这里给出一个较好的经验法则:

If you have to specify a model parameter manually then

it is probably a model hyperparameter.

下面是几个关于模型超参数的例子:

训练神经网络的学习率(learning rate)

支持向量机中的C(惩罚系数)和sigma(与支持向量的个数有关)

k最近邻算法(k-nearest neighbors)中的k(邻居个数)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180309B09KF800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券