术语表

滤波器层

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

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

了解更多

丢弃层(Dropout Layer神经网络(NN)训练中用来解决过拟合问题的一项基本技术。由 Hinton 等人在2014 年发表的极具影响力的论文中提出,Dropout 已成为深度学习(DL)中被广泛采用的正则化方法,在具有许多参数的大型网络中尤其有效。它的主要目标是提高模型的泛化能力,确保模型在未见数据而不仅仅是训练数据上表现良好。

辍学者如何工作

模型训练过程中,"丢弃层 "会在每个训练样本中随机 "丢弃 "或停用该层中的一部分神经元(单元)。这意味着这些被选中的神经元的输出被设置为零,它们不会对前向传递做出贡献,也不会参与该特定样本的反向传播步骤。被丢弃神经元的比例由丢弃率决定,这个超参数通常设置在 0.2 到 0.5 之间

最重要的是,"剔除 "只在训练过程中处于活跃状态。在对测试数据进行推理或预测时,所有神经元都处于激活状态。为了弥补推理期间比训练期间活跃的神经元更多这一事实,该层的输出通常会按比例降低丢弃率(这种技术称为倒置丢弃,通常在以下框架中实现 PyTorchTensorFlow).

使用 Dropout 的好处

使用 "滤除层 "的核心优势在于改进模型泛化和减少过度拟合。它通过几种机制来实现这一点:

  • 减少共同适应:通过随机丢弃神经元,"丢弃 "可以防止层内的单元在训练过程中过度依赖彼此(共同适应)来修复错误。这就迫使每个神经元学习更强大、更独立、更有用的特征。
  • 隐式集合:在训练过程中应用 "剔除 "类似于训练大量具有共享权重的不同 "精简 "神经网络。在推理时,使用按比例激活的完整网络近似于平均这个大集合的预测结果,这通常会带来更好的性能和鲁棒性。
  • 计算效率:虽然在概念上类似于训练多个模型,但 "丢弃 "可以在单个模型训练周期内实现这种集合效应,因此在计算成本上比显式模型集合要低得多。

实际应用

Dropout 广泛应用于人工智能(AI)机器学习(ML)的各个领域:

  1. 计算机视觉:计算机视觉(CV)中,滤波可帮助模型,如 Ultralytics YOLO等模型在物体检测图像分类实例分割等任务中表现得更好。例如,在自动驾驶系统中,Dropout 可以使检测模型对光照、天气或遮挡物的变化更加稳健,从而提高安全性和可靠性。使用Ultralytics HUB 等平台可以有效管理此类模型的训练。
  2. 自然语言处理(NLP):滤除通常应用于NLP 模型,如TransformersBERT。在机器翻译情感分析等应用中,Dropout 可以防止模型记住训练数据中的特定短语或句子结构,从而更好地理解和生成新文本。这可以提高聊天机器人和文本摘要工具的性能。

相关概念和区别

Dropout 是深度学习中用于正则化的几种技术之一。其他技术包括

  • L1 和 L2 正则化:这些方法根据模型权重的大小在损失函数中添加惩罚,鼓励使用较小的权重。了解更多有关L1/L2 正则化的信息。
  • 批量归一化 批量归一化(BN)是将层内的激活归一化,这可以稳定训练,有时还能提供温和的正则化效果,从而减少对强剔除的需求。BN 可以解决内部协变量的偏移,而 dropout 则通过强制冗余直接解决模型的复杂性问题。
  • 数据增强:旋转、缩放或裁剪图像(数据扩增)等技术可人为增加训练数据集的多样性,这也有助于防止过度拟合并提高泛化效果。剔除和数据增强通常会同时使用。

总之,Dropout 层是一种简单但功能强大的正则化技术,对于从计算机视觉到 NLP 等各种应用中训练稳健的深度学习模型至关重要。

阅读全部