训练模型时,你是否也遭遇过这样的“尴尬”时刻:
好不容易找到了自己想要的数据集,结果点进去一看,大部分样本都是一类物体。(例如,数据集标签「动物」,结果80%的样本都是「猫」)
用上面这个数据集训练的动物检测模型,可能只能识别「猫」。
这类数据不均衡(某一标签数量太多,其余标签数量太少)的问题,在机器学习中被称为“长尾问题”。
这个问题导致,数据集中(尤其是大型数据集)样本数量少的物体,泛化效果会非常差。
△像一条长长的尾巴
然而事实上,在一个数据集中,几乎总有常见和不常见的类别,其中不常见的类别,又往往成为需要被识别的目标。
例如,自动驾驶感知模型中,就要求AI能提前预测可能违规的情形,并及时阻止。
然而在自动驾驶数据集里,不可能全是肇祸、违规的场景(大部分场景还是安全的)。
那么,这些“不均衡”的数据集,就真的不能用了吗?
来自MIT的两名博士生杨宇喆和Zhi Xu,想到了一种新的解决方案,研究成果登上了NeurIPS 2020顶会。
一起来看看。
一些已有的解决办法
事实上,此前为了解决“不均衡”数据集,研究者们已经尝试过多种方法。
仅仅是主流算法,就分为七种:
重采样 (re-sampling):分为对少样本的过采样、及多样本的欠采样,但这2种方法,都有欠缺的地方。其中,过采样容易发生少样本过拟合,无法学习更鲁棒、易泛化的特征,在不平衡数据上表现较差;欠采样会造成多样本严重信息损失,导致发生欠拟合。
数据合成 (synthetic samples):生成和少样本相似的新数据。以SMOTE方法为例,对于任意选取的少类样本,它用K近邻选取相似样本,并通过对样本线性插值得到新样本。这里与mixup方法相似,因此,也有非均衡的mixup版本出现。
重加权 (re-weighting):为不同类别(甚至不同样本)分配不同的权重。其中,权重可以自适应。这一方法诞生出很多变种,如对类别数目的倒数进行加权、对“有效”样本数加权、对样本数优化分类间距的损失加权等等。
迁移学习 (transfer learning):对多类和少类样本分别建模,将学到的多类样本信息/表示/知识迁移给少类别使用。
度量学习 (metric learning):希望能学到更好的嵌入,以对少类附近的边界/边缘更好地建模。
元学习/域自适应 (meta learning/domain adaptation):分别对头、尾部数据进行不同处理,自适应地学习如何重加权,或是规划成域自适应问题。
解耦特征和分类器 (decoupling representation & classifier):研究发现,将特征学习和分类器学习解耦、将不平衡学习分为两个阶段,并在特征学习阶段正常采样、在分类器学习阶段平衡采样,可以带来更好的长尾学习效果。这是目前最优的长尾分类算法。
但这些,在样本极端失衡的情况下也没法用,如果真的只有几个样本,模型的性能差异就无法避免。
关键在于,究竟该怎么理解这里面的“不均衡”?
“不均衡”标签的内在价值
那些本身就不平衡的数据标签,会不会具有什么价值?
研究发现,这些不平衡的数据标签,就像是一把“双刃剑”。
一方面,这些标签提供了非常珍贵的监督信息。
在特定任务上,有监督学习通常比无监督学习的准确性更高,即使不平衡,标签也都具有“正面价值”。
但另一方面,标签的不平衡,会导致模型在训练过程中,被强加标签偏见 (label bias),从而在决策区域被主类别极大地影响。
研究者们认为,即使是不平衡标签,它的价值也可以被充分利用,并极大地提高模型分类的准确性。
如果能先“抛弃标签信息”,通过自监督预训练,让模型学习到好的起始表示形式,是否就能有效地提高分类准确性?
从半监督,到自监督预训练
作者们先对半监督下的不均衡学习进行了实验。
实验证明,利用无标记数据的半监督学习,能显著提高分类结果。
从图中可以看出,未标记数据,有助于建模更清晰的类边界,促成更好的类间分离。
这是因为,尾类样本所处区域数据密度低,在学习过程中,模型不能很好地对低密度区域进行建模,导致泛化性差。
而无标记数据,能有效提高低密度区域样本量,使得模型能对边界进行更好的建模。
然而,在一些很难利用半监督学习的极端情况下,仍然需要自监督学习出场。
这是因为,一旦自监督产生良好初始化,网络就可以从预训练任务中受益,学习到更通用的表示形式。
而实验同样证明了这一点。
正常预训练的决策边界,很大程度上会被头类样本改变,导致尾类样本大量“泄漏”,无法很好地泛化。
而采用自监督预训练的话,学习到的样本保持清晰的分离效果,且能减少尾类样本泄漏。
也就是说,为了利用自监督克服标签偏见,在长尾学习的第一阶段,需要先放弃标签信息,进行自监督预训练。
此阶段后,可以使用任何标准训练方法,训练得到最终模型。(例如此前所用的迁移学习、重加权、域自适应……)
这样,就能更好地解决长尾问题。
作者介绍
论文一作杨宇喆,目前是MIT计算机科学的三年级博士生,本科毕业于北京大学。
目前,杨宇喆的研究方向主要有两个:基于学习的无线感应技术,应用方向是医疗保健;机器学习,主要是针对机器学习和强化学习的鲁棒性进行研究。
论文二作Zhi Xu,本科毕业于伊利诺伊大学厄巴纳-香槟分校,同样是MIT的博士生,感兴趣的研究方向是机器学习理论和现代应用,目前主要在研究强化学习的稳定性、效率、结构和复杂度。
论文地址:
https://arxiv.org/abs/2006.07529
项目地址:
https://github.com/YyzHarry/imbalanced-semi-self
论文解读@杨宇喆:
https://zhuanlan.zhihu.com/p/259710601