首页 > 其他分享 >[ACM MM2024]CLIPCleaner Cleaning Noisy Labels with CLIP

[ACM MM2024]CLIPCleaner Cleaning Noisy Labels with CLIP

时间:2024-12-17 11:54:29浏览次数:4  
标签:Labels CLIP text 样本 噪声 分类器 CLIPCleaner mathrm

这篇文章基于样本选择的噪声标签学习(Learning with Noisy labels)方法,通过引入CLIP帮助过滤噪声样本。

Introduction

噪声标签的方法包括:

  1. 开发鲁棒的损失函数
  2. 使用标签噪声转移矩阵对噪声标签进行建模

然而这些方法在处理高噪声比和复杂的噪声模式(两个图片很相近但是标签不同,例如“狼”和“狗”)时通常不是最优的。

而近些年基于样本选择的方法更为流行。样本选择基于这样的事实:在训练过程中,模型倾向于更早地拟合干净样本,而不是噪声样本,这使得干净样品的损失相对较小。同样,这类方法也存在局限性:

  1. 一些标签噪声存在于视觉上非常相似的类别之间(hard noise)。
  2. “自我确认(self-confirmation)”偏置:训练中的模型至少部分地在噪声标签上进行训练引起的。

例如下图中,(a)灰色的线表示样本选择的边界阈值,在被选择的样本中(c)中展示了干净样本,(b)中展示了噪声样本。可以看到许多噪声样本由于有着相似的颜色和纹理被误认为是干净样本。

针对上面提到的样本选择局限性,作者引入了CLIP,这带来了两个优势:

  1. 样本选择考虑到了类别之间的视觉和语义相似性,因此可以补偿仅依赖视觉信息进行样本选择可能产生的偏差。
  2. 样本选择与训练模型无关,因此不受噪声标签和“自我确认”偏差的影响。

需要注意的是,作者在文章强调:

  1. 最终分类器与用于样本选择的CLIP的VL模型不同。
  2. 我们坚持仅使用CLIP进行样本选择,并且不对其进行训练/微调。

Method

CLIP回顾

每个样本有一对文本和图像,正样本表示匹配的图像-文本对,负样本为图像和其他文本以及文本和其他图像的组合。CLIP的损失函数为:

\[\begin{aligned}L(x_i^{\prime},z_i;g,h)&=\frac{1}{2}\big(-\log\frac{\exp(g(x_{i}^{\prime})^{T}h(z_{i}))}{\sum_{j=1}^{M}\exp(g(x_{i}^{\prime})^{T}h(z_{j}))}\\&-\log\frac{\exp(g(x_i')^Th(z_i))}{\sum_{j=1}^M\exp(g(x_j')^Th(z_i))}).\end{aligned} \]

CLIP的zero-shot分类器

CLIP本身没有分类头,对于样本的类别概率预测\(P(y|\textbf{x}=x_i)\),使用zero-shot classifier进行预测。简洁得说就是,比较图像特征与文本特征的相似性,选择最相似的文本作为预测类别。因为文本和标签是一一对应的,所以可以直接使用文本作为标签。

文中还给出了CLIP zero-shot分类器比一般的分类器好的解释,但个人觉得没什么有用的信息。作者把一般的分类器(线性层输出经过softmax)称为诱导分类器(induced classifier)\(P_{induced}(\mathrm{y}|\mathrm{x}=x_i)=\mathrm{softmax}(f^{\prime}(g(x_i)))\)。作者比较了两者和真实概率分布的距离:

\[d(P_{zeroshot},P)\leq\varepsilon_{domain}\color{blue}{+\Delta(\lambda_{0}\varepsilon_{clip}+\lambda_{1}\Re(G\circ\mathcal{H})+\lambda_{2}l_{\infty}^{clip}\sqrt{\frac{\log1/\delta}{M}}+\lambda_{3}\varepsilon_{n})} \]

\[d(P_{induced},P)\leq\varepsilon_{noise}\color{blue}{+\lambda_0\varepsilon_{induced}+\lambda_1\Re(\mathcal{F})+\lambda_2l_\infty^{noisy}\sqrt{\frac{\log1/\delta}{N}}} \]

