5月7日,MIT Madry组发布了一篇文章 Adversarial Examples Are Not Bugs, They are features. 这篇文章试图解释为什么会存在Adversarial Examples,并得出结论,模型之所以会受到adversarial attack是因为它学习到了原始数据中的Non-robust but predictive 的特征。
自从Adversarial examples 被发现以来,关于它的研究就一直没有中断过。最早我们可以在2014年2月的 Szegedy 的 Intriguing properties of neural networks文中了解到神经网络对抗样本的存在。随后,Ian Goodfellow 在 EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES中提出了导致对抗样本存在的一个可能原因:神经网络的局部线性性质,在CNN中也就是我们的relu部分。并且依据这一发现,提出了一种非常简单的生成对抗样本的方法 FGSM (Fast-Gradient Sign Method). 不过这个说法并不能解释所有情况,因为随后有研究发现有些对抗样本本身和局部线性性质没有关系。
Madry组另外一篇非常有名的文章中就谈到了这个问题。Towards Deep Learning Models Resistance to Adversarial Attacks. 这篇文章提出了一种抵御对抗样本的方法,也是目前为止唯一没有被攻破的方法。
回到文章本身。在Madry组前一篇文章Robustness May Be at Odds with Accuracy中,研究者发现提高模型robustness和accuracy是两个相矛盾的任务,进而思考了是否提高robustness在任何情况下都是最优选择。在这篇文章中,研究者则表明,对抗样本的存在是合理的,甚至是必然的:他们构成了特征,并且这些特征往往能够显著提高模型的准确率,用文中的话来说,这些特征是non-robust but useful
. 因此,如果我们不去利用这些不鲁棒但是有用的特征,模型的预测能力就会下降。
为了证实这个观点,研究者尝试从原始数据集中分离robust feature and non-robust feature ,并分别在这两个数据集上训练模型,并测试其在原始测试集上的准确率。
的生成比较简单,是targeted attack。对每一个原始数据集(x, y)
, 我们随机/固定 将y
映射到另外一个类别t
,之后再进行targeted attack,得到x'
。理论上来说x'
这个时候应该包含和属于类别t
的non-robust features, 而那些和类别y
有关的robust feature将会被破坏,或者,即便没有被破坏,也无法给分类器提供任何有价值的信息。结果显示,在上训练出来的模型,仍然具有泛化能力,能够在原始测试集上达到43.7%~87.9%的准确率(取决于数据集类型以及到底是随机映射还是固定映射)。作者于是指出,这些non-robust的特征能够被模型选择,即便原始集中存在一些同样具备预测能力的鲁棒性特征。
个人认为,这个观点可以这么理解:这些robust features 以人类视角看,是非常强,可解释的特征,然而他们是错的,和一个错误的类别联系在了一起。所以,很有可能模型会学习到错误的信息。可即便如此,模型仍然能够借助non-robust features排除干扰获得一定程度的泛化能力。事实上,根据试验结果,我们发现固定映射数据集上训练的模型比随机映射数据集上训练的模型表现更差一些:因为固定映射强化了robust features和错误类别的联系,而随机映射则是相互抵消。因此,从这个结果我们可以得出,这些non-robust features的作用要比我们想象中要大。他们虽然在人类视角中难以被理解,但是对于机器学习模型,确实提高准确率的不二法宝。
其实,仔细想想,目前的研究人员似乎把robustness 以及 interpretability 划上了等号。Interpretability 本身是从人类视角出发的一个评估指标。而Robustness并不天然和人的感官有关,它有严格的数学表示。通俗点来说,指的是输入在一定范围内变化时,输出不会有太大改变。然而,当我们把研究对象集中在机器视觉领域时,这两者就有很强关联性了。对人类而言,对视觉任务有用的特征 (具有high interpretability的特征) 通常都是robust的,因为我们大脑自带去噪能力,能够忽略细小的变化而关注整体表征。现在的问题在于:
是否存在 robust 但是 less interpretable 的特征?
也就是文中提到的-robustly useful features。文中虽然给了定义,但是并没有给出实例。同样,尽管作者宣称和分别包含robust features 和 non-robust features,但是却没有给出定量的分析。
中只包含robust features吗?包含的比例是多少?的分布是怎样?
同样,只包含 non-robust features吗?
因此,个人认为,由于缺少这一部分的分析,很难说non-robust features在模型中到底贡献了多少。不过,这一部分也确实不好做,因为我们卷积神经网络的特征并不是输入数据,而是经过卷积,池化后得到representation。而到底选取哪一部分的representation作为特征又有很多工作要做。所以,粗略来说,我们可以大致认为和分别是包含robust features 和 non-robust features比较多的数据集。不过,需要指出,这一部分我认为还是不严谨的。
最后,感谢Madry组的工作,为我们探索模型的安全可靠性又提供了一种新思路!
网友评论