论文阅读笔记:Intriguing Properties of Neural Network

对抗样本(adversarial examples)的开山之作。

文中主要提到了神经网络两个比较奇怪的性质:

  1. 神经网络中携带语义信息的不是某单个神经元,而是整个网络所表示的空间。
  2. 给样本添加一些轻微的扰动,会导致神经网络模型错误分类,这些样本就称为对抗样本。

这里对第一个性质做简单的说明。

首先,作者们通过观察某个隐层中某个特定神经元对什么样的输入图片会产生最大的激活值,以此来确定这个神经元对什么样的特征是最敏感的,从而确定这个神经元包含什么样的语义信息。这个想法是可行的并且前面(2014年之前)已经有这方面的研究了。实验结果就发现:单个神经元确实能够表示某种语义信息。接着作者们又做了另外一个实验:选择隐层所表示的空间中的一个随机方向(就是基向量的随机线性组合,是隐层中单个神经元所无法表示的方向),然后用同样的方法使其激活值最大。实验结果发现,同单个神经元一样,这个随机的方向也能表示某种确切的语义信息,从而说明了这个随机方向也可以表示某种特征。

所以最后得到的结论就是:神经网络某个隐藏层中携带语义信息的并不是单个神经元,而是这个隐层所表示的整个空间。

文中提出来的几个假设:

  1. it is assumend that is possible for the output unit to assign non-significant(and, presumaby, non-epsilon)probabilities to regions of the input space that contain no training examples in their vicinity.
  2. the adversarial examples represent low-probability(high-dimensional)”pockets” in the manifold, which are hard to efficiently find by simply randomly sampling the input around a given example.

那么作者们是如何找到对抗样本的呢?

寻找对抗样本的过程,其实是一个不断优化的过程:一方面我们希望添加的扰动尽可能小,因为如果是较大的扰动,任何state-of-the-art的模型都会错误分类,就算是人眼也可能识别不了,这和对抗样本问题的研究初衷不一样,我们想知道的是为什么神经网络在面对这些人眼不可分辨的图片时,会给出巨大的错误结果。另一方面,我们希望对抗样本能被错误分类到另一个其它类别,从损失函数的角度看,就是想让其越大越好,于是作者们给出了下面的优化目标函数:

其中x是原始图片,r是添加的扰动,f是分类器,l是目标类别(同x正确的类别不同)。我们希望r越小越好,同时使对抗样本x + r被错误分类到一个指定类别l下,同时还需要生成的x + r的值在[0,1]之间(保证是一张合法的图片)。

直接解这个问题不容易,因此作者转换了一种思路,从损失函数的角度找最优的r:

简单看看损失函数:一方面我们需要r的某种范式越小越好,另一方面我们希望loss(x+r, l)越小越好,因为这样表明x+r分类成类别l的概率越大。所以我们的目标是最小化上述公式,用到的方法是box-constrained L-BFGS.

最后,作者们通过实验发现了几个重要的现象:

  • 对于论文中提到的所有网络结构(non-convolutional network, AlexNet, QuocNet),都能用上述方法生成对抗样本;
  • 对抗样本具有跨模型的泛化能力:在A模型上产生的对抗样本,有很大一部分在B模型(和A模型结构相同,超参数不同)上也有效(也能是B模型错误分类)
  • 对抗样本具有跨数据集的泛化能力:在D1数据集训练得到的模型上产生的对抗样本,在D2数据集训练得到的模型上也有效,D1和D2属于不同的子集,两个模型是结构完全不同的模型。
Donate comment here