忽略不可控误差项和常见误差项(蓝色部分)。两个分类器的误差项分别为\(\varepsilon_{domain}\)和\(\varepsilon_{induced}\)控制。

  • \(\varepsilon_{domain}\)表示由CLIP预训练分布\(Q\)和真实分布\(P_{true}\)之间的域偏移引起的偏差项
  • \(\varepsilon_{induced}\)表示训练数据集中的标签噪声引起的差分项。

结论是:1. zero-shot分类器受域偏移和prompt质量的影响;2. 诱导分类器受噪声数据集的标签噪声的影响。显然,对于后者,我们能做的是提升prompt的质量。更好的prompt工程,可以减少\(\varepsilon_{domain}\)。

在prompt的生成中,在动物分类任务中使用类别特定特征,例如不同动物物种的独特颜色或习性:

\[\begin{aligned}\mathcal{P}_{j}=&\text{A photo of }\{\text{class name of }y_i\},\text{ which is/has}\\&\{\text{class-specific feature }j\text{ of class }y_i\}.\end{aligned} \]

例如:

  • A photo of {hen}, which is {a domesticated bird}.
  • A photo of {tench}, which is {a type of fish}.
  • A photo of {crocodile}, which is {a large reptile}.

整个选择的过程:

选择指标的计算

得到预测概率分布后,作者考虑了两种指标判断是否选择样本:基于一致性和基于损失:

\[\begin{aligned}\mathbb{G}_{consistency}=\mathbb{I}(\frac{\tilde{P}(\mathrm{y}=y_i|\mathrm{x}=x_i)}{\max_k\tilde{P}(\mathrm{y}=k|\mathrm{x}=x_i)}\geq\theta_{consistency})\end{aligned} \]

\[\mathbb{G}_{loss}=\mathbb{I}(\mathbb{P}(-\log\tilde{P}(\mathrm{y}=y_i|\mathbf{x}=x_i)\in\mathrm{GMM}_{small})\geq\theta_{loss}) \]

在文中采取保守策略,对不同的样本选择结果进行交集,优先考虑样本选择的精度。

MixFix

受 FixMatch 启发,我们还基于训练模型\(f\)检查未标记子集中每个样本的当前预测\(\textbf{p}_i\),对于没有被筛选的样本,作者设置了两个阈值,进一步得吸收潜在的干净样本

\[\begin{aligned} (w_i,y_i)=\begin{cases} (0,y_i),\mathrm{~if~}p_m<\theta_r\mathrm{~and~}p_m<\theta_r^{\prime}&\star\mathrm{Drop}\star \\ (1,y_i),\mathrm{~if~}p_m>\theta_r\mathrm{~and~}y_i=y_m&\star\mathrm{Absorb}\star\\ (1,y_m),\mathrm{~if~}p_m>\theta_r^{\prime}\mathrm{~and~}y_i\neq y_m&\star\mathrm{Relabel}\star&&\end{cases}\end{aligned}\]

\(w_i=1\)表示对应的样本被选择。

与 FixMatch对所有样本使用一个阈值不同,我们通常设置\(\theta_r\le\theta_r'\)。这使我们能够充分利用噪声标签来区分“吸收”和“重新标记”过程。

实验

在实验中,有一个数据集值得注意,在这里作者的方法表现得并不突出。Clothing1M数据集比其他数据集更细粒度,对于这种细粒度的噪声数据集,样本选择可能不是最优策略。

Table 5: Testing accuracy (%) on Clothing1M.

\[\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|} \hline \text{CE} & \text{F-correction } & \text{RRL } & \text{C2D } & \text{DivideMix} & \text{ELR+ } & \text{SSR+} & \text{TCL } & \textbf{Ours} & \textbf{Ours (Co-training)} & \textbf{CLIPCleaner + DivideMix} \\ \hline 69.21 & 69.84 & 74.30 & 74.84 & 74.76 & 74.81 & 74.83 & 74.80 & 73.41 \pm 0.65 & 74.01 \pm 0.47 & \mathbf{74.87 \pm 0.44} \\ \hline \end{array} \]

