首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >卷积神经网络中DropBlock 与 Dropout 正则化对比分析

卷积神经网络中DropBlock 与 Dropout 正则化对比分析

作者头像
Ai学习的老章
发布于 2025-07-21 01:14:40
发布于 2025-07-21 01:14:40
1010
举报

大家好,我是Ai学习的老章

经常在外冲浪,看到很多优秀的技术文章,独享不如分享

我会使用DeepSeek-R1+科技类翻译大师prompt翻译出来,大家一起学习

如有翻译偏差,请大家指教。原文[1]

DropBlock vs. Dropout 用于正则化

昨天的文章中,我分享了 CNN Explainer —— 一个交互式工具,用于可视化理解和探索 CNN 及其内部工作机制。

今天,我们将继续讨论 CNN,并理解在使用 Dropout 正则化这些网络时的一个被忽视的问题。

让我们开始吧!


背景

在训练神经网络时,总是建议使用 Dropout(以及其他正则化技术)以提高其泛化能力。

这不仅适用于 CNN,也适用于所有其他神经网络。

我相信你已经了解了上述细节,所以让我们进入有趣的部分。


在 CNN 中使用 Dropout 存在的问题

使 CNN 如此强大的核心操作是卷积 ,它允许它们捕获局部模式,如边缘和纹理,并帮助从输入中提取相关信息。

下面的动画展示了卷积操作是如何工作的。

卷积操作(视频来源:3Blue1Brown YouTube 视频中的卷积)

从纯粹的数学角度来看,我们沿着输入(如下所示的绿色部分)滑动一个滤波器(如下所示的黄色部分),并将滤波器和重叠的输入按元素相加以得到卷积输出:

Understanding Convolutional Neural Networks for NLP - KDnuggets
Understanding Convolutional Neural Networks for NLP - KDnuggets

在这里,如果我们应用传统的 Dropout,输入特征将会如下所示:

在全连接层中,我们零化神经元。然而,在 CNN 中,我们在卷积之前随机零化像素值 ,如上图所示。

但这并没有被发现特别适用于卷积层。

为了理解这一点,考虑我们有一些图像数据。在每张图像中,我们会发现相邻的特征(或像素)在空间上高度相关。

例如,想象一下将数字“9”的像素级别放大。

在这里,我们会注意到红色像素(或特征)与其周围的其他特征高度相关:

因此,使用 Dropout 丢弃红色特征很可能没有效果,其信息仍然可以传递到下一层。

简单来说,卷积操作的本质就违背了传统 Dropout 方法的初衷。


解决方案

DropBlock 是一种更优秀、更有效且更直观的 CNN 正则化方法。

核心思想是丢弃一个连续的特征区域 (或像素),而不是单独的像素。

这在下面所示:

类似于全连接层中的 Dropout,网络试图在某些激活缺失的情况下生成更 robust 的方式来拟合数据,在 DropBlock 的情况下,卷积层能够在某些特征缺失的情况下更 robust 地拟合数据。

此外,DropBlock 的想法也直观合理 — 如果连续的特征区域被丢弃,就可以避免在使用卷积操作时 Dropout 的问题。


DropBlock 参数

DropBlock 有两个主要参数:

  • Block_size: 要丢弃的盒子的大小。
  • Drop_rate: 中央像素的丢弃概率。

要应用 DropBlock,首先,我们从伯努利分布中在输入上采样一个二进制掩码:

接下来,我们创建一个大小为 block_size*block_size 的块,并将采样的像素放在中心位置:

完成!


DropBlock 在结果表中优于 Dropout:

结果表格来自 DropBlock 研究论文[2]

在 ImageNet 分类数据集上:

  • DropBlock 在 Dropout 基础上提供了 1.33%的提升。
  • 使用标签平滑的 DropBlock 在 Dropout 基础上提供了 1.55%的提升。

我们在本期通讯中介绍了标签平滑: 使用标签平滑正则化神经网络[3]

感谢地是,DropBlock 也集成了 PyTorch。

还有一个名为“dropblock”的库,也提供了 drop_rate 的线性调度器。

所以研究人员发现,提出 DropBlock 的技术在 drop_rate 逐渐增加时更为有效。

DropBlock 库 实现了调度器[4] 。当然,你也可以在 PyTorch[5] 中以其他方式实现这一点。所以你可以根据自己的需要选择使用哪种实现。

搭建完美的写作环境:工具篇(12 章)图解机器学习 - 中文版(72 张 PNG)ChatGPT 、大模型系列研究报告(50 个 PDF)108页PDF小册子:搭建机器学习开发环境及Python基础 116页PDF小册子:机器学习中的概率论、统计学、线性代数 史上最全!371张速查表,涵盖AI、ChatGPT、Python、R、深度学习、机器学习等

参考资料

[1]

原文: https://blog.dailydoseofds.com/p/dropblock-vs-dropout-for-regularizing

[2]

DropBlock 研究论文: https://arxiv.org/pdf/1810.12890.pdf

[3]

使用标签平滑正则化神经网络: https://blog.dailydoseofds.com/p/regularize-neural-network-using-label

[4]

实现了调度器: https://github.com/miguelvr/dropblock

[5]

PyTorch: https://pytorch.org/vision/master/generated/torchvision.ops.DropBlock2d.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档