自监督学习效果差?Meta AI 提出 Q-score 快速过滤错误样本!

270052590a4ba9069200ef0ccad31579.png

文 | jxyxiangyu

自监督学习指的是不依靠人工标注数据,直接从数据中学习到有用的特征表示。自监督学习中所采用的监督信息可以是“是否属于同一实例样本”的二分类标签(对比学习),也可以是一段连续的自然语言文本的下一个词(自回归语言模型)。

然而自监督学习相关的论文看多了,感觉也就那么回事。除了可以减少对标注数据的依赖,下游任务中该分错类的case,照样会分错类。•᷄ࡇ•᷅

e1e697459dc211a055918d3e6a61121e.png

那么究竟有没有什么灵丹妙药可以缓解自监督模型在下游任务中出现分错类的情况呢?

最近 meta AI 的一篇工作研究了自监督模型在下游任务错误分类的原因,并且提出了缓解这一问题的方法,让我们一起来看看吧。

论文标题
Understanding Failure Modes of Self-Supervised Learning

论文链接
https://arxiv.org/pdf/2203.01881.pdf

自监督模型下游错误分类的潜在原因

为了研究自监督模型学习到的特征表示中哪些特征可以有助于下游任务的正确分类,作者用 ImageNet-100 预训练了 SimCLR 模型作为 baseline ,并且在学习到的特征表示后面接了个线性分类器用于下游任务的分类。f9b6632cbd5d286dc69d43c82765537b.png

图1 是训练学到的 ImageNet-100 中每个类的平均特征表示(部分特征),其中每个类是按照该类别的分类准确度(acc)排序的。图中用颜色深浅表示平均特征表示的值的绝对大小,左边是在下游任务中可以被正确分类的样本,右边是错误分类的样本的平均特征表示。

可以看到,

  1. 表征空间几乎是稀疏的,每个类的大部分特征都接近0;

  2. 在正确分类的样本中,每个类的平均特征表示都有十分明显的几个特征,这些特征是类别所独有的,不同类别的可区分特征都不一致,且不同类别的可区分特征有着高度的差异性,而这一点在错误分类的样本中并不明显,错误分类的样本其特征表示没有明显突出变化较大的特征;

  3. 所有样本中都存在或者都激活的特征不太可能是下游任务中用于区分某个类别的特征。

为了研究单个特征对分类正确与否的影响,作者进一步绘制了主要特征和噪声特征的热图,如下所示:

d2e1e5c94f53d3a8f12500a12971cf9e.png

可以看到对于正确分类的样本,主要特征能够捕捉到类别相关的特征,而分类错误的样本,主要特征则包含了太多的噪音和错误的信息;噪声特征的热图则侧重于样本中无信息的部分。因此,作者指出特征表示中包含了很多噪声特征,这些特征对正确分类没有太多的贡献。

综上所述,作者指出了错误分类的两个原因:

  1. 训练得到的特征表示中缺少类别特定的主要特征;

  2. 主要特征映射到了样本中错误的部分

基于上述几点,作者希望可以通过利用特征表示的特点用无监督的方式对特征表示进行分类,而不需要下游任务中的标签。

自监督表征的质量指标

为了衡量自监督模型学到的特征表示的质量,作者定义了一系列质量指标。

假定一个 SimCLR 模型,由 ResNet 基本编码器(base encoder,记作 )和多层感知机投影层(记作 )组成。 和 是 个数据样本中的第 个样本的两种变换表示,这里作者用到的数据增强方式是随机裁剪、随机水平翻转等方式的组合。与 SimCLR 类似,将样本输入基本编码器,分别得到自监督模型的特征表示 和,用投影层的输出   和   来计算损失函数和训练模型,其中 和 分别是表征空间和投影空间的维度大小。模型的优化目标是:

208e854bdbd4cb6b0548cb5f6ab91844.png

其中, 是模型参数,

402 Payment Required

