在机器学习中,超参数(英语:Hyperparameter)是事先给定的,用来控制学习过程的参数。而其他参数(例如节点权重)的值是通过训练得出的。
超参数可分为模型超参数(Model Hyperparameters)和算法超参数(Algorithm Hyperparameters)。模型超参数主要用于模型选择,其无助于学习训练集特征;而算法超参数理论上对模型的性能没有影响,而会影响学习的速度和质量。一个典型的模型超参数是神经网络的拓扑结构及大小;而学习率和批量大小(Batch size)、小批量大小(Mini-Batch size)则是典型的算法超参数。
不同的模型训练算法需要用到不同的超参数,一些简单的算法(如普通最小二乘回归)不需要超参数。给定超参数,训练算法会从数据中学习参数。例如,LASSO算法在普通最小二乘回归中加入正则化超参数,在通过训练算法估计参数之前,必须先设置这个超参数。[1]
考虑因素
对模型的训练和测试所需的时间可能取决于其超参数的选择。[2]
一个超参数通常是实数或是整数,因此存在混合型的优化问题。[2]一些超参数的选取依赖于其他参数的值(例如神经网络每个隐藏层的大小可以与层的数量相关)。[2]
超参数通常并不能使用梯度类算法(例如梯度下降、LBFGS)来学习;这些梯度类算法通常用于学习其它参数。这些用于描述模型的超参数通常不能用一般的优化方法学习,然而它们仍然会影响损失函数。例如支持向量机中错误的容忍度超参数。
部分超参数不能从训练数据中学习,因为对部分超参数的学习过程通常会过分增加模型容量,并使损失函数趋于不希望的小值(即过拟合),而不是正确映射数据的结构。例如,如果我们将拟合回归模型的多项式方程的度数作为一个可训练参数,多项式的度数会增加到模型可以完全拟合数据,此时训练误差极低,但泛化性能差。
性能变化往往归因于个别几个超参数。[3]算法、超参数或相互作用超参数的可调性用于衡量对其调整可以获得多少性能的标准。[4]对于LSTM来说,学习率和网络大小是关键的超参数,[5]而批量(Batching)和动量(Momentum)则对其性能没有显著影响。[6]
部分研究主张小批量大小(Mini-Batch size)应该为数千,而其他研究表明,小批量大小在2到32之间的性能最好。[7]
学习中存在的随机性表明经验性的超参数选取并不一定反应其真实性能。[8]如果方法对超参数、随机数种子、甚至算法的不同实现方式的简单变化不具有稳健性,则在不进行简化和稳健化前,不能被整合到关键任务的控制系统中。[9]
强化学习算法不仅需要在大量的随机种子上测量它们的性能,还需要测试对超参数选择的敏感性。由于变异性,仅用少量的随机种子进行的评估并不能充分反应出性能。部分强化学习方法(例如Deep Deterministic Policy Gradient,DDPG)对超参数的选择比其他算法更敏感。[9]
优化
超参数优化找到一个超参数的元组(Tuple),产生一个最佳模型,使得给定测试数据集的损失函数最小。目标函数接收超参数的元组,并返回对应的损失。[8]
可重复性
除超参数的调整外,机器学习还涉及到参数和结果的存储和组织,并确保它们是可重复的。[10]
参考文献
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.