Answers:
超参数和参数通常可以互换使用,但是它们之间是有区别的。如果无法直接在估算器中学习,则称其为“超参数”。但是,“参数”是更笼统的术语。当您说“将参数传递给模型”时,通常意味着将超参数与一些其他参数组合在一起,这些参数与您的估计量不直接相关,但对于模型是必需的。
例如,假设您正在sklearn中构建SVM分类器:
from sklearn import svm
X = [[0, 0], [1, 1]]
y = [0, 1]
clf = svm.SVC(C =0.01, kernel ='rbf', random_state=33)
clf.fit(X, y)
在上面的代码中,SVM实例是您模型的估计量,在这种情况下,超参数是C
和kernel
。但是您的模型还有另一个参数,它不是超参数,而是random_state
。
random_state
是一个参数。我认为这是令人误解的,因为(请参阅其他答案);模型学习一个参数,而我们指定超参数 ; 喜欢random_state=33
。但是,random_state
也不是一个超参数,因为没有最佳价值random_state
。看到Jason Brownlee的讨论在这里
超参数是我们提供给模型的参数,例如:神经网络中隐藏节点和层的数量,输入特征,学习率,激活函数等,而参数是机器将学习的参数,例如权重和偏差。
在机器学习中,带有参数和超参数的模型看起来像,
其中是参数,H是超参数。D是训练数据,Y是输出数据(分类任务中的分类标签)。
训练过程中,目标是找到参数的估计Φ优化一些损失函数大号我们已经指定。因为模型中号和失功能大号基于ħ,然后由此产生的参数Φ也依赖于超参数ħ。
超参数在训练过程中不是“学习”的,但这并不意味着它们的值是不变的。通常情况下,超参数是固定的,我们认为只是模型中号代替,中号^ h。在此,超参数也可以被认为是先验参数。
混乱的源从使用的茎和修改超参数的ħ除了训练例程,很明显,参数期间Φ。在训练过程中可能会有多种动机来修饰H。一个示例是在训练过程中更改学习率,以提高优化例程的速度和/或稳定性。
区别的重要的一点是,结果,比如说标签预测,是基于模型参数Φ,而不是超参数ħ。
但是,该区别有一些警告,因此线条模糊。考虑例如群集的任务,特别是高斯混合模型(GMM)。此处设定的参数是,其中ˉ μ被设定的Ñ集群装置和ˉ σ设定的Ñ标准偏差,对于Ñ高斯内核。
您可能已经在这里直观地识别了超参数。它是簇的数目。因此,H = { N }。通常,使用数据D的一小部分子样本,将簇验证用于确定N先验。但是,我也可以基于某些准则修改我的高斯混合模型的学习算法,以在训练期间修改核数N。在这种情况下,超参数,Ñ变为设定参数的一部分Φ = { ˉ μ,ˉ σ,Ñ }。
然而,应该指出的是,结果,或预测的值,对于一个数据点在数据d是基于ģ 中号中号(ˉ μ,ˉ σ)和不Ñ。也就是说,N个高斯核中的每一个将基于d与它们各自的μ和自身σ的距离,为d贡献一些似然值。这里没有明确涉及“参数” N,因此可以说它不是“真正”的模型参数。
简介:由于参数和超参数在设计模型和损失函数L时从业人员所采用的方式而引起的细微差别。我希望这有助于消除这两个词之间的歧义。
从数据中自动估计模型参数,并手动设置模型超参数,并将其用于过程中以帮助估计模型参数。
模型超参数通常称为参数,因为它们是机器学习的一部分,必须手动设置和调整。
基本上,参数是“模型”用于进行预测等的参数。例如,线性回归模型中的权重系数。超参数是有助于学习过程的参数。例如,K均值中的簇数,岭回归中的收缩因子。它们不会出现在最终的预测结果中,但对学习步骤后参数的外观有很大影响。
请参阅:https : //machinelearningmastery.com/difference-between-a-parameter-and-a-hyperparameter/