偏标签学习 (Partial Label Learning, PLL) 是一个经典的弱监督学习问题,它允许每个训练样本关联一个候选的标签集合,适用于许多具有标签不确定性和歧义的的现实世界数据标注场景。

然而,现存的 PLL 算法与完全监督下的方法依然存在较大差距。

针对这一现象,本期 AI Drive,浙江大学人工智能系在读博士-王皓波,解读其发表在 ICLR 2022的最新研究成果:PiCO:基于对比消歧的偏标签学习。

这项研究提出一个协同的框架,解决 PLL 中的两个关键研究挑战——表征学习和标签消歧。具体地, PiCO 由一个对比学习模块和一个新颖的基于类原型的标签消歧算法组成。PiCO 为来自同一类的样本生成紧密对齐的表示,同时促进标签消歧。从理论上讲,我们表明这两个组件能够互相促进,并且可以从期望最大化 (EM) 算法的角度得到严格证明。大量实验表明,PiCO 在 PLL 中显着优于当前最先进的PLL方法,甚至可以达到与完全监督学习相当的结果。

王皓波,浙江大学人工智能系博士在读,研究领域包括弱监督学习、多标签学习、机器学习理论等方向,专注于开发鲁棒、实用、可解释机器学习算法。曾于ICLR、TPAMI、AAAI、IJCAI等顶级会议与期刊发表多篇论文,长期担任ICLR、ICML、NeurIPS等顶会审稿人。

本次分享的具体内容有(按“数据实战派”指示回复关键词,可获得本文ppt,文末视频号看观看本期回放):

丨研究背景
丨相关工作
丨PiCO介绍
丨实验结果
丨EM视角下的PiCO
丨科研心得体会

一、研究背景

深度学习和人工智能的兴起,依赖于海量般的标注性数据,而收集这么多精准的标注性数据,实际非常地费时费力,高校与公司要落地这样的产品,需要有大量的标注人员来参与。所以现在的很多学界文章和工作都在关注弱监督学习,减少标注成本,他们实现标签学习,还有半监督学习,并以此来减少标注的数据量和标注的困难。

这篇文章是从比较独特、重要,且容易忽略的角度,去探索数据标注中的一种内生困难,也就是数据标注本身所存在的歧义和不确定性。

假设你是标注者,拿到了这样一张图片,很自然地想问其中的狗是一只什么狗?你可能会想说,这可能是一只阿拉斯加,不对,好像是一只哈士奇。

此时,如果你是一个一直养狗的人,是一个狗类专家,那么你可能一眼就辨识出来其种属。但是,如果像是这种从未养过狗,并且对其领域知识掌握不充分的人,可能就没有办法判别出。此时,若我一定要确认这只狗的种属,就不得不去查找相关文献,或者咨询专家。但是就会费功夫,那么该怎么办?比如随机选一个,但是阿拉斯加和哈士奇里面却选错了,在这种情况下,对于模型和数据,就引入了噪声的标签,实际上会对模型的准确性造成非常大的影响。

另一种方案是,鉴于这张图片标柱的困难性,选择不标注。此时的问题是虽然无法确定这张图片的准确标注到底是什么,但实际上至少能够确定是哈士奇或阿拉斯加此两种中的一种。所以,无论如何也不会把它当做是一只泰迪。我们还是一些认识,只是还不够充分,此时到底该怎么办?

于是自然而然想到,是否可以把所有可能的候选标签全都给标上呢,这便引出本文所研究的一个问题,即Partial Label Learning。

这个数据标注中,像这只狗,其实它的准确标注是阿拉斯加,但在Partial Label Learning里面,我们不再强求这个标注到底是否准确,而是只需要去提供一个标注性的集合,也就是把所有的可能标签都给它标上。在文献中也有一个别称Superset Label Learning,或Ambiguous Label Learning。

上可能这两个名称看起来更加直观一点,但因为一些历史原因,沿用了Partial Label Learning这个方案和名称。

二、相关工作

