其他分享
首页 > 其他分享> > Weighted ChannelDropoutfor Regularization of Deep Convolutional Neural Network论文记录

Weighted ChannelDropoutfor Regularization of Deep Convolutional Neural Network论文记录

作者:互联网

简介

近年来,卷积神经网络实现了很大的发展,这已经显著提升了很多不同应用的性能表现,深度卷积神经网络可以成功的原因很大程度是因为其多个非线性隐藏层的结构,其中包含了数以百万计的参数,因此可以学习输入和输出之间的关系。
作者观察提出了一种新的方法,称为加权信道丢失率(WCD)的正则化深卷积神经网络(CNN)。在一个卷积神经网络的卷积堆栈内,所有的通道都是由之前的层生成的,并会在下一层得到平等的对待,这样就产生了一个想法,这样的分布可能不是最优的,因为事实可能证明某些特征比其他特征更加的有用。
与全连接层中随机选择神经元设置为0的Dropout不同,WCD对卷积层堆栈中的通道进行操作。具体来说,WCD包括两个步骤,即评级渠道和选择渠道,和三个模块,即全局平均池,加权随机选择和随机数生成器。它根据激活的相对幅度对通道进行过滤选择,可以插入任意两个连续的层中,并可以进一步作为一种建模通道之间的依赖关系的特殊方法。WCD是完全无参数的,仅在训练阶段部署,计算成本非常低。测试阶段的网络保持不变,因此根本不增加推理成本。此外,当与现有的网络相结合时,它不需要在ImageNet上进行再训练,因此非常适合在小型数据集上应用。最后,使用VGGNet- 16、ResNet-101、incepee - v3的WCD在多个数据集上进行了实验评估。广泛的结果表明,WCD可以在基线上带来一致的改进。

WCD

WCD的动机正是为了缓解finetuning CNN对小数据集的过度拟合,通过引入更多的正则化,WCD可以帮助网络从输入中学习更健壮的特性。我们的方法属于在神经网络中加入正则化的范畴。
WCD与Dropout的不同之处在于,它不是在神经元上工作,而是在通道上工作。而在卷积层栈中,每个信道都是一个基本单元。Dropout中的神经元选择是完全随机的,相反,WCD根据激活状态选择通道。实际上,Dropout可以看作是WCD的一个特例。

WCD过程

(1)首先,对前一层的通道进行评级,并为每个通道分配一个分数,整个分数是使用全局平均化GAP得到的。
(2)其次,会生成一个二元掩码来指示通道是否被选中,分数相对较高的通道有更高的概率得到保留。
(3)最后,使用一个额外的随机数生成器来进一步为下一层过滤通道。在得分较高的通道中选择通道。

