趋近智
本章中,我们侧重于优化已训练模型,处理过拟合 (overfitting)等问题,并简化训练流程。然而,优化模型性能的另一个重要方面是在训练开始前,就选择恰当的超参数 (parameter) (hyperparameter)。与从数据中习得的模型参数(权重 (weight)和偏置 (bias))不同,超参数是由实践者选定的配置项。正确设定这些参数能显著影响训练速度、收敛性和模型最终的预测能力。
可以把超参数看作是你在启动神经网络 (neural network)构建机器并开始处理数据之前设定的旋钮和刻度盘。它们定义了模型的结构,并控制学习过程本身。相比之下,模型参数是机器在运行(训练)期间自动调整的内部变量,以最小化损失函数 (loss function)。
你已经遇到或将使用的常见超参数包括:
选择这些超参数的恰当值非常重要,因为很少有单一的“最佳”组合适用于所有问题或数据集。
寻找超参数的最优组合通常更偏向于艺术而非科学,并且它面临着几项挑战:
寻找最佳超参数组合的这个过程被称为超参数调优或超参数优化。
虽然基于经验的手动调整起到一定作用,但更系统的方法通常更受青睐。
这通常是起始点。你根据常见做法、先前的经验或已发表的研究做出有根据的猜测,训练模型,评估其性能,然后根据结果调整超参数 (parameter) (hyperparameter)。例如,如果模型过拟合 (overfitting),你可能会尝试增加正则化 (regularization)强度或降低模型复杂性(减少层/神经元数量)。如果训练过慢或不稳定,你可能会调整学习率。尽管直观,但这可能效率低下,并可能错过最优组合。
网格搜索是一种穷举方法。你为每个想要调优的超参数定义一个特定的范围或离散值列表。然后,算法系统地训练并评估模型,针对这些值的每种可能组合。
例如,如果你指定:
[0.01, 0.001, 0.0001][32, 64]网格搜索将训练并评估个不同的模型。
网格搜索在由学习率和批次大小定义的二维超参数空间中查看所有组合(蓝点)的视图。
尽管对于较小的搜索空间来说很全面,但随着超参数数量或每个超参数的值的数量增加,网格搜索在计算上变得难以处理(受“维度诅咒”影响)。
随机搜索提供了一种更高效的替代方案。它不是尝试所有组合,而是从每个超参数指定的范围或分布中随机抽取固定数量的组合。
研究(例如,Bergstra和Bengio的研究)表明,在相同的计算预算下,随机搜索通常能找到比网格搜索更好的模型。这是因为并非所有超参数都同等主要;随机搜索有更高的机会为主要超参数找到好的值,而网格搜索则花费大量时间在只改变不重要参数的组合上。
比较网格搜索如何在固定网格上采样点,以及随机搜索如何在超参数空间中更自由地采样点。随机搜索可能在相同试验次数下,为每个超参数尝试更广泛的值范围。
你为超参数定义范围(例如,学习率在0.0001到0.01之间)或分布,并指定要尝试的组合总数(n_iter)。
存在更复杂的算法,例如:
这些方法可能更高效,但实现和理解起来也更复杂。
GridSearchCV和RandomizedSearchCV,它们可以适用于Keras模型,尽管KerasTuner通常提供更紧密的集成。超参数调优是一个迭代过程,随着你对模型和数据获得更多见解,通常会再次进行。这是将模型性能从可接受提升到优异的重要一步。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•