DropBlock: A regularization method for convolutional networks

dropout的不足

dropout是深度学习中避免过拟合的手段之一,经典网路结构中,dropout都被放到全连接层之后,鲜有放到卷积层之后。这是因为实验证明卷积层后的dropout层对网络泛化能力的改进微乎其微,本文分析了其中的原因:卷积层输出特征图各个元素之间存在很强的相关性,随机把某些原始置为0,其邻域元素带有何其相似的信息,dropout的功能没法实现。基于这个分析,本文提出了针对卷积层输出特征的dropout改进版:dropblock,不是随机把某些元素置零,而是随机把某些block都置零。如下图所示。
卷积层的dropout - dropblock卷积层的dropout - dropblock

实现

dropblock有两个参数:block_size和γ\gamma。其中γ\gamma的含义和dropout中参数一致,表示每个元素被置零的概率,被用来从特征图的valid区域中选择一些需要置为0的元素(valid区域是指区域内任意点作为中心点,block_sized大小的邻域不会超出特征图尺寸)。以这些选中的元素为中心,确定block_size x block_size的邻域,这个区域内所有特征点都要置为0。算法伪码如下:
卷积层的dropout - dropblock

scheduled dropblock

和dropout不同,实验发现dropblock的γ\gamma值如果训练初始就设置较小的值,则会影响网络收敛。文中采用factor=4factor=4的线性函数在训练过程中从1开始逐步降低γ\gamma的值,直至达到目标值

实验

DropBlock for Resnet50

合适配置DropBlock,可以帮助resnet50在ImageNet上提高1~2%, resent的bottleneck模块包括skip和conv两个分支,dropBlock不仅可以作用在conv分支,也可以作用在skip分支上。如下下图所示
卷积层的dropout - dropblock
第一列base实验,第二列是在skip分支增加dropblock模块,第三列是利用scheduled dropblcok。最优的参数是block_size=7.

相关文章:

  • 2022-01-02
  • 2021-10-24
  • 2021-03-31
  • 2021-05-08
猜你喜欢
  • 2021-12-31
  • 2021-05-21
  • 2021-07-21
  • 2021-08-05
  • 2022-12-23
  • 2021-05-13
相关资源
相似解决方案