本节介绍Partial Label Learning的一些相关工作。

在设计初期,大家对这个问题的研究还不是很彻底,可能会选用一些比较naive的学习策略,此处采用 Average-based Methods,可以把所有的标签都当作是真实的标签,采用平均的方式计算其均值,比如两个标签,可以让其中一个变成0.5,另外一个标签comment也变成0.5,交给模型去学习。但这个方法,并没有去判断其真实标签到底是什么,被淹没在了所谓的候选标签里,此时它实际上引入了大量的噪声,会影响学习的过程。

这两年,我们有提到Alexnet上开始兴起了基于Self-Training的风潮。自训练方式,就是在训练过程中重新使用模型输出来更新标签的Confidence,也就是我们所识别的一个真实的标签。

所采用的那种方式基本上就是用概括性方式所定义出来的,也是Program这个方法所采用的,一般会在这个候选机里面,对模型的输出进行重做Normalization,即重新进行规划。

在我们的提出的方法之前,比如CFAR在Benchmark上也能达到sota的效果,但我们发现,这却忽略了这么一个问题,就是用模型输出去再次更新标签,以便能对模型进行训练。

但实际上由于这个标签存在不确定性,其表征圈得很不好,在这样的情况下,当表征不好时,模型输出也不会太准确,这样以来又重新影响了此表征,这就是我们称为Representation-Disambiguation Dilemma的问题。。

另外一些方法,比如基于图的方法、基于聚类的方法等,都是基于一个假设表征无需预先学习,也忽略了Representation-Disambiguation Dilemma这么一个问题。

那么该怎么去学习表征呢,此处介绍这两年非常火热的方法,即对比学习。

在自监督学习领域,对比学习实际上已经成为了一种非常标准的无监督表征学习范式。

在对比学习中,一般会通过数据增广的方式,比如说右侧有只猫,给它生成不同的 Query和 Key,Embedding,就可以把这两个增广的图像绘进同一个Encoder,获得一个Embedding。

接下来用一个对比学习即Noise Contrastive Estimation,就可以利用Ncence损失来对表征进行训练。其本质是希望把图片与其近邻样本进行拉近,而与其他的样本进行拉远。

既然对比学习在无监督上面有这么好的效果,那么能不能用到弱精度学习General Contrastive Learning上呢,于是就进入了我们这篇文章PICO的工作。

三、PiCO介绍

本节会从三个角度来分析PICO。

首先是提出了协同的 Partial Label Learning框架,利用了对比学习来增强表征学习的能力,同时赋予了它能够提升这个标签消息的能力。

这篇文章也是首次在Partial Label Learning里面引入了对比学习,以便能达到一个很好的效果。从实验的角度来看,在 PLL问题里面达到了最先进的效果,并且还发现,当某些标签歧义不是很高时,甚至能够达到一个接近监督学习的效果。

理论上,从期望最大化的角度来看,也就是以EM算法的角度来解释我们的方法,其实我们在对比学习里面证明了Aligh,也就是对齐的性质。

先介绍一下Partial Label Learning的 Setup。

我们的目标是学习分类器,它的参数分类器f,定义为 setup,数据集是在每个Tuple,每个元组里面Xi是一张图片,么Yi相比于之前,可能是一个问号,或者是一个离散的标签,在这里将其定义成了一个候选标签的集合,注意它这也是集合,而不是某一个离散的值。

这里有一个假设是 ground-truth真实标签是被引入的,它被包含在候选标签集里面,并且ground-truth标签对预测器来说,是不可见的,那么,在训练的时候会同步地进行标签消歧,所以这是一个Identification Based Method,相比于之前介绍的 Average Base Method,我们在训练时维持了这么一个伪标签si,对于每一个样本,我们使用经典的 cross HP损失来更新它。

PiCO实际上是由两个比较大的模块构成,首先是一个对比学习网络,是希望使用对比信息来提升它的表示能力,后面我们也会介绍它的另一个大模块,即标签消歧模块。

