什么时候可以将实体称为超参数?

人工智能 机器学习 定义 超参数
2021-10-29 15:41:24

据我所知,任何可以通过训练算法学习的实体都可以称为参数。仅仅因为这个原因,神经网络的权重被称为参数。

但我对超参数的资格有疑问。

据我所知,超参数是一个需要在训练算法之外学习的实体。但是,如果我想遵循这个定义,很多实体都会出现。

例如,选择神经网络的类型、层数、每层神经元的数量、批量归一化层的存在、激活函数的类型、参数的数量、参数的类型(整数、浮点数等),时期数、批量大小、优化器类型、学习率等,我可以列出很多这样的实体。

可以将任何需要在训练算法之外学习的东西称为超参数吗?

2个回答

在较早的机器学习文献中,给定的超参数定义与贝叶斯统计中使用的定义相同,即

超参数是先验分布的参数

例如,在 Christopher M. Bishop 的“模式识别和机器学习”(Springer,2006)中,超参数在以下段落(第 30 页)中介绍

现在让我们朝着更贝叶斯方法迈出一步,并在多项式系数上引入先验分布w. 为简单起见,让我们考虑以下形式的高斯分布

p(wα)=N(w0,α1I)=(α2π)(M+1)/2exp{α2wTw}
在哪里α是分布的精度,并且M+1是向量中的元素总数wMth 阶多项式。变量如α控制模型参数分布的称为超参数

然而,在现代机器学习文献中,这些定义变得更具操作性。例如,在 Ian Goodfellow、Yoshua Bengio、Aaron Courville - Deep Learning (2016) 中,我们可以阅读

大多数机器学习算法都有超参数,我们可以使用这些设置来控制算法的行为。超参数的值不会被学习算法本身调整(尽管我们可以设计一个嵌套的学习过程,其中一个学习算法学习另一个学习算法的最佳超参数)。

因此,尽管我个人认为对贝叶斯统计的旧参考更具技术性和精确性,但仍有解释的余地​​。从该定义中可以清楚地看出,每个不属于预测阶段使用的参数但仅在训练期间使用的变量确实是超参数。此外,很明显,一旦模型训练达到收敛,超参数的选择就会影响学习参数的分布。

为了详细说明现代定义,我不喜欢深度学习的例子是缺乏对“模型行为”含义的进一步解释。它是指训练期间的权重更新吗?最终指标得分?两者兼而有之?换句话说,超参数应该影响什么?当然,这些松散的定义并没有阻止机器学习从业者在正确的地方使用超参数,但对于像这个问题出现的疑问也就不足为奇了。

可以将任何需要在训练算法之外学习的东西称为超参数吗?

我想是的,是的。

就个人而言,我会保留这个术语来讨论我可以在任何给定实验中自由选择的值,但这些值并不是我使用的模型类直接从训练数据中学到的。或者可能出于实际目的有更严格的限制,为了实现从学习代理获得良好指标的目标,我愿意调查和改变的事情——从实际的角度来看,我为某事贴上什么标签并不重要如果我不考虑更改它,可以更改。

我对给定实验不感兴趣的选择可能是执行不同类型搜索的其他人的超参数。

离散的顶级选择,例如是否使用线性回归、XGBoost 和深度神经网络在技术上可能被视为超参数,复杂的搜索算法甚至可以自动测试它们。但是,我很少看到使用术语超参数来讨论这种选择。