因为 会应用到下游任务,为评估特征表示的好坏,作者给出了以下几个质量指标:

  • 均值 :计算每一个特征表示 的均值,即

  • 标准差 :计算每一个特征表示 的标准差

  • 软稀疏性(Soft Sparsity):计算 中特征小于 的百分占比,其中,

  • L1范数 :计算每一个特征表示 的L1范数,即

  • 的 分数:逐元素地计算 中最大值并计算 分数,即

    402 Payment Required

为评估以上指标在衡量下游任务中分类效果的好坏,作者研究并绘制了多个sota自监督模型(包括SimCLR、 SwaV、MoCo V2和BYOL)的特征表示关于上述指标的ROC(receiver operating characteristic)曲线和PR曲线。此外,作者还计算了相应的AUROC(ROC曲线下的面积)和AUPRC(PR曲线下的面积)。

9b834eacc2fdbef645c19c3f59294f4a.png298f2336404c19728aa73b070d026b37.png

可以看到,L1范数 和 的 分数在各个模型上面都有较为一致的表现,作者进一步可视化了 ImageNet-100 中5000个样本的L1范数和 分数。9e3fa2555bea28a9ca8941073b4de89b.png

可以看到,分类正确的样本的 分数普遍高于分类错误的样本,而L1范数则普遍低于分类错误的样本。

自监督 分数

根据前面的实验结果,作者设计了评判特征表示能否容易在下游任务分类正确的质量指标—— 分数。第 个样本的 分数定义如下:

e4b5fa426188dbd82cb8cea1b05782a2.png

分数既能衡量出特征表示的稀疏性(由 计算得到),又可以判单表示中是否有较高的偏差值的特征(由 计算得到)。图 4 和表 1 都展示了作者提出的 分数的性能,可以看出 分数在识别下游任务中是否分类正确的特征表示上确实效果明显。

此外,作者还将 分数应用到正则项上面,用于改善自监督模型特征表示的质量

其中, 是用于选择 分数过小的样本的阈值, 是正则项系数

上述公式是常见的正则化公式,但作者指出了这种目标函数会导致特征表示中的某个特征在所有样本中都被激活的情况出现,使得下游任务中很难正确分类,如下图所示:2230d4cde460033fa59ee4aac8f6a45c.png

为避免这种情况,作者提出了修改后的带正则化的优化目标:

402 Payment Required

其中, 是特征表示, 是所有特征表示的第 个特征(按列)的L1范数, 是阈值

实验

准确率

作者将上述 分数正则化应用到用 ImageNet-100 预训练的 SimCLR 模型上,正如下表所示,下游分类任务获得了 3.26% 的相对acc提升

884b6a826c78f5434b94b10877d7f986.png335910b100db9df513d636f1f2332210.png作者还展示了在应用 分数正则化前后每一类的acc变化,发现在 ImageNet-100 的某些类中,应用了 分数正则化后,其acc比没有应用 分数正则化有明显提高,而某些类会有些下降,acc下降的这些类多是动物超类,这些类别的特征表示存在很多共同特征,比较容易分错类,而应用 分数正则化则进一步放大了错误的特征,促使在下游任务中分错类。

特征表示

作者展示了 分数正则化后的自监督模型的特征表示,如下所示:72e391754e561b11e3b5dc726e8c9194.png

21d2bbe632ef5011ec7827605b58eeb6.png
▲Q分数正则化后的特征表示(不区分正确错误分类)

和没有用 分数正则化的特征表示(图 1 )相比,图 2 的特征表示中的主要特征更加明显;图 7 显示的没有区分分类正确与否的类平均特征表示,其中的特征有了明显清晰的区分;在表 2 中,作者给出了使用 分数正则化前后的AUROC和AUPRC的对比,可以看到,使用 分数正则化后,这两个指标都有明显的下降。以上都证明了 分数正则化的有效性。

可解释性

自监督模型的表示空间是稀疏的,大部分特征都接近于0,而这些接近于0的特征几乎在所有样本中都激活,属于噪音特征。作者展示了应用 分数正则化前后的特征表示稀疏度的对比,如下所示:

cb0624de55be6318d07fa75409b710b0.png

