互联网技术 / 互联网资讯 · 2023年11月26日 0

MIT博士生、北大校友通过自监督算法解决了数据集中的常见难题

训练模型时,你是否也遭遇过这样的时刻:

好不容易找到了自己想要的数据集,结果点进去一看,大部分样本都是一类物体。

用上面这个数据集训练的动物检测模型,可能只能识别「猫」。

这类数据不均衡的问题,在机器学习中被称为长尾问题。

这个问题导致,数据集中样本数量少的物体,泛化效果会非常差。

然而事实上,在一个数据集中,几乎总有常见和不常见的类别,其中不常见的类别,又往往成为需要被识别的目标。

例如,自动驾驶感知模型中,就要求AI能提前预测可能违规的情形,并及时阻止。

那么,这些不均衡的数据集,就真的不能用了吗?

一些已有的解决办法

事实上,此前为了解决不均衡数据集,研究者们已经尝试过多种方法。

仅仅是主流算法,就分为七种:

重采样:分为对少样本的过采样、及多样本的欠采样,但这2种方法,都有欠缺的地方。其中,过采样容易发生少样本过拟合,无法学习更鲁棒、易泛化的特征,在不平衡数据上表现较差;欠采样会造成多样本严重信息损失,导致发生欠拟合。

数据合成:生成和少样本相似的新数据。以SMOTE方法为例,对于任意选取的少类样本,它用K近邻选取相似样本,并通过对样本线性插值得到新样本。这里与Mixup方法相似,因此,也有非均衡的Mixup版本出现。

重加权:为不同类别(甚至不同样本)分配不同的权重。其中,权重可以自适应。这一方法诞生出很多变种,如对类别数目的倒数进行加权、对有效样本数加权、对样本数优化分类间距的损失加权等等。

迁移学习:对多类和少类样本分别建模,将学到的多类样本信息/表示/知识迁移给少类别使用。

度量学习:希望能学到更好的嵌入,以对少类附近的边界/边缘更好地建模。

元学习/域自适应:分别对头、尾部数据进行不同处理,自适应地学习如何重加权,或是规划成域自适应问题。

解耦特征和分类器:研究发现,将特征学习和分类器学习解耦、将不平衡学习分为两个阶段,并在特征学习阶段正常采样、在分类器学习阶段平衡采样,可以带来更好的长尾学习效果。这是目前最优的长尾分类算法。

但这些,在样本极端失衡的情况下也没法用,如果真的只有几个样本,模型的性能差异就无法避免。

关键在于,究竟该怎么理解这里面的不均衡?

不均衡标签的内在价值

那些本身就不平衡的数据标签,会不会具有什么价值?

研究发现,这些不平衡的数据标签,就像是一把双刃剑。

一方面,这些标签提供了非常珍贵的监督信息。

在特定任务上,有监督学习通常比无监督学习的准确性更高,即使不平衡,标签也都具有正面价值。

但另一方面,标签的不平衡,会导致模型在训练过程中,被强加标签偏见,从而在决策区域被主类别极大地影响。

研究者们认为,即使是不平衡标签,它的价值也可以被充分利用,并极大地提高模型分类的准确性。

如果能先抛弃标签信息,通过自监督预训练,让模型学习到好的起始表示形式,是否就能有效地提高分类准确性?

从半监督,到自监督预训练

作者们先对半监督下的不均衡学习进行了实验。

实验证明,利用无标记数据的半监督学习,能显著提高分类结果。

从图中可以看出,未标记数据,有助于建模更清晰的类边界,促成更好的类间分离。

这是因为,尾类样本所处区域数据密度低,在学习过程中,模型不能很好地对低密度区域进行建模,导致泛化性差。

而无标记数据,能有效提高低密度区域样本量,使得模型能对边界进行更好的建模。

然而,在一些很难利用半监督学习的极端情况下,仍然需要自监督学习出场。

这是因为,一旦自监督产生良好初始化,网络就可以从预训练任务中受益,学习到更通用的表示形式。

而实验同样证明了这一点。

正常预训练的决策边界,很大程度上会被头类样本改变,导致尾类样本大量泄漏,无法很好地泛化。

而采用自监督预训练的话,学习到的样本保持清晰的分离效果,且能减少尾类样本泄漏。

也就是说,为了利用自监督克服标签偏见,在长尾学习的第一阶段,需要先放弃标签信息,进行自监督预训练。

此阶段后,可以使用任何标准训练方法,训练得到最终模型。

这样,就能更好地解决长尾问题。