术语表

滤波器层

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

剔除层是神经网络(NN)中一种强大而简单的正则化技术,用于消除过拟合。当模型对训练数据(包括噪声和特异性)学习得太好时,就会出现过拟合,从而损害其泛化到新的、未见数据的能力。Geoffrey Hinton 和他的同事在2014 年发表的一篇突破性论文中提出了 "丢弃"(dropout)技术,其核心理念是在每个训练步骤中随机 "丢弃"--或暂时移除--神经元及其连接。这可以防止神经元过度依赖彼此,迫使网络学习更稳健和冗余的表征。

滤波层如何工作

模型训练过程中,丢弃层会随机地将上一层中一部分神经元的激活度设为零。剔除率 "是一个超参数,用于定义神经元被剔除的概率。例如,0.5 的丢弃率意味着在给定的训练迭代中,每个神经元被忽略的概率为 50%。这个过程可以看作是训练大量共享权重的精简网络。

通过不断改变网络结构,"剔除 "可以防止出现复杂的共同适应,即一个神经元的输出高度依赖于其他几个特定神经元的存在。相反,我们鼓励每个神经元成为更独立、更有用的特征检测器。在测试或推理阶段,剔除层被关闭,所有神经元都被使用。为了补偿比训练期间更多神经元处于活动状态这一事实,该层的输出会按比例降低剔除率。这样可以确保每个神经元的预期输出在训练和测试期间保持一致。像PyTorchTensorFlow这样的框架会在其剔除层实现中自动处理这种缩放。

实际应用

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

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

相关概念和区别

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

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

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

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、合作和成长

立即加入
链接复制到剪贴板