Press "Enter" to skip to content

数据有偏差,照样能学对!20年前就有这幺强的算法了?

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

文 | 白鹡鸰 给小铁比了个心

 

编 | 小轶

 

背景

 

“每个人都依赖自己的知识和认知,同时又为之束缚,还将此称为现实;但知识和认识是非常暧昧的东西,现实也许不过是镜花水月——人们都是活在偏见之中的,你不这样认为吗?这双眼睛,又能看多远呢?”

 

机器学习,作为模仿人类思维方法进行建模的过程,虽然从数据中抽取模型的水平还不如人类,但是在 获取偏见 (bias)的方面,已经青出于蓝而胜于蓝了。关于 机器学习模型偏见产生的机理 , 谷歌花了59页 ,从自然语言、图像处理和生物医疗领域进行了详细的分析。结论是,不论数据集多大,必然存在采样偏差,因此模型或多或少总会学到假特征, 扩大数据集不是修正模型偏见的终极解决方案 。遗憾的是,谷歌并没在文中提出有创见性的改进意见,只是建议大家多做测试。

不过,谷歌没搞大新闻也没关系。Hugging Face表示:即使不去显式地定位模型的偏差,即使只有有偏的数据集,他们照样有办法炼出鲁棒性高的模型,能从容应对与训练测试集分布不同的真实场景。这是怎幺做到的呢?下面就让我们一起来看看吧~

 

论文题目:

 

Learning from Others’ Mistakes: Avoiding Dataset Biases Without Modeling Them

 

论文链接:

 

https://arxiv.org/abs/2012.01300

 

Arxiv访问慢的小伙伴也可以在 【 夕小瑶的卖萌屋 】订阅号后台回复关键词 【 0125 】 下载论文PDF~

 

核心思想

 

“盲人摸象”是现在很多模型的生动写照:大象(真实场景中数据量)体积庞大,盲人仅凭双手难以触及全貌(采样无法覆盖所有场景)。即使一群盲人摸同一头象,每个人也只知道部分内容,容易以偏概全(假特征)。如果让每个盲人独立判断自己摸到的是什幺,就会把非决定性特征视作决定性特征,从而出现不同的预测错误。

 

但是,如果允许盲人们交流讨论,他们就可以分析各自判断错误的原因。以此为依据去调整每个特征导向正确结果的概率,甚至归纳出新的隐藏特征。这篇论文的工作,就是在探究 “”(弱学习器,weak learners)之间如何进行有效地“讨论” ( Products of Experts ),并分析 每个弱学习器 至少需要掌握多少信息 ,才能对正确的预测结果有所帮助 。

 

方法

 

从一个“古老”的方法说起

 

看到Product of Experts (PoE)的第一眼,白鹡鸰是懵逼的。这个名字很自然地令人联想到专家系统的某种变体。然而,这都2021年了,莫非是要文艺复兴的节奏?仔细一查,PoE的作用确实是 总结多个模型包含的知识,基于特定算法和总结的先验知识进行预测 ,妥妥的一个专家系统,在2002年由Hinton大神提出 [1]。顾名思义,PoE在基于个专家模型构建最终的预测模型时,公式中充斥着累乘:

 

其中是可能出现的事件,是模型中所有的参数,是模型预测事件出现的概率,是事件的状态空间。当状态空间是连续的时候,需要将分母上的累加改为积分。这个公式符号有些复杂,但实质就是 在先验信息是联合分布的情况下,求一个事件发生的概率 。

 

这个方法的优点在于:即使每个专家模型都只关心特定的事件,而对其他情况预测表现不佳,综合下来,PoE对事件的预测都能达到一个较好的结果。

 

具体应用过程

 

在Hugging Face提出的方法中,需要一个 弱学习器 和一个 主学习器 。记和输出的 logits vector (即 未经归一化的概率分布 )分别为和。数据集和标签记作,最终预测结果有类。

 

首先,用标准化交叉熵作为损失函数,预训练。然后挑选出 预测错误的样本集 。

 

接着,将作为输入,得到两个学习器的输出,构造 合并后的logits vector :

 

则显然有(因为公式的分母都是常数)

 

换言之,

 

(其中是向量中对应元素相乘的运算符号)

 