参考文献

  • Feng, Chen, Georgios Tzimiropoulos, and Ioannis Patras. "CLIPCleaner: Cleaning Noisy Labels with CLIP." Proceedings of the 32nd ACM International Conference on Multimedia. 2024.

标签:Labels,CLIP,text,样本,噪声,分类器,CLIPCleaner,mathrm
From: https://www.cnblogs.com/zh-jp/p/18612011

相关文章

  • 在Eclipse中添加Servlet-api.jar的方法
    在Eclipse中添加Servlet-api.jar的方法方法一:点击窗口->首选项->Java->构建路径->类路径变量->新建;将你的tomcat目录下的common/lib/servlet.jar加进来。如果你建立了一个tomcatproject它会自动加进来的,如果没有的话你也可以通过手动来加入,选中你刚才建的项目右击->属性->java......
  • (2)JS-Clipper2之Clipper
    1.类描述            Clipper类封装了多边形上的布尔运算(交集、并并、差和异或),也称为多边形裁剪。输入多边形(主题subject 和剪辑集 clipsets)通过Clipper对象的AddPath和AddPaths方法传递给它,剪辑操作通过调用它的Execute方法执行。通过重复调用Execute,可以......
  • (6)JS-Clipper2之ClipperOffset
    1.描述ClipperOffset类封装了对打开路径和关闭路径进行偏移(膨胀/收缩)的过程。这个类取代了现在已弃用的OffsetPaths函数,该函数不太灵活。可以使用不同的偏移量(增量)多次调用Execute方法,而不必重新分配路径。现在可以在一次操作中对开放和封闭路径的混合进行偏移。此外,Off......
  • CLIP-LoRA: Low-Rank Few-Shot Adaptation of Vision-Language Models
    文章汇总当前的问题当前的视觉语言模型(VLMs)小样本的研究主要在提示学习和适配器上,这通常依赖于繁重的训练程序(提示学习)和/或精心选择的任务特定超参数(适配器),这可能会阻碍其适用性。作者在VLMs的小样本学习中引入了低秩自适应(LoRA),并与当前最先进的基于提示和基于适......
  • python: Eclipse 2024‑03 R+pydev
    https://www.eclipse.org/downloads/packages/release/2024-03/r      ......
  • 免费送源码:Java+B/S+My eclipse+MySQL Springboot 连锁超市零售管理系统 计算机毕业设
         摘 要在网络信息的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,超市零售管理只能以用户为导向,按品种小批量组织生产,以产品的持续创新作为超市零售管理最重要的竞争手段。系统采用了B/S结构,将所有业务......
  • 【全流程】eclipce解决javaweb项目向数据库插入中文字符时乱码问题
    问题背景:使用jdk1.8tomcat9.0.72eclipce2021版本maven2-8-4问题描述:制作javaweb项目时想实现向数据库里增加值,传英文没问题,但是传中文时发现乱码,最开始我以为是传输问题解决过程:建议按流程自己检查一遍1.先检查数据库字母集2,检查eclipce软件设置,按我发的第三篇参考......
  • ECLIPSE:通过视觉提示调整进行泛视分割的有效连续学习
    ECLIPSE:通过视觉提示调整进行泛视分割的有效连续学习   泛视分割结合了语义分割和实例分割,是一项前沿的计算机视觉任务。尽管最近在深度学习模型方面取得了进展,但现实世界应用程序的动态特性需要持续学习,其中模型随着时间的推移适应新类(可塑性),而不会忘记旧类(灾难性遗忘)。当前......
  • Input报错“Form elements must have labels: Element has no title attribute Elemen
    喵~项目开发难免会遇到些不解的问题,以下总结的是简化版,重在复现问题,解决问题。写表单时,如果只是单独写了input元素,发现在后台管理会飘红。感觉很奇怪,明明没有写错语法,为什么会飘红呢?1、写一段最普通的html页面2、右键,选择“检查”,打开后台管理器,指向input元素此时,可以看到......
  • Clip模型使用
    代码文件结构clip.pyCLIP模块提供了以下方法:clip.available_models()返回可用的CLIP模型的名称。clip.load(name,device=...,jit=False)根据clip.available_models()返回的模型名称,返回模型以及模型所需的TorchVision变换。如有必要,它将下载模型。name参数也可以是本地......