了解 Dropout 层如何通过提高泛化能力、鲁棒性和模型性能来防止神经网络中的过拟合。
滤波层是一种基本的 正则化技术 神经网络 (NN)中使用的基本正则化技术,用于防止常见的 过拟合问题。当一个模型在一个数据集上进行训练时、 它有可能学习到训练数据中的噪音和特定细节 而不是潜在的一般模式。 模式。这种记忆会导致模型在未见过的新数据上表现不佳。Dropout 可以通过随机 在训练过程中的每一步,都会随机停用或 "丢弃 "层中的部分神经元。 这一简单而有效的策略是这一简单而有效的策略是 Geoffrey Hinton 和他的同事在一篇开创性的研究论文中提出。 的一篇开创性研究论文中提出,极大地推动了 深度学习 (DL) 领域的重大进展。
辍学层背后的机制简单而强大。在 在模型训练阶段 根据指定的概率生成 0 和 1 的掩码,该概率称为滤除率。如果该比率设置为 0.5、 在前向和后向传递过程中,约 50%的神经元会被暂时忽略。这就迫使 这样就迫使剩余的活跃神经元独立地学习稳健特征,从而防止网络过度依赖任何一个神经元。 过于依赖任何一个神经元,这种现象被称为 共同适应。
在推理或测试阶段,滤波层通常是关闭的。 在推理或测试阶段,通常会关闭剔除层。所有神经元都处于激活状态,以充分发挥训练模型的能力。为了确保总激活值与训练阶段保持一致 为确保总激活值与训练阶段保持一致,权重通常由框架自动缩放。 由框架自动调整。现代库,如 PyTorch等现代库在其 dropout 实现中无缝地处理这些操作。
对于 ultralytics 软件包,将 dropout 应用于像
YOLO11 就像调整训练参数一样简单。
from ultralytics import YOLO
# Load a standard YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on a dataset with a custom dropout rate of 0.2
# This helps prevent overfitting on smaller datasets
results = model.train(data="coco8.yaml", epochs=10, dropout=0.2)
Dropout 在人工智能(AI)的各个领域都不可或缺。 人工智能 (AI) 由于大量参数或数据有限,模型容易过度拟合。
了解滤除技术与其他技术的不同之处,对于有效的 超参数调整至关重要。

