正则化
使用 L1、L2、dropout 和提前停止等正则化技术,防止过拟合并提高模型泛化能力。了解更多!
正则化是机器学习(ML)中的一套重要策略。
正则化是机器学习(ML)中的一套重要策略,旨在增强
模型泛化到未见过的新数据的能力。其主要目标是防止
正则化是机器学习(ML)中的一套重要策略,旨在增强模型对新的未知数据的泛化能力。
过拟合是一种常见现象。
过拟合是一种常见现象。
这种现象很常见。通过引入额外的信息或约束条件--通常采用在损失函数中添加惩罚项的形式--正则化可以阻止模型在有效输入上的表现。
损失函数中添加惩罚项的形式,正规化可以阻止模型
变得过于复杂。这使得系统更加稳健,在训练和测试中都能保持高精度。
在训练和
验证数据上都能保持高精度。
常用正则化技术
有几种成熟的正则化方法,分别针对模型复杂性和训练动态的不同方面
和训练动态:
-
L1 和 L2 正则化:这是最传统的形式。L1 正则化(Lasso)会添加一个与系数绝对值相等的惩罚,这可以使一些权重为零,从而有效地进行特征选择。
系数的绝对值,这可以使某些权重为零,从而有效地进行特征选择。L2 正则化
(Ridge)被广泛应用于深度学习(DL)中,它增加了等于系数平方的惩罚。
惩罚,鼓励使用更小、更分散的模型权重。
模型权重。
-
辍学层:专为
神经网络(NN)而设计的。
在每个训练步骤中停用部分神经元。这就迫使网络学习冗余
表征,避免依赖特定的神经元通路。
最初的 dropout 研究论文中详细阐述了这一概念。
-
数据扩充:这种技术不是修改模型架构,而是通过创建修改版的现有图像或数据点来扩展训练集。
数据点的修改版本来扩展训练集。旋转、缩放和翻转等变换有助于模型
变得不受这些变化的影响。您可以探索
YOLO 数据增强技术,了解
在实践中是如何应用的。
-
提前停止:这种实用方法包括在训练过程中监控模型在验证集上的表现。如果
验证损失停止改善或开始增加,则立即停止训练过程。
立即停止训练过程。这可以防止
模型在训练后期继续学习噪音。
-
标签平滑:这种技术会在训练过程中调整目标标签,使模型不会被迫以 100% 的置信度(如 1.0 的概率)进行预测。
置信度(如 1.0 的概率)。通过软化目标(例如,软化到 0.9),标签平滑可以防止网络
变得过于自信,这对图像分类等任务是有益的。
图像分类。
用Python实现正则化
Ultralytics 等现代库可以通过训练参数直接应用这些技术。下面的
下面的示例演示了如何训练一个 YOLO11 模型
用 L2 正则化(由 weight_decay)和辍学率,以确保模型的稳健性。
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model with specific regularization parameters
# 'weight_decay' applies L2 regularization
# 'dropout' applies a dropout layer with a 10% probability
results = model.train(data="coco8.yaml", epochs=50, weight_decay=0.0005, dropout=0.1)
实际应用
要在各行各业部署可靠的人工智能系统,正则化是必不可少的。
-
自动驾驶:在
人工智能汽车解决方案中,计算机视觉
模型必须在各种天气条件下detect 行人和交通标志。如果没有正则化,模型
可能会记住训练集中的特定照明条件,从而在真实世界中失效。权重衰减等技术
权重衰减等技术可确保检测系统能很好地适应
雨、雾或眩光。
-
医学影像:进行医学图像分析时
医学影像分析时,数据集的大小往往有限。
规模有限。在这种情况下,过度拟合是一个很大的风险。正则化方法,尤其是
数据增强和早期停止,有助于
为detect X 射线或核磁共振成像中的异常而训练的模型在新的患者数据上保持准确性,从而支持更好的诊断结果。
诊断结果。
正则化与相关概念
将正则化与其他优化和预处理术语区分开来很有帮助:
-
正则化与归一化:规范化是指将输入数据缩放至标准范围,以加快收敛速度。虽然像
批量归一化等技术可以产生轻微的
正则化效果,但其主要目的是稳定学习动态,而正则化则明确地
对复杂性进行惩罚。
-
正则化与超参数调整
超参数调整:正则化参数(如丢弃率或 L2 惩罚)本身就是超参数。超参数
调整是为这些设置搜索最佳值的更广泛过程,通常使用的工具有
Ultralytics Tuner 等工具。
-
正则化与集合学习:集合方法结合了多个模型的预测结果,以减少差异并提高泛化效果。虽然
这与正则化的目标相似,但它是通过聚合不同的模型而不是限制单一模型的学习来实现的。
单一模型的学习。