首先是 Backbone,它 follow了经典的MoCo工作。具体来说,给定一个图片以后,通过数据增广的方式生成两个View,第一个是query view,第二个是key view。将query view这两张图片放入两个Encoder,上面Encoder是主干的网络输出,它会连接上刚才提到的分类器。

另外一个部分称为projector,即投影器,它是一个多层感知机,与之相连后通过 MLP,会得到q的 embedding,它可以意识到对比学习的空间。

key view增广以后的图像放入另外的Encoder,不参与梯度的训练只是提供对比,也可以作为副样本来使用。对它也不进行梯度更新,而是要采用momentum的更新来做目标average,使得每步用Classifier这个模块,以query模块的 encoder来逐步地更新它。

同样,通过momentum更新的MLP来得到另外一个embedding,与此同时,通过key还会维护队列,维护队列的作用其实是为对比时机提供负样本。众所周知,在对比学习里面比较大的副样本池子能够让其表征学得更好。

在query和key的 embedding以后构建embedding的池子,其中包含了这个bash。

通过学习使其通过网络后得到query的embeddings,然后是Key embeddings,还有队列里面存储的Key embeddings,拿到 pull以后,引入了对比学习的损失函数。

我们的想法是这样的,既然做了一个分类任务,希望能够把同类的样本尽可能地拉近,把不同类的样本尽可能地拉远,因此,可以通过经典的对比学习损失函数来达到这个目标。具体来说,为每个样本选择一个positive的集合,里面的embedding,我们会在分子部分来拉近距离。

在分母部分,把当前样本的 query的embedding和剩下所有样本的 embedding拉远,这样就能达到之前想要实现的目标了。

有了这个目标函数以后, px要怎么去定义呢?

在MoCo里面,我们可能会有样本 query embedding和它的key embedding。比如说,它与增广样本的另一个样本互为正样本,但是实际上在Partial Label Learning里面,我们显然不能简单地这么来做。

希望能够把同一个类的样本都给拉近,到底要去怎么做?

实际上实验的过程中,我们采用了相当多不同的策略去尝试来构建更好的 Positive set,比如可能会引入过滤器,来过滤掉一些可信度可能不那么高的 positive的样本,但实际上,最后发现还是XXX策略最有用且最有效,也就是直接用分类器预测的标签来帮助去构建。

只要 class的预测这两个样本它俩的标签相同,我们就把它视作是positive。当然我们也会为预测的标签维护一个队列,它和key embedding对应的队列是同一个size,而且还帮帮助获得 positive size。最后可以同时训练 classifier和对比学习网络了,就得加权损失。

到此,对比学习网络就介绍完。

但我们还是发现了问题,就是要去构建 positive此时分类器其实是不可信的。因为标签本身存在一定的不确定性,如果非常自然地去相信分类器的结果,可能依然会陷入到不太好的结果当中。

那么,接下来就是另外的内容——怎么样去做标签消岐。

也就是怎么样能够把ground-truth标签从一个候选的标签集合里面找出来。

我们在这里提出了一个基于原型的消岐策略。具体而言,给每个类标签 c来维护原型的标签,原型的 Embedding的向量。

我们其实有一个非常简单的想法,也就是说,如果样本接近对比学习的原型,那么ground-truth label很有可能是 label了,到底要怎么样逐步地来更新它?我们会让伪标签从一开始的均匀分布,从uniform开始,由prototype定义的well-code的独热向量来逐步地进行更新。

比如说,这里可以看到伪标签可能是狗狗的标签,执行度可能是0.65,cat标签的执行度可能是0.35,那么这个时候它所显示的原型是狗。

于是,我们就会让0.65的伪标签往上提一点。可以设想一下,如果说这个样本一直都指向的是这个原型,那么,它在几步迭代以后就会逐步收敛到定义文号的标签。

最后还遗留了一个问题,就是原型到底要怎么去更新。

