术语表

滤波器层

了解剔除层如何通过改善泛化、鲁棒性和模型性能来防止神经网络中的过度拟合。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

剔除层(Dropout Layer)是训练深度学习模型(尤其是神经网络)时使用的一种基本技术,用于对抗过度拟合。当模型对训练数据(包括噪声和特定模式)的学习效果太好时,就会出现过拟合现象,从而阻碍其泛化到新的、未见过的数据的能力。为了解决这一问题,Dropout 会在每次训练迭代中暂时随机 "丢弃 "或将层中的部分神经元激活设置为零。这就迫使网络学习不依赖于任何单个神经元的更强健的特征。

辍学者如何工作

训练过程中,对于批次中的每个训练示例,丢弃层中的每个神经元都有一定的概率("丢弃率",通常在 0.1 到 0.5 之间)被停用。这意味着它的输出在特定的前向和后向传递中被设置为零。其余活跃神经元的输出则按相当于 1/(1-失活率)的系数放大,以保持总体预期的激活总和。这一过程有效地为每个训练步骤创建了略有不同的 "瘦身 "网络架构,防止神经元过多地共同适应,并鼓励它们学习更多独立有用的特征。重要的是,在模型评估或推理阶段,Dropout 层将被关闭,所有神经元都将使用其学习到的权重,从而确保网络的全部容量都能用于预测。

益处和重要性

使用 "滤波层 "的主要好处是提高模型的泛化能力。通过防止神经元之间复杂的共同适应,剔除层可以降低模型对训练数据中特定噪声和模式的敏感性,从而在未见的验证测试数据上获得更好的性能。它作为一种正则化形式,目标类似于 L1/L2 权重衰减等技术,但通过随机机制运行。它在具有许多参数的大型网络中尤其有效,因为在这种网络中,过拟合是一个常见的挑战。最初的概念详见论文《Dropout:防止神经网络过度拟合的简单方法》一文中详细阐述了最初概念。

实际应用

滤波层被广泛应用于人工智能和机器学习的各个领域:

  1. 计算机视觉:物体检测图像分类等任务中,Dropout 通常应用于卷积神经网络(CNN)的全连接层。模型如 Ultralytics YOLO等模型在训练过程中隐性地受益于正则化技术,帮助它们在不同的图像数据集(如COCO或通过Ultralytics HUB 准备的自定义数据)中更好地泛化。这确保了在不同真实世界场景中检测物体时的鲁棒性,这对自动驾驶汽车或安全系统中的应用至关重要。
  2. 自然语言处理 (NLP):Dropout 常用于LSTM递归神经网络 (RNN)以及用于机器翻译情感分析等任务的转换器模型中。它有助于防止模型记住训练语料中的特定短语或句子结构,从而更好地理解和生成自然语言。像Hugging Face 变换器这样的框架通常会在其模型架构中加入丢弃功能。

相关概念和区别

Dropout是用于防止过度拟合的几种技术之一。其他技术包括

  • L1 和 L2 正则化:它们根据模型权重的大小对损失函数进行惩罚,鼓励使用较小的权重。
  • 批次归一化对每个迷你批次的层输入进行归一化处理。虽然它主要用于稳定和加速训练,但也有轻微的正则化效果。
  • 数据增强通过对输入数据进行旋转、翻转或颜色变化等转换,人为增加训练数据集的大小和多样性。在Ultralytics 文档中探索增强技术。

Dropout 的不同之处在于,它在训练过程中直接随机操纵神经元激活,从而有效地训练出一个精简网络集合。

实施情况

Dropout Layers 是主要深度学习框架的标准组件。它们可以在以下库中找到,如 PyTorchTensorFlow等库中,因此很容易将它们纳入神经网络架构。

阅读全部