在机器学习中,超参数是一种可以设置的参数,用于定义模型学习过程中任何可配置的部分。超参数分为模型超参数(如神经网络的拓扑结构和大小)和算法超参数(如优化器的学习率和批量大小)。它们之所以被称为超参数,是为了与参数形成对比,后者是模型在训练期间从数据中学习到的特征。
并非每个模型或算法都需要超参数。一些简单的算法,如普通最小二乘回归,不需要任何超参数。然而,例如LASSO算法,在普通最小二乘的基础上增加了一个正则化超参数,必须在训练前设置。即使没有严格要求定义超参数的模型和算法,如果这些超参数没有被仔细选择,也可能无法产生有意义的结果。超参数的最优值并不总是容易预测的;有些超参数可能没有有意义的影响,或者一个重要变量的取值可能取决于另一个变量的值。通常需要单独的超参数调优过程来为数据和任务找到合适的组合。除了提高模型性能外,超参数还可以被研究人员用来为他们的工作引入鲁棒性和可重复性,特别是当工作使用包含随机数生成的模型时。
注意事项
训练和测试模型所需的时间可能取决于其超参数的选择。超参数通常是连续型或整数型,导致混合类型的优化问题。某些超参数的存在取决于其他超参数的值,例如,神经网络中每个隐藏层的大小可以取决于层数。因此,超参数可能形成分层或有条件的配置空间,其中一个设计选择决定了哪些进一步的超参数是相关的。
难以学习的参数
目标函数通常相对于超参数是不可微的。因此,在大多数情况下,超参数不能使用基于梯度的优化方法(如梯度下降)来学习,这些方法通常用于学习模型参数。这些超参数描述了无法通过常见优化方法学习的模型表示,但仍然影响损失函数。一个例子是支持向量机中误差的容差超参数。
不可训练的参数
有时超参数无法从训练数据中学习,因为它们会急剧增加模型的容量,并可能将损失函数推向不期望的最小值,导致对数据的过拟合,而不是正确映射数据中结构的丰富性。例如,如果拟合回归模型的多项式方程的阶数被视为可训练参数,那么阶数会增加直到模型完美拟合数据,产生低训练误差但泛化性能差。
可调性
大多数性能变化可以归因于少数几个超参数。算法、超参数或交互超参数的可调性是衡量通过调优可以获得多少性能提升的指标。对于LSTM,虽然学习率和网络大小是其最关键的超参数,但批处理和动量对其性能没有显著影响。尽管一些研究提倡使用数千的迷你批量大小,但其他研究发现,迷你批量大小在2到32之间时性能最佳。
鲁棒性
学习中的固有随机性直接意味着经验超参数性能不一定是其真实性能。对超参数、随机种子甚至同一算法的不同实现的简单变化不鲁棒的方法,在没有显著简化和鲁棒化的情况下,无法集成到关键任务控制系统中。反过来,超参数选择不仅会影响预测性能,还会影响模型在变化或噪声输入条件下输出的鲁棒性和稳定性。特别是强化学习算法,需要在大数量的随机种子下测量其性能,并测量其对超参数选择的敏感性。使用少量随机种子进行评估无法充分捕捉性能,因为方差很高。一些强化学习方法,如DDPG(深度确定性策略梯度),比其他方法对超参数选择更敏感。
优化
超参数优化找到一组超参数元组,该元组产生一个最优模型,该模型在给定的测试数据上最小化预定义的损失函数。目标函数接受一组超参数元组并返回相关的损失。通常这些方法不是基于梯度的,而是应用无导数优化或黑盒优化的概念。常见技术包括网格搜索、随机搜索和贝叶斯优化,尽管来源未详细说明这些细节。
可重复性
除了调优超参数外,机器学习还涉及存储和组织参数及结果,并确保它们可重复。在缺乏为此目的而构建的健壮基础设施的情况下,研究代码通常快速演变,并损害了诸如记账和可重复性等关键方面。机器学习的在线协作平台更进一步,允许科学家自动共享、组织和讨论实验、数据和算法。对于深度学习模型,可重复性可能特别困难。例如,研究表明,深度学习模型甚至非常依赖于随机数生成器的随机种子选择。
参见
- 超启发式
- 复制危机