80e19e2cdb5d4ead72c696c4cbe9cecb.png

可以看到,应用 分数正则化后,特征表示的平均稀疏度从35%增加到52%,正因为剔除了这些噪音特征,使得特征表示的可解释性得到了提升。

总结

作者提出的 分数可以在无监督的方式下预估自监督模型得到的特征表示在下游任务中正确分类的可能性,同时 分数正则化也可以一定程度上改善低质量的特征表示,有助于提高下游任务的分类准确率。

但是,从论文中看到,作者貌似是用自监督模型学习到的特征表示,或者冻结模型参数,或者直接使用特征表示,用于下游任务的分类。在nlp领域,尤其是大规模预训练语言模型上,一般是fine tuning下游任务,不清楚作者提出的思路在fine tuning上面是否也work呢?6f62acc26a80af875fbff30e9a01c373.png

e570598960b94b7e1f150249bad6351e.png萌屋作者:jxyxiangyu

人工智障、bug制造者、平平无奇的独臂侠、在某厂工作的初级程序员,从事对话交互方向,坚持每天写一点bug,时常徘徊在人工智能统治未来和if-else才是真正的AI的虚拟和现实之间,希望有朝一日学术界的研究成果可以真正在工业界实现落地。

作品推荐

  1. 谁说发 paper 一定要追快打新?2021年,研究 word2vec 也能中顶会!

  2. 一训练就显存爆炸?Facebook 推出 8 比特优化器,两行代码拯救你的显存!

ea0ce43149d44b6d04f79bd250ed0453.png后台回复关键词【入群

加入卖萌屋NLP、CV与搜推广与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

e191d584910091e4c90652e5f323ef9d.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1347. 制造字母异位词的最小步骤数

1. 题目 给你两个长度相等的字符串 s 和 t。每一个步骤中,你可以选择将 t 中的 任一字符 替换为 另一个字符。 返回使 t 成为 s 的字母异位词的最小步骤数。 字母异位词 指字母相同,但排列不同的字符串。 示例 1: 输出:s &qu…

图谱实战 | 为什么我们需要医学知识图谱?

转载公众号 | OMAHA联盟 人工智能正在变得司空见惯。在医疗领域,医生也越来越重视人工智能所带来的疾病诊断效率和治疗价值的提升。要实现医疗人工智能,需要构建医学知识图谱以满足医疗领域对知识的应用需求。◆ ◆ ◆知识图谱是什么?知识图…

Spring Cloud构建微服务架构(三)断路器

在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延…

测试集涨点猛如虎,推上线无收益?算法新手翻车原因盘点!

文 | 杨旭东知乎在推荐算法领域,时常会出现模型离线评测效果好,比如AUC、准召等指标大涨,但上线后业务指标效果不佳,甚至下降的情况,比如线上CTR或CVR下跌。本文尝试列举一些常见的原因,为大家排查问题提供…

LeetCode 1348. 推文计数(哈希map+set)