再把上式右边再归一化处理一下,就有

 

(这里是指将向量的每一维累加)

 

如果将看作PoE中子模型的预测输出,可以发现看似简单的构造中其实蕴涵着PoE的思想。感兴趣的朋友们可以参考Hugging Face的原文和[2]自行推导。

 

当用逻辑回归进行二元分类任务时,和可以视作标量(即预测为正样本的概率), 上式中的softmax也退化为sigmoid。则针对单个正样本的损失函数为

 

此时冻结的参数,只更新的参数。损失函数是上述PoE loss与普通交叉熵损失之和,只用来更新。训练完成后,即为最终的预测模型。这样就达到了 令向“” 的效果。但与知识蒸馏不同之处在于,这里的“学习”并非以“模仿”为目的,而是从的 错误中进行学习 。

 

实验设计与结果

 

这种去偏差方法无疑设计得很巧妙:一方面,它 省去了显性定位模型偏差的功夫 ,节约大量人力资源;另一方面, 损失函数的计算较为简便 ,节约大量计算资源。不过,再怎幺吹,没看到结果之前,都是空的。

 

首先是在自然语言推断(Natural Language Inference)任务上的验证。研究者们在MNLI数据集上,采用基于TinyBERT的弱学习器和基于BERT的主学习器进行训练。模型的任务是基于前提(premise statement),将假设(hypothesis statement)分类为真(entailment),假(contradiction)或不确定(neurtral)。训练完成后,不仅在MNLI数据集上检测分类的准确性,还在与MNLI数据分布不同的HANS上检验了模型,结果如图1所示。在heuristic-non-entailment的样本上,PoE 将主学习器的正确率提高了将近24% ;但是在与in-distribution accuracy上,预测效果不升反降,这可能是因为文章提出的模型过于关注弱学习器犯的错误,而没有关注in-distribution prediction的优化导致的。

然后是在QA(Question Answering)任务上的验证。学习器和上文设置一样,用SQuAD数据集训练,在Adversarial SQuAD数据集上检验。结果如图2所示。这一任务上,PoE的采用对预测器鲁棒性的优化十分显着。

上述测试以外,文章还探讨了弱学习器的参数量和主学习器的鲁棒性的关联。由图三可以看出,弱学习器的正确率不会随着参数量的增加获得很大提升。而主学习器在in-distribution数据上性能显着下降,在out-distribution数据上则性能提升。

 

总结和感想

 

除了对模型本身的理解,写这篇文章更深层的动机是想说明:处理数据不均衡/模型有偏正在成为机器学习中共同的研究热点。其实在任何基于统计原理的建模方法上,这都是一个无法回避的挑战,只不过说之前因为数据量不够、基本模型不够完善所以热度没有起来。而现在时机已经逐渐成熟,2021年,恐怕这个难点上大新闻会此起彼伏,真是令人期待。

 

萌屋作者:白鹡鸰

 

白鹡鸰(jí líng)是一种候鸟,天性决定了会横跨很多领域。已在上海交大栖息四年,进入了名为博士的换毛期。目前以图像语义为食,但私下也对自然语言很感兴趣,喜欢在卖萌屋轻松不失严谨的氛围里浪~~形~~飞~~翔~~

 

知乎ID也是白鹡鸰,欢迎造访。

 

[1] Hinton, Geoffrey E. “Training products of experts by minimizing contrastive divergence.” Neural computation 14.8 (2002): 1771-1800.

 

[2] Mahabadi, Rabeeh Karimi, Yonatan Belinkov, and James Henderson. “End-to-End Bias Mitigation by Modelling Biases in Corpora.” ACL,(2020). https://arxiv.org/abs/1909.06321

 

[3] Utama, Prasetya Ajie, Nafise Sadat Moosavi, and Iryna Gurevych. “Towards debiasing NLU models from unknown biases.” arXiv preprint arXiv:2009.12303 (2020). https://arxiv.org/abs/2009.12303

 

[4] He, He, Sheng Zha, and Haohan Wang. “Unlearn dataset bias in natural language inference by fitting the residual.” arXiv preprint arXiv:1908.10763 (2019). https://arxiv.org/abs/1908.10763

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注