查看原文
其他

【源头活水】AAAI2021 通过主动学习提升模型鲁棒性

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

作者:知乎—kid丶

地址:https://www.zhihu.com/people/zhu-kun-peng-20-8

写了那么多别人文章的博客,终于有机会给大伙介绍自己的工作了!这篇文章是我和陶略(研究对抗鲁棒性的大佬)一起合作的工作,文章是有关模型鲁棒性 (Model Robustness) 以及主动学习 (Active Learning) 相关的,目前被AAAI2021接收,暂时还没被放出来。


01

主动学习 (Active Learning)

主动学习主要是解决在半监督场景下的应用问题,即我们只有极少量的有标记样本以及大量的未标记样本情况下如何训练出一个有效的模型,它和半监督学习是并列的关系。用一句话来简单概括就是,主动学习的核心目标是如何在这么大量未标记样本中挑选出最有价值的一批给人类标注者 (Oracle) 来打标记,从而使得用最少的标记代价来训练性能尽可能高的模型。

一个主动学习例子如上图所示[1], 在有标记训练集中训练得到一个初始模型后,根据其自身的一些信息从未标记池中挑选出一批未标记样本让标注者打上标签并加将其入到标记集合中去,形成一个循环。由此,它所能研究的东西也很多,例如研究具体任务上如何挑选样本的策略;又例如标记不同样本的难易程度是不同的,如何把这些样本分配给标注水平不同的标注者从而使得标记代价最小化;又或者用户的标记是带噪声的,因此可推广到众包场景下让多个标注者给同一个样本打标签,从多个噪声的标记中推测出真实标记(降低单个标注者标错样本的风险,这和买基金把鸡蛋放到多个篮子里是同一个道理);还可以研究标记类型之类的,例如样本的标签不一定是它的类别,在图像分割、目标识别场景下可以是一些box之类的。


02

模型鲁棒性 (Model Robustness)

深度神经网络在取得巨大成功的同时,也暴露出了其脆弱性以及不鲁棒性等众多问题。例如近几年比较火的对抗样本,对一张图片加一些细微的、肉眼不可见的对抗扰动 (adversarial perturbations),就可让模型产生截然不同的预测(如下图所示,熊猫被预测成长臂猿)。

另一方面,模型通常还被要求对一些腐蚀扰动 (corruption perturbations) 后的样本鲁棒,例如一些高斯噪声、椒盐噪声、运动模糊等等(如下图所示)。因为在实际应用场景中,目标物可不会乖乖的站在那不动然后让你拍个照再识别出它是啥,往往可能会伴随着目标体的运动、复杂环境、糟糕天气等因素让识别任务变得更加困难。

由此可见,粗略的划分,模型鲁棒性通常指对上述两种分别增加了对抗噪声以及腐蚀噪声的样本鲁棒。为解决这一问题,目前最为常用的做法是对干净样本增加一些人为构造的噪声扰动(例如对抗扰动、高斯扰动等等)进行微调训练,期望训练后的模型能够对扰动后的样本鲁棒,其实这么做的一个原因是希望通过对干净样本增加一些人为扰动后的分布能够尽可能逼近真实分布。