有一种非常简单的方法,就是我们每次在一个sep里面,或者进行epoch的时候,都需要计算每个类的均值,然后是引用 Classifier的预测,但这样以来,太过费时费力。

所以我们采用了一个Momentum的更新方式,在每一步,每一个sep里面,我们会让 query embedding去一点,每一步都让它稍微改进一下这个原型,让它往这个方向来进一步。

当然这里对应 c的选择,要看分类器的一个预测了,这样的话运行时间会大大地节省。

当然,在实验的过程中我们也发现,即使对每个epoch更新一次embedding,实际上效果也不差,当然计算成本也会更高一点。

总体来说,我们会放入一张图片,然后通过数据增广来获得两个bill,还会通过classifier来选择对比学习的positive的样本,进行对比学习。对比学习得到的embedding,我们又会通过圆形的方式来逐步地更新伪标签,它又会反过来支持这个分类器的学习。

值得注意的是,这里的两大模块实际上是有一种协同的作用。

首先,我们会在后面进行理论上的推导,以证明对比学习实际上是有聚类的效果,那么它可以很大程度上来帮助标签进行消歧,这实际上也能够反哺对比学习,从而有利于更好地来建立positive set。

四、实验结果

首先是主要结果,可以看到在θ10和θ100上,我们都获得了θ的结果,并且发现在q = 0.1和0.01情况中,我们的效果跟全监督是非常接近。

我们也可视化了一下表征,可以看到,Baseline的表征可能就没有那么好辨认,像 PRODEN终究是一些簇,而且会有一些边界感不是很清楚,相比之下,PiCO的每个类别都有一个非常紧的簇,这也证明了PiCO之于对比学习,它有一个剧烈的性质。

还有 Ablation study,即消融实验,我们发现,实际上标签消岐和对比学习模块都受到了很大的影响。每消熵一个,都会造成较大的性质损失。

接下来我们会想问,为什么对比学习还有PiCO,能够提升 Partial Label Learning的效果?

五、EM视角下的PiCO


本节从对比学习还有聚类的效果说起,给出一个基于期望最大化的理论视角解读。

首先,对对比学习的损失进行一个分解,这里面我们采用了一篇sml,它是2020年一篇文章中的经典分解。在这里面,一般把a称为alignment项,把b称为uniformity项,b项实际上跟熵是有关系的,还与一些互信息是有比较大的关系,能够很大程度地保留信息,并促进表征学习。

本文其实主要是围绕 a项进行的探讨,做一个简单的、比较理想化的情况说明,每一步迭代的时候,都能获取到整个数据集和它的增广样本。有了这样的数据以后,就可以把所有的样本都可以根据分类器的输出来进行分成c的子集。

此时经过简单推导以后,发现 A lambda项实际上等价于这个目标,大家可能对此不是很熟悉,它是很经典的k means算法,并且与其目标一模一样,也就是说,对比学习里面的alignment项,它在本质上最小化了类内的一个方差。

有了预备知识后,就可以进入EM视角了。我们的目标是去最大化似然,为此还有一个小工作要做。因为其实并不知道真实的标签到底是什么,所以便引入了一个假设,它也是来自于next的一篇比较经典的文章,可以把似然进行简单地变化,有了这一步工作后,我们就可以从 EM视角来进行分析了。

首先可以定义一组辅助性分布,这也是 em算法里很常见的一个策略。们定义了这么一个π(ij),其概率是分布在候选标签集里面的。

通过 Jason不等式,可以得到不等式等号成立的条件,也就是经典Jason不等式成立的条件是π(i-yi)需要满足这么一个等式。其实会发现,它后面的概率是分类器。有了这样的知识以后,就知道了PiCO里面的 E-step就是expectation steps,这对应的是对比学习里面所构建的 positive sets过程,这就是我们的E-step。

在M-step里面,就需要最大化似然了。假设了对比学习embedding是服从地缘的M-step的分布。由此可以证明,最小化对比学习的损失函数时,特别是alighnment这一项,其实也最大化了似然函数的下界,并且通过对表征进行可视化发现,它的确是能够让上界有很好的效果。

