【Out-of-Distribution Detection】Mixup in NeurIPS 2019、CutMix in ICCV 2019、PixMix in CVPR 2022 个人理解

本文介绍了三种数据增强技术——Mixup、CutMix和PixMix,用于改善深度神经网络的校准能力和鲁棒性,以提升分布外检测(OOD检测)的性能。Mixup通过线性插值创建训练样本的混合体,CutMix则结合图像区域切割和替换,而PixMix利用分形和特征可视化图像进行混合,以增强模型对异常和干扰的识别能力。这些技术有助于训练出更稳健的分类器,能更好地处理未见过的样本。

一、简介

题目:
(1)On Mixup Training: Improved Calibration and Predictive Uncertainty for Deep Neural Networks
(2)CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features
(3)PixMix: Dreamlike Pictures Comprehensively Improve Safety Measures
会议: (1)NeurIPS 2019、(2)ICCV 2019、(3)CVPR 2022
任务: 分布外检测(Out-of-Distribution Detection, OOD Detection),测试集中可能出现超出训练集样本分布的样本(可以是来自未知类的样本、被破坏的样本、异常样本等等),要求将这些样本隔离出来。
Note: OOD Detection与开放集识别(Open Set Recognition, OSR)的任务目标类似,但通常OSR比OOD Detection更难一些。例如,如果训练类为数字1⃣️~5⃣️,OSR要拒绝的可能是测试集中的数字6⃣️、7⃣️,而OOD Detection要拒绝的可能是✈️、🚗。显然,相比✈️、🚗,数字6⃣️、7⃣️与1⃣️~5⃣️更加相似,也就更难被区分出来。
Idea:
使用数据增强方法,在训练集中提前引入干扰或噪声,使分类器在训练时就能够见到一些OOD样本,从而使分类器具备一些更有利于OOD Detection的性质,例如校准(Calibration)、鲁棒性(Robustness)等,这些性能的含义和作用下面会详细讲。
在这里插入图片描述
如图,Cutout将图像的一部分移除或遮挡,Mixup将两个图像混合,CutMix将两个图像部分区域互换,PixMix将图像与不规则图形混合。

二、详情

1. Mixup

通常,神经网络分类器会有过分自信(Over-Confident)的问题,即SoftMax输出的最大概率值(后面简称为获胜分数)一般较大,这就导致即使分类器将一个样本分错了,这个样本的获胜分数仍然可能很大。例如,假设一共有3个已知类别,分类器将属于第一个类别的某个样本错误地分到了第二个类中,对应的SoftMax输出可能是 [ 0.01 , 0.99 , 0.0 ] [0.01, 0.99, 0.0] [0.01,0.99,0.0]。显然,分类器对自己的判断过于自信了,在这种情况下,如果遇到的是OOD的样本,这种问题将更加突出。

为了解决分类器过分自信的问题,我们会希望分类器具有好的校准能力。通俗来说,就是希望分类器对于无法做出准确判断的样本,分配的获胜分数应尽可能小,从而表示自己没有足够的信心正确分类该样本;对于有足够信心做出准确判断的样本,则可分配更高的获胜分数。

如果用准确率和获胜分数来形容,就是希望准确率和获胜分数呈现相近的分布。更直白的说,就是如果获胜分数为0.9的样本的准确率(被正确分类的可能性)最高,那就让分类器多给样本分配0.9的获胜分数
准确率vs置信度
如图,横轴为平均获胜得分,纵轴为准确率,可以看到随着epoch增加,各批次的(平均获胜得分,准确率)分布也在不断变化。第一行是常规训练分布变化图,随着epoch增加,平均获胜分数的分布趋向尖峰状,但其准确率却有高有低,这就是分类器的过分自信问题的直观展示,也就是说即使分类器无法保证预测的准确性,也会分配很高的获胜分数。第二行则是通过Mixup改善该问题后的结果,可以看到准确率和最大分数的分布更相似了,也就是说此时的分类器会分配更多能得到高准确率的分数给样本。这样,只有在分类器对某个样本很有正确分类的信心时,才会分配很高的获胜分数,对没信心的就会分配较低的获胜分数。

Mixup通过取原始训练数据附近的样本点和标签做额外的训练集实现数据增强,公式如下:
x ~ = λ x i + ( 1 − λ ) x j y ~ = λ y i + ( 1 − λ ) y j \tilde{x}=\lambda x_i+(1-\lambda)x_j \\ \tilde{y}=\lambda y_i+(1-\lambda)y_j x~=λxi+(1λ)xjy~=λyi+(1λ)yj 其中, x ~ \tilde x x~ y ~ \tilde y y~为生成的近邻样本和标签, x i x_i xi x j x_j xj为两个原始训练数据, y i y_i yi y j y_j yj是它们的one-hot硬标签, λ \lambda λ采样自 B e t a ( α , α ) Beta(\alpha,\alpha) Beta(α,α) α = 0 \alpha=0 α=0时,生成的样本就是 x i x_i x

YOLOv8(You Only Look Once version 8)作为下一代目标检测模型,具有强大的内部特征和架构设计,使其在实时性和准确性方面表现出色。以下是对YOLOv8的内部特性和架构的详细解释: ### 架构概述 YOLOv8采用了单阶段目标检测框架,结合了高效的骨干网络和先进的检测头设计。其核心思想是将整个图像划分为网格单元,并在每个单元中预测边界框和类别概率。这种设计使得YOLOv8能够在一次推理过程中完成目标的定位和分类,从而实现高效的实时检测[^1]。 ### 骨干网络 YOLOv8的骨干网络基于CSPDarknet53,这是一种高效的特征提取器,能够有效地捕捉图像中的多层次特征。CSPDarknet53通过使用跨阶段部分(Cross Stage Partial connections)来减少计算量并提高特征复用性,从而提升了模型的效率和性能。 ### 检测头设计 YOLOv8的检测头采用了Anchor-Free的设计,避免了传统Anchor-Based方法中需要手动设置锚点框的复杂性。这种设计使得模型能够更灵活地适应不同形状和大小的目标。此外,YOLOv8还引入了动态标签分配策略,根据训练过程中的损失动态调整正负样本的分配,进一步提高了模型的鲁棒性和准确性[^1]。 ### 多尺度预测 YOLOv8支持多尺度预测,通过在不同层级的特征图上进行目标检测,能够更好地处理不同尺寸的目标。这种多尺度预测机制增强了模型对小目标和大目标的检测能力,提升了整体的检测精度[^1]。 ### 数据增强 为了提升模型的泛化能力和鲁棒性,YOLOv8在训练过程中采用了多种数据增强技术,如Mosaic增强、MixUp增强等。这些技术通过合成多样化的训练样本,帮助模型更好地学习目标的不变性和变异性特征,从而提高检测效果[^1]。 ### 性能优化 YOLOv8在设计时充分考虑了计算资源的利用效率,采用了轻量化模块和优化的卷积操作,确保在保持高精度的同时,尽可能降低计算成本。这使得YOLOv8能够在各种硬件平台上高效运行,适用于边缘设备和嵌入式系统。 ### 示例代码 以下是YOLOv8的基本使用示例,展示了如何加载预训练模型并进行目标检测: ```python from ultralytics import YOLO # 加载预训练的YOLOv8模型 model = YOLO('yolov8n.pt') # 对图像进行目标检测 results = model('path/to/image.jpg') # 显示检测结果 for result in results: print(result) ``` ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fulin_Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值