相比较而言,常规的dropout是以随机方式掩蔽通道。下图左侧为全连接层的dropout过程,右图卷积层的dropout过程的示意图。dropout多用于全连接层,在卷积层中用时,先将其展平了,再reshape回来。
在这里插入图片描述
方法
WCD的目标是为CNN中的卷积层堆栈提供正则化。CNN高层的特征具有很大的特异性(即,而对于每个输入图像,只有一小部分通道被激活。因此,我们并没有对所有的频道一视同仁,而是随机选择,我们建议先对频道进行评级,并为每个频道分配一个分数,在接下来的步骤中作为频道选择的指导。
表示上一层的输出
表示下一层的输入在这里插入图片描述
N和N~~表示通道数量,Xi和Xi~表示第i个通道。几乎在所有情况下,X=X ~ ,N=N~也是成立的。不同的是,WCD根据每个通道的激活状态,从X中随机选择通道构建X 。(为什么X和X在经过选择之后还相等,因为没有被选择的通道被置为0)
在这里插入图片描述
第一步:通道评级
这一步涉及到为每一步分配一个分数,通过使用GAP得到,对于每个通道i,它的分数通过下图计算得到。W和H是所有共享通道的高和宽。一般认为scorei >为0,因为在现代CNNs中ReLU是附加在每个卷积层后面的。
在这里插入图片描述
第二步:通道选择
要决定一共通道是否被选择,方法是构建一个二元掩码。其中mask-i要么为0(不选择通道i),要么为1(选择通道i)。为了构建这个掩码,首先要计算出一个概率p-i并将其分配给每一个通道使用,以确定mask-i。保留通道的概率p-i通过下图计算得出。也就是说,maski将pi的概率设置为1,分数较高的通道更有可能被保留。
在这里插入图片描述
对于分数为score-i的每个通道X-i,生成介于0~1的一个随机数r-i,从而得到一个键值key-i。接下来选择其中M个最大的键值并将其对应的mask-i设置为1。这里wrs- ratio = M/N是WCD的一个超参数,表示经过wrs(加权随机选择)后保留了多少通道。
在这里插入图片描述
第三步:随机数生成器
更进一步,对于小的数据集,训练通常从在ImageNet上预先训练的模型开始,而不是从零开始。在预处理模型的高卷积层中,信道间的差异较大,即,只有少数通道的激活值相对较高,其他通道的激活值接近于零。如果我们完全根据这些层的分数来选择通道,那么对于给定的图像,在每个正向处理中,选择通道的顺序基本上是相同的,这是不可取的。为了解决这个问题,我们进一步建议添加一个二进制随机变量带参数q到mask-i的数字生成器rng。因此,在mask-i设置为1的情况下,x-i仍然有概率1−q不被选择。
summary
总体上,X~构造如下:
在这里插入图片描述
其中mask-i的概率p-i设置为1,rng生成1,其概率为q, xi~ = 0表示其W×H区域内的所有神经元均设置为0。α系数是用来减少训练和测试数据之间的偏差。在我们的实现中,α计算如下:
在这里插入图片描述
其中M~表示最终选定的通道集合,分子为所有通道的分数之和,分母为选定通道的分数之和。WCD只在训练阶段添加,而在推理阶段,所有通道都被发送到下一层。
设keep-ratio表示训练中X~保持通道数的比率,我们有:
在这里插入图片描述
其中|M~|表示M ~中的元素个数,wrs-ratio和q是WCD的两个超参数。通常我们有
0 < wrs-ratio < 1, 0 < q < 1。wrs-ratio表示经过wrs后保留多少通道。
上面提出的新方法,表示为下图:
在这里插入图片描述

实验

理论上,WCD可以插入到CNN内任意两个连续的层中。在实践中,它通常被用来规范卷积层的堆栈。将WCD与包括VGGNet ,ResNet 在内的经典网络集成的模式。具体来说,在观察到早期卷积层中的通道之间的关联性更强后,我们主要将WCD部署在高层之后,如VGGNet-中的pool4和pool5,ResNet-101中的res5a和res5c。再次强调,作为一个轻量级的无参数模块,WCD只在训练阶段添加到这些网络中,而在测试阶段则保持网络不变。此外,它不需要在ImageNet上重新设置,因此可以很容易地在小型数据集上finetuning这些网络。
实验使用了一下数据集:CUB-200-2011:一个使用广泛的细粒度数据集,收集了200种鸟类的图像,每一类有大约30张图像可供训练。Standford Cars:一个汽车分类的数据集,包括品牌,型号和年份。Caltech-256:一组目标类别的数据集的集合,通过从谷歌图片搜索下载样本,然后人工去除不符合该类别的图像而得到。

结果

在这里插入图片描述
可以看到,整合了 WCD 的模型总是优于基准。但是,这并不意味着整合了 WCD 的网络的表现接近当前最佳,比如 RA-CNN和 MA-CNN。这是因为 WCD 是一种相当通用的方法,可用于在小数据集上微调 CNN 时缓解过拟合问题,其可以整合进这些已有的模型中。
在这里插入图片描述
在这里插入图片描述
行F和行G是上述两种WCD的特殊情况,即,则wrs比值或q均设为1。对比F行和H行,可以看出WCD的有效性。而行之间的比较,G和H行表明了RNG在WCD中的必要性。此外,表4最后三行结果进一步证明了WCD的优越性,说明WCD具有较低的keep-ratio(wrs-ratio×q = 0.25)。它可能适用于训练图像非常罕见的情况,如医学图像分析。
在这里插入图片描述
图5显示了的效果,使用表1所示的设置进行培训。可以看出,WCD的训练误差曲线下降速度较慢,测试误差较低,说明WCD可以减少训练阶段的过拟合。WCD的计算成本。WCD引入的计算成本可以忽略不计。此外,这些额外的成本只在训练阶段引入,推理成本根本没有增加。

总结

在这篇论文中,作者提出了一种修改版的 dropout 作为一种 CNN正则化方法。他们提出的方法 WCD 可用于卷积层的堆栈。这是一种轻量级的组件,仅需在训练阶段引入可忽略的少量计算成本,就能将其整合进任意已有模型中。这篇论文的有趣之处在于其采用了一个非常简单的观察,即更高 (更浅) 的卷积层通常更可解释;另一个观察是之前一层所生成的当前所有通道都会在下一层中得到平等对待。作者利用了这两个观察来取得更优的表现。

标签:Convolutional,Regularization,Weighted,卷积,wrs,选择,WCD,CNN,通道
来源: https://blog.csdn.net/XiaoTaiYang6/article/details/102755791