以上是我们的总结,首先提出了PiCO协同框架,在对比学习中,首将其利用在了Partial Label Learning这个问题上,我们还得到了sota效果。

在理论上,个人觉得这篇文章有意思的地方是,我们证明了对比学习实际上是有聚类的性质,并且从这个视角出发,把PiCO解释成了一个期望最大化的算法。

相关资料列示如图,可以进行进一步的阅读。

六、科研心得和体会

第一,针对一些比较Junior的同学,有很多刚进入研究生阶段的同学,可能会把自己对科研的方向还有学习很大程度寄托在导师的身上。但实际上就你开始研究的课题而言,导师无法帮你来解决任何事情,因为你研究的课题肯定不是你导师研究过的。

所以说,一定要做好自己学习和攻坚的准备,不要太过依赖导师。当然有很多导师能够给我们大家提供很多帮助,这样肯定最好。在大多数情况下,要尽早脱离依赖别人的习惯。因此,我觉得我们要更积极地和同辈,还有一些活跃在一线的科研工作者去交流。

进入研究生阶段,其实没有必要那么害羞和内向了,应该跟同学们多交流,多去了解,看他们对这些科学问题的认知,要大胆发邮件、加微信,你能够获取到别人的经验,这是最快的途径,这是一个非常重要的问题。因为我发现,其实大部分刚进入研一,或者说刚开始科研阶段的同学,可能都存在这样的一个问题。

其次,在平时的科研中要有一个比较好的科研习惯。基础的入门肯定是必备的,不管看论文也好,还是看知乎、微信公众号也好我都会看,相对碎片化的学习方式,很难帮助你构建起很好的课题认知。
如果仅限于机器学习的话,我可能会给出这样一个科研入门的路径:首先打好机器学习的基础,然后阅读一些稍微进阶的基本学习理论,或者像贝叶斯这样的一些书籍。然后深学习像CS231这样的一些课程。

此外,一定要多看书,多看网课,其实这些资源都非常好。此外,平时大量地阅读论文,每天刷课本,这是基本的。另外,很重要的一点就是要突破舒适圈。

觉得coding不好,那就要多复现论文,数学不好,那就要多补数学,不要一直在自己的舒适圈打转,如果一直在自己的舒适圈打转的话,你肯定做不好一件事情。

因为,其实科研需要相对比较全方位地来构建自己的能力,包括沟通能力、写作能力、阅读能力、检索能力,可能都需要打好基础。

最后,可能有些同学也会比较着急,例如觉得自己的一篇文章经常被拒。实际上,我觉得大家也不用太着急,还是要等待机会,不是说一两篇文章就能评判一个人的能力大小。这些PPT本来是在写这篇文章时候的科研心得,但实际上我可以很负责任地告诉大家,它也是灵光一闪的一个idea。

这篇文章能够做出来,一定也是有我一直以来的一些积累,但是总的来说,我们还是要有耐心来积极地去做好工作。

