模型调整优化机器学习模型的超参数,以获得最佳的训练性能。该过程涉及进行调整,直到找到最佳的超参数值集,从而提高准确性、生成质量和其他性能指标。
由于模型调整可以确定模型的最佳超参数,因此它也被称为超参数优化,或超参数调整。
超参数是无法从训练数据中得出的模型配置变量。这些变量决定了模型的关键功能和行为。一些超参数(如学习率)可以控制模型在训练过程中的行为。其他参数则决定模型本身的性质,比如设置神经网络层数的超参数。
数据科学家必须在训练开始之前配置机器学习 (ML) 模型的超参数值。提前选择正确的超参数组合对于成功训练 ML 模型至关重要。
模型参数或模型权重是人工智能 (AI) 模型在训练期间发现的变量。AI 算法学习其训练数据集的底层关系、模式和分布,然后将这些发现应用于新数据以做出成功的预测。
机器学习算法接受训练时,会设置并更新其参数。这些参数代表模型从训练数据集中学习的内容,并会随着优化算法的每次迭代而变化。
当模型对于训练数据来说过于复杂时,就会出现过拟合。它的超参数创建的神经网络具有过多的层数或过多的可训练参数。由于过拟合,模型对其训练数据集的适应程度过高。过拟合的模型无法适应新数据,因为它无法从其训练数据进行泛化。
想象一下教室里有两名学生。一个学生通过记住事实来学习,另一个学生通过理解所教授的基本概念来学习。到目前为止,两人在涵盖课程材料的测试中都表现出色。但是,当他们需要将学习应用于新主题时会怎么样呢?
能够归纳概括的学生将成功地转移他们所学到的知识,而依赖记忆的学生可能也很难做到这一点。他们的理解对于课堂内容的细节“过拟合”,未能掌握核心原则。
偏差是模型预测与实际结果之间的差距。虽然偏差可能源于有缺陷的数据集,但偏差也可能源于不理想的模型调整,即使训练数据可行,模型也无法很好地学习。
具有高偏差的模型会忽略训练数据中的细微之处,并且可能无法在训练期间生成准确的预测。更简单的算法,例如线性回归,更容易出现高偏差,因为它们无法在训练数据中捕捉到更复杂的关系。
为特定任务选择正确的算法是获得良好性能的第一步,甚至在模型调整开始之前就是如此。
方差反向描述了模型预测的一致性。方差越大,意味着模型对未知数据的预测越不一致,尽管它们在训练数据集上通常表现良好。方差较大的模型容易出现过拟合,它们无法将从训练数据中学习到的知识转移到新数据中。
正则化是一种通过改变偏差-方差比以支持更大的偏差来减少过拟合的技术。良好的模型调整可以管理偏差和方差之间的权衡,以实现最佳的真实预测。
模型调整的工作原理是发现能带来最佳训练结果的超参数配置。有时,例如在构建较小、简单的模型时,数据科学家可以提前手动配置超参数。但是转换器和其他复杂模型可能有数千种超参数组合。
有了这么多的选择,数据科学家可以限制超参数搜索空间,以覆盖最有可能产生最佳结果的潜在组合部分。他们还可以使用自动化方法通过算法发现适合其用例的最佳超参数。
最常见的模型调整方法包括:
网格搜索
随机搜索
贝叶斯优化
超频道
网格搜索是“暴力”式的模型调整方法。数据科学家创建一个包含每个可能的超参数值的搜索空间。然后,网格搜索算法生成所有可用的超参数组合。该模型针对每个超参数组合进行训练和验证,并选择性能最佳的模型以供使用。
由于网格搜索测试所有可能的超参数值,而不是较小的子集,因此它是一种全面的优化方法。这种扩大范围的缺点是网格搜索非常耗时且占用大量资源。
随机搜索算法不是测试所有可能的超参数配置,而是从潜在选项的统计分布中选择超参数值。数据科学家汇总最可能的超参数值,增加算法选择可行方案的机会。
随机搜索比网格搜索更快并且更容易实现。但是,由于每个组合都没有经过测试,因此无法保证会找到单个最佳超参数配置。
与网格搜索和随机搜索不同,贝叶斯优化是根据先前的尝试结果来选择超参数值的。该算法利用之前超参数值的测试结果来预测可能带来更好结果的参数值。
贝叶斯优化的工作原理是构建目标函数的概率模型。随着时间的推移,这种替代函数的效率会随着结果的改进而提高,它可以避免将资源分配给性能较低的超参数值,同时锁定最佳配置。
根据前几轮测试优化模型的技术称为基于序列模型的优化 (SMBO)。
Hyperband 专注于有前景的超参数配置,同时放弃可行性较低的搜索,从而改进了随机搜索工作流程。在每次测试迭代中,Hyperband 算法都会删除所有测试配置中表现最差的一半。
Hyperband 的“连续减半”方法始终专注于最有希望的配置,直到从原始候选配置池中发现单个最佳配置。
训练后,模型将进行交叉验证,即使用另一部分训练数据检查训练结果。将模型的预测值与验证数据的实际值进行比较。然后,性能最高的模型移动到测试阶段,在部署之前再次检查其预测的准确性。交叉验证和测试对于大型语言模型 (LLM) 评估至关重要。
再训练是 MLOps(机器学习运营)AI 生命周期的一部分,它会随着时间的推移不断自主地重新训练模型,以使其保持最佳性能。
虽然每个算法都有自己的一组超参数,但许多超参数在相似的算法之间是共享的。支持大型语言模型 (LLM) 的神经网络中的常见超参数包括:
学习率
学习率下降
Epochs
批大小
Momentum
隐藏层数量
每层节点数
激活函数
学习速率决定模型在训练期间更新权重的速度。更高的学习速率意味着模型学习得更快,但存在超出其损失函数局部最小值的风险。同时,较低的学习速率可能会导致训练时间过长,增加资源和成本需求。
学习速率衰减是一个超参数,它会随着时间的推移减慢 ML 算法的学习速率。该模型起初更新其参数的速度更快,然后在接近收敛时参数更新会更加细致,从而降低了过冲的风险。
模型训练涉及将模型多次暴露于其训练数据中,以便迭代更新其权重。每次模型处理其整个训练数据集时都会增加一个轮次,轮次超参数设置了构成训练过程的轮次数。
在优化算法的每次迭代中,机器学习算法不会处理整个训练数据集。取而代之的是,将训练数据分成若干批次,每批训练后更新模型权重。批次大小决定了每个批次中数据样本的数量。
动量是 ML 算法倾向于以与先前更新相同的方向更新其权重。将动量视为算法学习的信念。高动量会导致算法更快地收敛,但存在绕过显著局部最小值的风险。同时,低动量可能导致算法在更新时来回摇摆,从而阻碍其进展。
神经网络模拟人类大脑的结构,包含多层相互连接的神经元或节点。这种复杂性使得高级模型(例如转换器模型)能够处理复杂的生成任务。更少的层可以使模型更精简,但更多的层有助于处理更复杂的任务。
神经网络的每一层都有预定数量的节点。随着层宽度的增加,模型处理数据点之间复杂关系的能力也会增加,但代价是计算要求更高。
激活函数是一个超参数,它赋予模型在数据组之间创建非线性边界的能力。当无法将数据点准确分类到由直线分隔的组中时,激活操作可为更复杂的划分提供所需的灵活性。
没有激活函数的神经网络本质上是线性回归模型。