趋近智
正如之前所讨论的,找到合适的网络结构和正则化参数只是优化神经网络的一部分。许多在训练过程开始之前设定的其他配置,对模型学习和泛化的效果有显著影响。这些配置被称为超参数。与模型在训练中学习的参数(权重和偏置)不同,超参数由您,也就是实践者来设定。调整它们是获得良好模型性能的必要步骤。
您可能需要调优的常见超参数包括:
正确设定这些配置很重要。学习率过高可能导致训练过程发散,而过低则会使训练变得异常缓慢或陷入次优解。网络的容量(层和神经元)需要足以捕获数据中的隐含模式,但过高的容量会增加过拟合的风险。优化器的选择会影响收敛的速度和稳定性。实际上,超参数定义了模型学习的条件。
找到超参数的最佳组合可能感觉像大海捞针。幸好,有一些系统性的方法可以使用。
最基础的方法是手动调优。基于经验、直觉和对训练过程的观察(例如,监测验证损失),您迭代地调整超参数。您可能会训练一个模型,观察其表现,微调一个超参数(例如,如果损失趋于平稳或爆炸,则将学习率减半),然后重新训练。
手动调优虽然简单易懂,但通常耗时,并且非常依赖实践者的专业知识。分析不同超参数之间的相互作用可能很困难,而且您可能仅仅因为没有想到去尝试而错失了更好的组合。
网格搜索通过系统地检查预设的超参数值集合来自动化此过程。您为每个超参数指定一个要尝试的值列表,算法会为每种可能的组合训练并评估一个模型。
例如,如果您想调优学习率和单个隐藏层中的神经元数量:
[0.1, 0.01, 0.001][32, 64, 128]网格搜索是一种通过在预定义的超参数值组合上系统地训练和评估模型来寻找最佳超参数的方法。例如,网格搜索会训练并评估 3×3=9 个不同的模型:(0.1, 32), (0.1, 64), (0.1, 128), (0.01, 32), ..., (0.001, 128)。然后,您将选择在验证集上产生最佳性能的组合。
网格搜索在由学习率和神经元数量定义的二维网格上尝试组合的示意图。每个点代表一个使用该特定超参数组合训练的模型。
网格搜索的主要优点是其系统性。然而,它受到“维度诅咒”的影响。组合的数量随着超参数的数量和每个超参数考虑的值的数量呈指数级增长。如果您有5个超参数,每个有5个可能的值,则需要训练 55=3125 个模型!这很快就会变得计算上不可行。
随机搜索通常提供一种更高效的替代方案。您不是在固定的网格上尝试所有组合,而是为每个超参数定义一个范围或分布(例如,学习率在0.0001到0.1之间均匀采样,神经元数量在16到256之间的整数中采样)。然后,您从这个搜索空间中随机采样固定数量的组合。
随机搜索在相同的二维空间内随机采样点的示意图。与网格搜索的固定步长相比,它更广泛地查看不同的值。
研究(特别是Bergstra和Bengio的研究)表明,随机搜索通常比网格搜索更有效,特别是当只有一部分超参数明显影响最终性能时。通过随机采样,您更有可能比穷尽检查网格上的每个点更快地找到重要超参数的良好值。您通常会设定一个预算(例如,训练50个随机组合),然后选择在该预算内找到的最佳组合。
除了网格搜索和随机搜索之外,还存在更复杂的技术,通常归属于贝叶斯优化。这些方法建立一个概率模型(一个“替代模型”),用于表示超参数如何影响验证性能。它们使用此模型智能地选择下一个要尝试的超参数组合,重点关注搜索空间中根据过去结果看起来最有希望的区域。Optuna、Hyperopt或Keras Tuner等工具实现了此类策略。虽然这些工具功能强大,但它们增加了复杂性,通常在掌握了更简单的方法之后才考虑使用。
超参数调优是机器学习工作流程中一个必要但有时繁琐的部分。通过使用网格搜索或随机搜索等方法系统地尝试不同的设置,并对它们在验证数据上进行严格评估,您可以显著提高模型对新的、未见过数据的泛化能力。这个过程与之前讨论的正则化技术协同工作,以构建既强大又可靠的模型。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造