ICLR 2022:​PiCO,基于对比消歧的偏标签学习 丨AI Drive相关推荐

  1. 干货!基于元消歧的偏多标记学习

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 在偏多标记学习中,每一个示例与一个候选标记集相关,该候选集既包含多个真实标记,也包含其它噪声标记.为了解决偏多标记学习问题,现有方法往往 ...

  2. 基于置信度评价消歧的偏标记学习(2017)

    原文链接: https://aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14210 偏标记学习又叫模糊标记学习,超集标记学习 . 研究动机 现有分歧方法 ...

  3. MICCAI 2022 | CLFC:基于对比学习的多模态脑肿瘤分割与单模态正常脑图像的特征比较

    MICCAI 2022 | CLFC基于对比学习的多模态脑肿瘤分割与单模态正常脑图像的特征比较 Multimodal Brain Tumor Segmentation Using Contrastiv ...

  4. ICLR 2022 under review|化学反应感知的分子表征学习

    今天给大家介绍一篇关于分子表征学习的文章.分子表征学习(MRL)旨在将分子嵌入到实向量空间中.然而,现有的基于SMILES(简化分子线性输入系统)或GNN(图神经网络)的MRL方法要么以SMILES字 ...

  5. ICLR 2022最佳论文解读

    微信公众号"圆圆的算法笔记",持续更新NLP.CV.搜推广干货笔记和业内前沿工作解读~ 后台回复"交流"加入"圆圆的算法笔记"交流群:回复& ...

  6. ICLR 2022 | Facebook AI提出解决表示学习坍塌问题新方法

    Facebook AI团队在ICLR 2022发表了一篇文章,针对表示学习中的坍塌问题,提出了VICREG方法,通过variance.invariance.covariance三种loss的结合约束自 ...

  7. 论文翻译 —— Disambiguation-Free Partial Label Learning 非消歧偏标记学习(PL-ECOC)

    标题:Disambiguation-Free Partial Label Learning 文章链接:http://aaai.org/ocs/index.php/AAAI/AAAI17/paper/v ...

  8. ICLR 2022 | 香侬科技提出基于图神经网络的语义理解模型,获单项满分

    ©作者 | 香侬科技 来源 | 香侬科技 近日,深度学习国际顶级会议ICLR 2022向作者公布了论文录用结果.香侬科技3篇论文被大会收录,研究内容覆盖通用自然语义理解.NLP神经网络模型安全性.自动 ...

  9. AAAI 2022 | 北大 阿里达摩院:基于对比学习的预训练语言模型剪枝压缩

    近年来,预训练语言模型迅速发展,模型参数量也不断增加.为了提高模型效率,各种各样的模型压缩方法被提出,其中就包括模型剪枝. 然而,现有的模型剪枝方法大多只聚焦于保留任务相关知识,而忽略了任务无关的通用 ...

最新文章

  1. 讲讲Git如何合并分支(一)
  2. 世界最优秀的分布式文件系统架构演进之路
  3. VSTO之旅系列(三):自定义Excel UI
  4. wxWidgets:wxValidator概述
  5. mysql error code 145,MYSQL 错误#145解决方法
  6. Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc)
  7. php判断同一天,PHP判断两个时间戳是否在同一周同一月等 - YangJunwei
  8. ApacheCN 深度学习译文集 20201229 更新
  9. 7-5 输出字符串中出现的字符 (20 分)
  10. 【Shell】sed实例之第三部分
  11. 防火墙软件 - IPCop
  12. 摄影测量学——航摄像片的内、外方位元素和像点空间直角坐标变换与中心投影构像方程
  13. RTSP-传送ACC音频文件
  14. 服务器控制口协议,服务器管理ipmi接口协议的扩展方法 Extension Methods server management interface protocol ipmi...
  15. Docker端口映射后外部无法访问现象排查
  16. 如何通过Java实现485通信
  17. html无序列表透明圆点,html无序列表的类型type
  18. 信息学奥赛一本通(C++版) 网站补充题目
  19. 安装 en_core_web_sm-3.0.0
  20. Js报错:Maximum call stack size exceeded

热门文章

  1. 是对计算机系统或其他网络设备进行,计算机信息系统是由计算机及其相关的和配套的设备、设施(含网络)构成的,按照一定的应用目标和规则对信息进行()等处理的人机系统。...
  2. uniapp登陆页面功能
  3. Vertica ros和wos介绍
  4. 共享打印机无法打印问题解决
  5. transformers中GLUE各个任务所用的评估方法
  6. 用计算机进行绘画教案,电脑绘画的教案
  7. xilinx官网下载vivado速度慢的解决方法(适用于所有版本)
  8. NTKO OFFICE文档控件为何不能自动装载?
  9. linux查看系统资源使用情况,查看Linux下系统资源占用常用命令
  10. Facebook Marketing: Advanced Advertising Facebook营销:高级广告 Lynda课程中文字幕