如上图所示,一般的训练方式如左图所示,最小化模型输出  和真实标记  的经验风险。鲁棒训练 (Robust training) 的方式则如右图所示,给每个样本  加一些可爱的扰动  ,相当于每个样本都会存在一个  球(epsilon ball),要求模型对每个 ball 进行正确的划分。直观的解释就是,考虑到实际场景下,样本可能会出现一些噪声扰动使得模型预测错,现我们假设被扰动后的样本依然包含在每个样本的  球当中,如果进行鲁棒训练后的模型能够对这些ball 鲁棒,那么在实际应用场景下也会对那些被噪声扰动后的样本鲁棒。这里值得注意的是,  选择一些高斯分布、均值分布等,则是在提升模型的一般鲁棒性,如果  选择展开成一个对抗扰动,即去找到一个使得样本 loss 最大的对抗扰动,该式子就变成了一个经典的min-max 问题去进行对抗训练提升模型的对抗鲁棒性。(这里不展开讲了,详情可关注好伙伴写的对抗鲁棒性简介(https://zhuanlan.zhihu.com/p/205035087))


03

存在的问题

相信大伙也也察觉到了上述鲁棒训练一个问题,就是它通常给所有的样本加相同噪声水平的扰动进行鲁棒训练,也就是说每个样本的  球是一样大的。这么做通常是假设每个样本忍受的噪声水平是一致的,但更符合实际的情况是越模糊、越复杂、分辨率越低的图片加一些轻微的扰动就会损害其可判别性(换句话来说,就是人都已经判别不出来这张图片是啥了,此时让模型能够对该图片鲁棒已经失去意义了),另一方面,越清晰、越简单、分辨率越高、识别目标尽可能充满整张图的样本能够忍受更大的噪声,就算给它增加很大的噪声可能还是具有可判别性。因此,我们提出了基于 instance-dependent perturbations level 的经验损失函数:

换句话来说,我们希望那些“清晰”的样本的  尽可能大一点,为了尽可能提升模型鲁棒性,希望那些“模糊”的样本的  尽可能小一点,为了让其不丧失可判别性。


04

我们的方法

那么,我们怎么来调整样本的噪声水平  呢?我们提出让人类标注者参与提升模型鲁棒性的训练过程中来,提出主动的去挑选出最有价值样本并查找其最合适的噪声水平。这里面涉及到两点,第一,如何定义最合适的噪声水平以及如何去标;第二,我们不可能将所有的样本都标一遍,因此我们要设计策略去找到那些最需要标记、最有价值的那批样本(换句话来说,就是找到那些潜在使得模型鲁棒性提升最有帮助那批样本)。

我们所提出的方法框架如上图所示,流程从左到右形成循环,首先我们有一批由  构成的数据集(其中圆和三角形分别代表两个类别,黑色和红色分别代表其噪声水平  没被调整和以及已经被调整),我们 follow 主动学习的步骤,在该数据集上训练一个分类器(黑色实曲线),接着我们使用特别的策略去挑选最有价值的样本,最后向 Oracle 查询其合适的噪声水平并加入到数据集中。

针对第一个问题如何去标,我们的方法将噪声水平从小到大生成一系列的图片让人去划分分界面(图右边的红色标注),人眼最多能忍受什么程度的噪声,比如其中一张图片是刚刚好看得清和看不清之间,那就将最合适的噪声水平标到这儿。

针对第二个问题该标哪些,我们需要去找到最需要标记、最有价值的那批样本。其实也很直观,我们期望去找到那些当前噪声水平和本身最不匹配的样本,这些样本总共两种:很清楚的图片却只给他们进行很小的噪声扰动(对应上图即远离分界面并且圈圈很小的样本),以及很复杂很模糊的图片却给他们进行了很大的噪声扰动(对应上图即靠近分界面并且圈圈很大的样本)。前者由于扰动太小对提升模型鲁棒性没有作用,后者由于丧失类别可判别性也对提升模型鲁棒性没有作用甚至对特征学习有害。那么,该怎么挑出这两批样本呢?例如基于不确定性的策略可以将靠近分界面和远离分界面的样本挑出来,但却没法衡量当前噪声水平是否合适。

受启发于 randomized smoothing[2],我们定义分类熵 (classification entropy) 去估计样本当前噪声水平的合适度。具体来说,对于样本  ,我们首先根据其当前的噪声水平  生成  个噪声样本,并用当前的分类器  对这  个样本进行类别预测。直观地,如果这  个预测类别越一致,说明当前的噪声水平  对样本  来说可能太小了;另一方面,如果这 个预测类别越不一致,说明当前噪声水平可能太大了。形式上的,

其中,

  代表当前样本  加了噪声后预测为类别  的概率,这里可以直接通过 Monte Carlo Sampling 求解。

直观地来看,假设当前分类器  对样本  周围的预测如上图 (左) 所示,不同的颜色代表不同的类别。可以观测到,可以观察到,在过度的扰动下 (对应于黑圈),分类器的预测将越不一致 (熵越大),而在微扰不足的情况下 (对应于红圈),分类器将产生越一致的预测 (熵越小)。


05

部分实验结果

实验结果大致为了证明两点,一是我们所提出的主动学习框架能够有效提升模型的鲁棒性,二是我们所提出的主动采样策略能够在使用更少的标注代价取得更高的模型性能。


06

参考文献

[1] Settles, B. 2009. Active learning literature survey. Technical report, University of Wisconsin-Madison Department of Computer Sciences.

[2] Cohen, J.; Rosenfeld, E.; and Kolter, Z. 2019. Certifified Adversarial Robustness via Randomized Smoothing. In International Conference on Machine Learning, 1310–1320.


本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存