数据增强之mixup论文笔记

                                                数据增强之mixup论文笔记

一、前言

深度学习一直以来存在计算量大(落地困难)和模型过拟合的问题。为了解决过拟合问题,从模型本身和数据这两个方面着手,提出了很多有效的方法。

数据增强(Data Argumentation)则是从数据层面解决过拟合,提高模型的泛化性(generalization),通用的数据增强方法有:随机裁切、翻转(左右上下)、颜色抖动(color jitter)、噪声(高斯噪声)、旋转、 平移、缩放、仿射变换和PCA jitter等等。

比较简单地理解是数据增强首先增大了训练集规模,进一步增加了训练样本的多样性(模拟真实场景中样本可能的状态),由于数据增强是对训练样本的各种有章法的变换,这就使得模型能够学到数据更加本质的特征,增强模型对样本细微变换的适应性(减弱对变化的敏感性)。

二、mixup数据增强

论文《mixup:BEYOND EMPIRICAL RISK MINIMIZATION》则提出了一种简单明快的数据增强方法mixup,论文中试验也非常清晰地证明其有效性。

1)贡献(创新点):mixup采用对不同类别之间进行建模的方式实现数据增强,而通用数据增强方法则是针对同一类做变换。思路非常简单:

 

从训练样本中随机抽取两个样本进行简单的随机加权求和,同时样本的标签也对应加权求和,然后预测结果与加权求和之后的标签求损失,在反向求导更新参数。

代码实现也比较简单:

这是论文中给出的代码,比较好理解。但是最后官方给出实现上还是有一些变动,输入网络的训练样本mixup操作的代码:

Github:https://github.com/hongyi-zhang/mixup

并不是同时取出两个batch,而是取一个batch,并将该batch中的样本ID顺序打乱(shuffle),然后再进行加权求和。而最后损失函数则是输出的预测值对这两组标签分别求损失,然后用之前样本所有的权重加权求和,反向求导更新参数。流程如下:

论文也给出了解释:单个Dataloader与两个是等效的,论文的试验也证明了这一点。

注意到这个权重是怎么来的呢?作者假设权重符合Beta分布,Beta分布是概率的概率分布,Beta分布有两个参数  ,  代码默认设置为1.0,并且设置  , 由于Beta分布的期望为  ,如果 ,则期望为0.5。在作者多组实验中,无论如何设置 的值,期望始终为0.5。可不可以这样理解:权重在每个batch都会随机产生,在整个训练过程中会有N个batch,权重在N次中期望近似为0.5。 Beta分布函数 图像如下,

2)试验效果距离

分类效果看起来非常显著啊,之前通用数据增强一起混用可能也就提升一点,这个一个打十个;作者也在生成模型GAN上做了实验,同样也有不俗的表现。

3)作者知乎答疑:

https://www.zhihu.com/question/67472285/answer/256651581

三、总结

   采用了mixup数据增强之后,可以看到至始至终参与模型训练的样本是真实样本线性插值的得到的,而并非直接是像经验风险最小化(Empirical Risk Minimization , ERM))训练中的真实样本。

论文《DATA AUGMENTATION BY PAIRING SAMPLES FOR IMAGES CLASSIFICATION》(https://arxiv.org/abs/1801.02929v2)。

和mixup有相同的思路(异曲同工),只是实现上个人感觉更加偏trick一些,该论文对训练集中成对图像像素相加求平均操作,损失函数和标签不变

训练过程中:

1)首先仅仅用普通的数据增强(如随机裁剪和左右镜像)训练(无SamplePairing data augmentation)。

2)在没有SamplePairing情况下训练1个epoch或100个epoch之后,开启SamplePairing,即对成对样本求均值。

3)间歇性开启与关闭SamplePairing,直到训练稳定以后关闭SamplePairing,用普通数据增强进行funtune训练,微调模型。

 

论文《Bag of Freebies for Training Object Detection Neural Networks》中奖mixup应用在目标检测算法上,同样效果也很好。

  

YOLOv7是一个通用目标检测算法,在LOv5的基础进行了改进和优化。以下是YOv7相对于YOLOv5的创新点和区别: 1. 网络结构改进:YOLOv7采用了一种新的网络结构,结合了PP-YOLO和YOLOv5的特点。它引入了Path Aggregation Network (PAN)模块,用于跨层特征融合,以提高目标检测的性能。 2. 骨干网络优化:YOLOv7在骨干网络上进行了优化,采用了更大的Backbone网络,如EfficientNet等,以提取更强的特征表示。 3. 数据增强策略:YOLOv7在数据增强方面进行了改进,引入了更多的数据增强策略,如MixUp、CutMix等,以增加模型的鲁棒性和泛化能力。 4. 多尺度训练:YOLOv7引入了多尺度训练策略,可以在不同尺度下对目标进行检测,从而提高模型对不同大小目标的检测能力。 5. 目标检测精度:相对于YOLOv5,YOLOv7在目标检测精度上有所提升。它通过改进网络结构、优化骨干网络以及使用更多的数据增强策略,使得模型能够更准确地检测和定位目标。 虽然YOLOv7在一些方面进行了改进和优化,但它与YOLOv5仍然有相似之处。它们都采用了单阶段目标检测的方法,具有实时性和高效性。同时,它们都采用了Anchor-based的思想,在不同尺度的特征图上进行目标检测。 总的来说,YOLOv7在网络结构、骨干网络、数据增强和多尺度训练等方面进行了改进和优化,以提高目标检测的性能和精度。它是YOLO系列目标检测算法的一个新的发展方向。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值