模型鲁棒性有明显提升 ------ 十月份天气凉爽的时候,网上出现了一篇挺有意思的文章:https://arxiv.org/pdf/1810.12890.pdf Google Brain提出了一种新的正则化方法:DropBlock...feature map的像素点(图b),但实际上我们的语义信息是完整、连续的,我们更希望其mask能够彻底block到某一块语义信息,从而提升其他部分的信息权重,实现模型正则约束泛化(图c),这样就诞生了 DropBlock...(tf.keras.layers.Layer): def __init__(self, keep_prob, block_size, **kwargs): super(DropBlock...import DropBlock tf.enable_eager_execution() # only support `channels_last` data format a = tf.ones...([2, 10, 10, 3]) drop_block = DropBlock(keep_prob=0.8, block_size=3) b = drop_block(a, training=True
本论文介绍了一种 dropout 的结构化形式 DropBlock,对于正则化卷积网络格外有效。在 DropBlock 中,同一模块中的特征会被一起丢弃,即特征图的相邻区域也被丢弃了。...在 COCO 检测任务上,DropBlock 将 RetinaNet 的 AP 从 36.8% 提升到 38.4%。 DropBlock 是类似 dropout 的简单方法。...二者的主要区别在于 DropBlock 丢弃层特征图的相邻区域,而不是丢弃单独的随机单元。Algorithm 1 展示了 DropBlock 的伪代码。...当 block_size = 1 时,DropBlock 类似 dropout,当 block_size 覆盖完整特征图的时候,DropBlock 类似 SpatialDropout。...Scheduled DropBlock。我们发现具备固定 keep_prob 的 DropBlock 在训练过程中表现不好。最初 keep_prob 的值过小会影响模型的学习。
为了更加有效丢弃局部语义信息,激励网络学到更加鲁棒有效的特征,应该按块(block)丢弃(drop),这就是DropBlock的由来。 请看下面示意图: ?...(c)图为DropBlock方法,语义信息区域被空间连续的丢弃,使得网络不得不专注于剩余含有语义信息区域中特征的学习。 算法思想 那如何按块(block)丢弃(drop)呢?...ResNet-50网络+DropBlock在ImageNet验证集的结果,显著提升了分类精度。 ?...下图是在state-of-the-art分类网络AmoebaNet上加DropBlock的结果,top1和top5都取得了稳健提升。 ?...下图是使用RetinaNet检测网络加DropBlock在COCO目标检测任务上的结果,依然表现优异。 ?
, float dropblock_size_rel, int dropblock_size_abs, int w, int h, int c); // dropout前向传播 void forward_dropout_layer..., float dropblock_size_rel, int dropblock_size_abs, int w, int h, int c) { dropout_layer l = { (LAYER_TYPE...= dropblock; l.dropblock_size_rel = dropblock_size_rel; l.dropblock_size_abs = dropblock_size_abs...) { if(l.dropblock_size_abs) fprintf(stderr, "dropblock p = %.2f l.dropblock_size_abs...(stderr, "dropblock p = %.2f l.dropblock_size_rel = %.2f %4d -> %4d\n", probability
, Linear, BatchNorm2d, ReLU from torch.nn.modules.utils import _pair __all__ = ['SKConv2d'] class DropBlock2D...= dropblock_prob if self.rectify: from rfconv import RFConv2d self.conv...> 0.0: self.dropblock = DropBlock2D(dropblock_prob, 3) def forward(self, x):...x = self.conv(x) if self.use_bn: x = self.bn0(x) if self.dropblock_prob >...0.0: x = self.dropblock(x) x = self.relu(x) batch, channel = x.shape[:2
Ghiasi 等人(2018)提出的 DropBlock 丢弃卷积层中的相邻神经元方块(按块丢弃)。...虽然 DropBlock 在 ResNet-50 和 AmoebaNet 架构中表现良好,但它并未被证实在 EfficientNet 和 EfficientDet 等更近期架构中实现成功应用。...在 CIFAR-10 数据集上,WRN-28-10 模型使用 AutoDropout 得到的准确率比使用 DropBlock 高出 0.6%,相当于误差减少了 16%。...需要注意的是,在该数据集上,与未使用任何正则化的模型相比,DropBlock 并没有出现显著提升,这表明丢弃邻近区域块的想法存在不足。...提升程度要高于 DropBlock 在 AmoebaNet 中提升的 0.5%,而且 EfficientNet 基线的准确率要高于 AmoebaNet。 ?
此外,本文使用Mish激活作为补充选项, DropBlock Yolov4中使用的Dropblock,其实和常见网络中的Dropout功能类似,也是缓解过拟合的一种正则化方式。...而Dropblock和Dropout相似,比如下图: ?...所以右图Dropblock的研究者则干脆整个局部区域进行删减丢弃。...Dropblock的研究者与Cutout进行对比验证时,发现有几个特点: Dropblock的效果优于Cutout Cutout只能作用于输入层,而Dropblock则是将Cutout应用到网络中的每一个特征图上...Dropblock可以定制各种组合,在训练的不同阶段可以修改删减的概率,从空间层面和时间层面,和Cutout相比都有更精细的改进。
Selection of architecture (网络结构的选择) 六、Additional improvements 七、细节 1、 Mosaic data augmentation(马赛克数据增强) 2、 DropBlock...hide-and-seek、grid mask:随机的或者是均匀的选择图像中的多个矩形区域,并将其全部替换成0 feature map: (在特征图上做增强) DropOut/DropConnect和DropBlock...GloU_ loss 3、DIoU_ loss 4、CIoU_ loss(yolov4采用的) Yolov4-use: 1、CutMix and Mosaic data augmentation. 2、DropBlock...马赛克数据增强:每张图片做四个类别,每个类别根据图像所占的面积大小进行分配标签概率 2、 DropBlock regularization ?...Dropout:(b)图中的“x”,代表的是扔掉的像素,就是没有激活的像素,但是网络还是会从dropout掉的激活单元附近学习到同样的信息的 Dropblock:如(c)图,把整块信息dropout掉,
3、Diversity-Achieving Slow-DropBlock Network for Person Re-Identification 地址:http://103.95.217.75/xxx.itp.ac.cn.../pdf/2002.04414.pdf 描述:一个是slow-dropblock,另一个就是注意力机制和支路的使用、GAP提取全局信息,GMP提取局部信息。
10、特征增强相关-DropBlock 论文题目:DropBlock: A regularization method for convolutional networks 论文地址:https://arxiv.org.../abs/1810.12890 开源代码:https://github.com/miguelvr/dropblock 由于dropBlock其实是dropout在卷积层上的推广,故很有必须先说明下...dropblock有三个比较重要的参数,一个是block_size,用来控制进行归零的block大小;一个是γ,用来控制每个卷积结果中,到底有多少个channel要进行dropblock;最后一个是keep_prob...DropBlock in ResNet-50 DropBlock加在哪?最佳的DropBlock配置是block_size=7,在group3和group4上都用。...将DropBlock用在skip connection比直接用在卷积层后要好,具体咋用,可以看代码。
freebies Bag of freebies 就是只改变训练策略,增加训练开销,但是不增加推理测试的开销获得更好的精度,称为“免费赠品”,用到的改进有数据增强(光度畸变、几何畸变、Cutmix)、正则项(DropBlock...augmentation数据增强: CutOut, MixUp, CutMix Regularization method正则化方法: DropOut, DropPath, Spatial DropOut, or DropBlock...而在正则化方法中,DropBlock的效果是最优的。对于归一化方法的选择,由于需要单卡训练,因此不考虑SyncBN。...2)Neck颈部:SPP,PAN 3)Head头部:YOLOv3 总体来看,YOLO v4使用了如下结构: 主干网络的BoF(Bag of Freebies):CutMix和Mosaic数据增强, DropBlock...CSPNet), Multiinput weighted residual connections(MiWRC) 目标检测端的BoF(Bag of Freebies):CIoU-loss, CmBN, DropBlock
能让训练更加稳定,我们将batchsize从64调整到196,并适当调节训练策略以及学习率 3.2.2 滑动平均 类似于BN里的滑动平均,我们在训练参数更新上也做了滑动平均策略 λ这里取0.9998 3.2.3 DropBlock...DropBlock也是谷歌提的一个涨点神器,但是适用范围不大。...作者发现给BackBone直接加DropBlock会带来精度下降,于是只在检测头部分添加。...关于DropBlock可以看我们写的这篇文章:【科普】神经网络中的随机失活方法 3.2.4 IOU Loss 在yolov3中使用的是smooth L1 Loss来对检测框做一个回归,但这个Loss并不适合以...我们通过增加了DCN卷积,将mAP提高到39.1%,增加的参数仍远远小于原始yolo3 4.2 B->C 基础模型搭建好后,我们尝试优化训练策略 选用的是更大的batch和EMA,并且加入DropBlock
mini-Batch Normalization,CmBN 自对抗训练(Self-adversarial-training,SAT) Mish 激活(Mish-activation) Mosaic 数据增强 DropBlock...CSPDarknet53 Neck:SPP、PAN Head:YOLOv3 具体而言,YOLO v4 使用了: 用于骨干网络的 Bag of Freebies(BoF):CutMix 和 Mosaic 数据增强、DropBlock...用于骨干网络的 Bag of Specials(BoS):Mish 激活、CSP 和多输入加权残差连接(MiWRC); 用于检测器的 Bag of Freebies(BoF):CIoU-loss、CmBN、DropBlock...regression loss):MSE、IoU、GIoU、CIoU、DIoU; 数据增强:CutOut、MixUp、CutMix; 正则化方法:DropOut,、DropPath、Spatial DropOut、DropBlock
MSE, IoU, GIoU, CIoU, DIoU 数据增强: CutOut, MixUp, CutMix 正则化方法: DropOut, DropPath, Spatial DropOut, or DropBlock...而在正则化方法中,DropBlock的效果是最优的。对于归一化方法的选择,由于需要单卡训练,因此不考虑SyncBN。...Backbone:CSPDarknet53 Neck:SPP,PAN Head:YOLOv3 YOLO v4使用: 主干网络的BoF(Bag of Freebies):CutMix和Mosaic数据增强, DropBlock...(CSPNet), Multiinput weighted residual connections(MiWRC) 检测端的BoF(Bag of Freebies):CIoU-loss, CmBN, DropBlock
(3)Dropblock Yolov4中使用的Dropblock,其实和常见网络中的Dropout功能类似,也是缓解过拟合的一种正则化方式。...而Dropblock和Dropout相似,比如下图: 中间Dropout的方式会随机的删减丢弃一些信息,但Dropblock的研究者认为,卷积层对于这种随机丢弃并不敏感....所以右图Dropblock的研究者则干脆整个局部区域进行删减丢弃。...Dropblock的研究者与Cutout数据增强对训练效果进行对比验证时,发现有几个优点: 优点一:Dropblock的效果优于Cutout 优点二:cutout只能作用于输入层,而Dropblock...Yolov4中直接采用了更优的Dropblock,对网络的正则化过程进行了全面的升级改进。
(3)Dropblock Yolov4中使用的Dropblock,其实和常见网络中的Dropout功能类似,也是缓解过拟合的一种正则化方式。...而Dropblock和Dropout相似,比如下图: 中间Dropout的方式会随机的删减丢弃一些信息,但Dropblock的研究者认为,卷积层对于这种随机丢弃并不敏感,因为卷积层通常是三层连用:卷积+...所以右图Dropblock的研究者则干脆整个局部区域进行删减丢弃。...Dropblock的研究者与Cutout进行对比验证时,发现有几个特点: 优点一:Dropblock的效果优于Cutout 优点二:Cutout只能作用于输入层,而Dropblock则是将Cutout应用到网络中的每一个特征图上...Yolov4中直接采用了更优的Dropblock,对网络的正则化过程进行了全面的升级改进。
Normalization (CmBN) Self-adversarial-training (SAT) Mish-activation Mosaic data augmentation CmBN DropBlock...Head:YOLOv3 YOLOv4 = CSPDarknet53+SPP+PAN+YOLOv3 其中YOLOv4用到相当多的技巧: 用于backbone的BoF:CutMix和Mosaic数据增强,DropBlock...正则化,Class label smoothing 用于backbone的BoS:Mish激活函数,CSP,MiWRC 用于检测器的BoF:CIoU-loss,CmBN,DropBlock正则化,Mosaic
3.BackBone训练策略 这里我们主要从数据增强,DropBlock正则化,类标签平滑方面来学习下BackBone训练策略。...3.2 DropBlock正则化 正则化技术有助于避免数据科学专业人员面临的最常见的问题,即过拟合。...这里YOLOv4用了DropBlock正则化的方法。...DropBlock方法的引入是为了克服Dropout随机丢弃特征的主要缺点,Dropout被证明是全连接网络的有效策略,但在特征空间相关的卷积层中效果不佳。...DropBlock论文中作者最终在ImageNet分类任务上,使用Resnet-50结构,将精度提升1.6%个点,在COCO检测任务上,精度提升1.6%个点。
领取专属 10元无门槛券
手把手带您无忧上云