1. 题目 请你实现一个能够支持以下两种方法的推文计数类 TweetCounts: recordTweet(string tweetName, int time) 记录推文发布情况:用户 tweetName 在 time(以 秒 为单位)时刻发布了一条推文。 getTweetCountsPerFrequency(s…

Spring Cloud构建微服务架构(二)服务消费者

在上一篇《Spring Cloud构建微服务架构(一)服务注册与发现》中,我们已经成功创建了“服务注册中心”,实现并注册了一个“服务提供者:COMPUTE-SERVICE”。那么我们要如何去消费服务提供者的接口内容呢? Rib…

2202年了,继续大比拼ViT、MLP、CNN结构有意义吗??

文 | 卖萌菌近日,MSRA发布了一篇题为《Transformer不比CNN强 Local Attention和动态Depth-wise卷积前世今生》的博文,再次谈论了这个老生常谈的话题。文中提到,Depth-wise CNN 和 attention 存在高度相似的结构,调参优化之后&…

Spring Cloud构建微服务架构(一)服务注册与发现

Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud包…

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式

文 | ZenMoore编 | 小轶写在前面一觉醒来,迷糊之中看到一条推特:瞬间清醒!Google 的 Yi Tay (and Mostafa) 团队提出了一个新的策略 Mixture-of-Denoisers, 统一了各大预训练范式。重新思考现在的预训练精调,我们有各种各样的预训…

剑指Offer - 面试题3. 数组中重复的数字(哈希)

1. 题目 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输…

击败GPT3,刷新50个SOTA,谷歌全面统一NLP范式?

声明:本文原创首发于公众号夕小瑶的卖萌屋。作者:ZenMoore,编辑:小轶--->【我是传送门】写在前面一觉醒来,迷糊之中看到一条推特:瞬间清醒!Google 的 Yi Tay (and Mostafa) 团队提出了一个新…

Spring Boot 2.3.0 发布

Spring Boot 2.3.0 已经发布,此版本主要更新内容包括: 依赖升级 新版本核心组件依赖升级 Spring Data NeumannSpring HATEOAS 1.1Spring Integration 5.3Spring Kafka 2.5Spring Security 5.3Spring Session Dragonfruit 三方组件依赖 Cassandra Dri…

剑指Offer - 面试题4. 二维数组中的查找(双指针)

1. 题目 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下&…

涵盖1600+任务的巨型Benchmark来了!跑个测试花一周??

文 | 兔子酱最近,benchmanking又卷出了新高度,allen AI 前段时间发布了史上最强基准测试——NATURAL-INSTRUCTIONSv2,涵盖了1600个任务、70个不同任务类型、50种不同语言,用来测试生成模型的泛化性。论文标题:Benchmar…

Spring Boot 2.x基础教程:使用MyBatis访问MySQL

之前我们已经介绍了两种在Spring Boot中访问关系型数据库的方式: 使用spring-boot-starter-jdbc使用spring-boot-starter-data-jpa 虽然Spring Data JPA在国外广泛流行,但是在国内还是MyBatis的天下。所以,今天这篇我们将具体说说如何在Spri…

剑指Offer - 面试题5. 替换空格(字符串)

1. 题目 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。 示例 1&#xff1a; 输入&#xff1a;s "We are happy." 输出&#xff1a;"We%20are%20happy."限制&#xff1a; 0 < s 的长度 < 10000来源&#xff1a;力扣&…

信息抽取里程碑式突破!终于要大规模落地了??

文 | 卖萌酱大家好&#xff0c;我是卖萌酱。AI领域常见的工作突破有三类&#xff1a;屠爆了学术界榜单&#xff0c;成为该领域学术层面的新SOTA实现了大一统&#xff0c;用一个架构实现对该领域诸多子任务的统一建模&#xff0c;刷新建模认知将NB的学术界新SOTA变成一件人人可傻…

Spring Boot 2.x基础教程:使用 Thymeleaf开发Web页面

通过本系列教程的前几章内容&#xff08;API开发、数据访问&#xff09;。我们已经具备完成一个涵盖数据存储、提供HTTP接口的完整后端服务了。依托这些技能&#xff0c;我们已经可以配合前端开发人员&#xff0c;一起来完成一些前后端分离的Web项目&#xff0c;或是一些小程序…

《剑指Offer》解题目录(更新完毕)

题目来源于LeetCode上的《剑指Offer》&#xff0c;这里做一个目录方便大家查找。另外有本人的LeetCode解题目录、《程序员面试金典》解题目录、LintCode解题目录 可点击链接查看。updated on 2020.3.18 不懂的概念可以参考《数据结构与算法之美》学习汇总 已解决 75/75 - 简单…

信息抽取里程碑式突破!要大规模落地了?

声明&#xff1a;本文原创首发于公众号夕小瑶的卖萌屋。作者&#xff1a;卖萌酱大家好&#xff0c;我是卖萌酱。AI领域常见的工作突破有三类&#xff1a;屠爆了学术界榜单&#xff0c;成为该领域学术层面的新SOTA实现了大一统&#xff0c;用一个架构实现对该领域诸多子任务的统…