点击蓝字
关注我们
AI TIME欢迎每一位AI爱好者的加入!
时隔两年,饱受了社会的毒打之后,让我们再次重新回到计算机视觉中的长尾分布这个我博士期间研究的主要问题上,看看2022年了这个方向是否还值得继续做下去。本文主要介绍我们今年被ECCV 2022接受的论文《Invariant Feature Learning for Generalized Long-Tailed Classification》。目前代码已经在Github上开源,链接如下:
https://github.com/kaihuatang/generalized-long-tailed-benchmarks.pytorchgithub.com/kaihuatang/generalized-long-tailed-benchmarks.pytorch
一. 对长尾分类问题的反思和展望
先说暴论:如果只考虑训练集与测试集独立同分布(IID)且长尾分布仅体现在类间分布的情况下,Google的Logit Adjustment研究已经从理论上提供了非常优雅的最优解了。也就是说,计算机视觉中传统的Long-tailed Classification设定其实早就已经被“完美”解决了。那么这就带来了两个问题:(1)长尾分类领域最近的“进展”到底提升的是什么?(2)长尾分布相关的问题后续还能不能做?该怎么做?
1.1 一种优雅的IID类间长尾分类问题的建模方式
1.2 长尾分类领域最近的“进展”到底提升的是什么?
那么,让我们先来尝试回答一下第一个问题。近年来随着一些基于Ensemble的backbone在长尾分布问题上的应用,其实我们不难发现,目前的趋势是在利用更加通用高效的特征提取方式来提升长尾分类的效果。也就是说是在提升P(x|y),即找到更好的更鲁棒的和类别对应的特征。但这些通用的方式之所以通用,也是因为他们其实并不能算作长尾分布的算法。这其实就是目前计算机视觉中的长尾分布问题的困境:传统的分布矫正思路已经渐渐走到了尽头,而新的特征学习方法又缺少理论支撑。
不过如果读完下文其实就可以发现,近来的特征学习算法大部分确实也是在解决数据不均衡的问题,但并不是解决类间偏见,而是解决类内的属性偏见。比如multi-expert backbone就可以通过ensemble缓解单个特征空间学到的领域偏见,得到更鲁棒的特征。
1.3 长尾分布相关问题的后续研究还能不能做?该怎么做?
其实计算机视觉中的长尾分布问题还是可以做的。至于做的方向就来自于传统长尾分类任务对问题的过度简化。其一:并不是所有视觉任务都可以简单建模为 P(y|x) 。大多数多模态任务中的长尾分布会更加复杂,比如视觉问答VQA数据中的长尾分布既有整体答案的 P(y) 分布,同时又有基于输入问题 q 的条件长尾 p(y|q),即给定特定问题类型,答案呈现长尾分布(如面对问运动的问题时,答案“网球”成为了明显的常见主导类),而实际训练中后者的影响反而比单纯的全局分布 P(y) 更明显。所以如何在更加复杂的多模态任务中解决长尾分布会比单纯分类问题下的长尾分布更有生命力。其二:工业界真正头疼的长尾分布问题其实并不全是学术界研究的最多的类间长尾。比如当说到无人车训练数据中的长尾分布时,大多数情况下这指代的其实并不是类间长尾。像长尾的天气分布,日夜分布等,并不是模型预测的目标,因此这里长尾的不是类别,而是属性(或者说context)。是这种类内的长尾(intra-class long tail)阻碍了机器学习的进一步在工业界落地,而非类间长尾(inter-class long tail),前者远比后者难得多。所以,如何给出更好的长尾问题的新设定也是个值得研究的方向。比如我即将要说的广义长尾分类(Generalized Long-tailed Classification),或者其他研究者的任意测试分布下的长尾算法(Test-Agnostic Long-Tailed Recognition),还有近来一些把类间长尾分类和领域泛化(Domain Generalization)结合的工作等等。
二. 对长尾分类问题的一种拓展思路
正如我上文提及的,既然单纯的类间长尾无法解释实际应用中所有的数据不均衡问题。那么一个自然而然的拓展思路就是同时考虑类间长尾,即Class-wise Long Tail,和类内长尾,即Attribute-wise Long Tail(这里的属性同时包含了物体层面的属性,如纹理,姿态等,也包含了图像层面的属性,如背景,上下文信息等)。我们将这种同时考虑两种数据不均衡的问题命名为广义长尾分类(Generalized Long-tailed Classification)
2.1 传统建模的局限性
2.2 一种崭新的建模方式
下面让我们看看这个新引入的属性偏见(attribute bias)是怎么影响分类结果 P(y|x) 的。首先就是在每个类别内部,即便 Zc 是所有类内图片共享的,但由于 Za 的取值不同attribute bias项会使同一类的样本出现难易之分(如潮湿的皮毛在狗的类别内特别罕见则会使得潮湿的狗变为困难样本),即图4的例子。其次,属性偏见(attribute bias)还能解释类别之间是如何产生错分的。比如潮湿的皮毛在河狸类中就很常见,因为河狸大多生活在水里,这就给“潮湿的皮毛”与“河狸”之间产生了伪相关性。让潮湿的狗有很大概率被错分为河狸,也就是图5的例子。
2.3 两个数据集,两个指标,三种测试方式
由于之前的类间长尾分类问题和属性相关的领域泛化/迁移问题往往在计算机视觉中被看作两个独立的问题。我们并没有统一的数据集,因此我们构建了两个数据集ImageNet-GLT和MSCOCO-GLT,前者使用预训练模型的特征聚类作为伪属性标注,后者则直接通过MSCOCO-Attribute数据集获取属性标注。同时我们采取了两个指标,除了传统的正确率(accuracy)外我们也引入了准确率(precision),从而更好的分析传统长尾分类算法的Accuracy-Precision Trade-off现象。最后我们划分了三种测试方式:类间长尾协议(Class-wise Long Tail (CLT) Protocol),属性长尾协议(Attribute-wise Long Tail (ALT) Protocol)和广义长尾协议(Generalized Long Tail (GLT) Protocol),用以独立研究类间长尾,属性长尾和他们的联合效应。这也可以更好的分析不同的算法到底是提升了哪一类鲁棒性。
2.4 一个新的基准方法
同时我们也引入了一种新的基于特征学习的基准方法。我们的基本思路是,类间长尾产生的问题主要体现在分类器(classifier)上,而类内属性长尾的问题主要体现在特征提取器(backbone)上。传统的长尾分类算法,如Logit Adjustment和Decoupling都是在不改变特征的基础上调整分类边界。这就可以看作图6中间的例子,但是这样做的问题是,类别间的混淆区域并没有得到很好的处理,也同时造成了上述的Accuracy-Precision Trade-off现象。而我们通过可视化发现,混淆区域内的样本大多拥有相同的背景或者环境,也就是说模型不小心把这类属性信息也学成了分类特征(因为属性在一些类中和类别高度相关),所以我们的思路就是通过特征学习时加入约束,让模型尽可能不去学习这类属性信息。
因此我们基于Center Loss修改了一个名为不变性特性学习(Invariant Feature Learning)的损失约束函数。首先传统的Center Loss已经在人脸分类等任务中证明了自己可以使类内分布尽可能收束,从而增加类间距离。但是传统的特征中心在一个有偏的数据中也是天然有偏的,比如90%的香蕉都是黄色香蕉,那么这个特征中心也会学到0.9的颜色信息,从而降低绿色香蕉的准确性。因此我们通过构建重采样的双环境,均匀难易样本的比重,实现对特征中心更无偏的估计,从而增加Center Loss在我们泛化长尾分类任务中的效果。
2.5 从算法的局限到新的难点
当然,提出这个基准方法主要是为了抛砖引玉,我们希望大家可以在广义长尾分类(GLT)这类更接近实际应用的设定下提出更多更加实用的算法。我们提出的IFL算法也自然有很多不完善之处。比如,我们发现在构建重采样的双环境的过程中,其实也很容易将噪声样本也过度上采样,而在真实数据中噪声样本虽然可以控制在合理范围内但几乎无法避免。因此我们组的易炫宇学弟也尝试将长尾分布和去噪问题结合,该工作也被ECCV 2022接受,名为《Identifying Hard Noise in Long-Tailed Sample Distribution》。该工作的动机和本文也非常相似。另一个问题在于,虽然我们文中表示我们提出的IFL是Invariant Risk Minimization版的Center Loss,但是原始的IRM约束在真实的视觉数据中往往并没有很好的效果,我们的原始IRM Loss实验中甚至出现10个随机种子有7个会在学习到一般突然变为NaN loss。这也是一个值得研究的问题。
三. 总结
本文主要分享了目前传统计算机视觉中长尾分类任务的一些反思,我们认为传统的IID类间长尾分类已经有了非常完善的解决方案。但该设定大大地简化了甚至忽视了实际应用中长尾分布真正的难点,由此我们拓展了传统长尾分类任务的设定和建模方式,引入了新的类内属性偏见,并提出了更复合实际工业需求的广义长尾分类设定和数据集以及一个简单的基准算法。希望可以启发后来的研究者提供更好的问题建模方式和解决方案。
往期精彩文章推荐
记得关注我们呀!每天都有新知识!
关于AI TIME
AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。
迄今为止,AI TIME已经邀请了900多位海内外讲者,举办了逾400场活动,超400万人次观看
我知道你
在看
哦
~
点击 阅读原文 查看回放!