这两天正好看过一篇相关的paper,“EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES” 作者是Ian Goodfellow、Jonathon Shlens、Christian Szegedy,发在ICLR 2015上。
之前很多人认为是由于模型非线性的特征导致了对抗样本的产生,而Goodfellow他们却提出恰恰是模型本身的线性(或者说是通过点乘得到score的方式)引发了对抗样本。
用最简单的score function s = W.T * X举例,W是权重,X是图像转化成的矩阵。那么我如果让X' = X + n,n足够小的话,W.T * X' = W.T * X + W.T * n,也就是所谓的线性本质。
放一个cs231n中的例子:<img src="https://i-blog.csdnimg.cn/blog_migrate/f19dcaba570d2a06c0e9011181e2ccd4.png" data-rawwidth="1932" data-rawheight="1082" class="origin_image zh-lightbox-thumb" width="1932" data-original="https://pic3.zhimg.com/3ef0e44b614d1e44d22ca3ca30aa8f16_r.png">![]()
可以看到通过把x的每个维度加或减去0.5, 某一class的得分大大提升。
当然n不是随便乱取的。Goodfellow他们认为在某一个特定方向(特定方向取决于weights)上进行调整就非常容易愚弄训练出来的模型。Goodfellow他们在文章中提出了一种fast gradient sign method的方法,他们取n = sign(w)来generate一些对抗样本。具体感兴趣的话可以去看一下paper。
注意,这里的
不是参数,而是样本。
就拿NN(Neural network)来说,假设我们的模型就是一个映射函数
,其实如果最终NN收敛的点周围非常平坦,那么
, 也就是你周围非常smooth,那么这种情况根本不会出现。 然而现在的每一层都是
这种形式,这会带来的的性质就是local linear,还有一点和我们采用的激活函数ReLU等类似的有关系. 导致整个
空间非常的不光滑,同时存在大量的区域是局部线性的。所以在维度足够高的空间中,在X邻域稍微变化一些,会导致
的值剧烈变化。
那么这个也可以说明一些?,我们的优化最终收敛在了类似于一个坡上。
总结来说,主要原因就是 linearity和 high dimension。
对于training sample中加入adversarial samples在一定程度上与加入L2 regularization有同样的作用,但是效果比L2 regularization在adversarial samples表现的上更加好。
----------------------------------
NN训练的时候是对于参数求导,做梯度下降,收敛的时候是对于参数的梯度接近0。但是从直觉上来说,一个训练足够好的NN,对于识别物体,做物体分类,那么其结果也应该使得
接近于0,如果
是一个很“明确的概念”,比如非常容易识别这个图是一只猫,那么在这个概念的一个邻域内,对于图片任意微小
(比如生成adverserial examples中的抖动)的抖动,不应该出现从一个概念被以较高的的置信度认为是例外一个概念。概念与概念之间应该是一个渐变的过程。
-----------------------------------
![X](https://i-blog.csdnimg.cn/blog_migrate/6ce37be68c2df90fbb8ad8fe13a3f033.png)
就拿NN(Neural network)来说,假设我们的模型就是一个映射函数
![F](https://i-blog.csdnimg.cn/blog_migrate/2d0017cb7d6481fec7e76e6f804647a9.png)
![\nabla F(X) \sim 0](https://i-blog.csdnimg.cn/blog_migrate/6ecb549c75844fff91616ff5b1dc18f7.png++%5Csim++0)
![WX+b](https://i-blog.csdnimg.cn/blog_migrate/486f4871adf0f3ca4635f40be4d59d55.png)
![F(X)](https://i-blog.csdnimg.cn/blog_migrate/2d0017cb7d6481fec7e76e6f804647a9.png%28X%29)
![F(X)](https://i-blog.csdnimg.cn/blog_migrate/2d0017cb7d6481fec7e76e6f804647a9.png%28X%29)
那么这个也可以说明一些?,我们的优化最终收敛在了类似于一个坡上。
总结来说,主要原因就是 linearity和 high dimension。
对于training sample中加入adversarial samples在一定程度上与加入L2 regularization有同样的作用,但是效果比L2 regularization在adversarial samples表现的上更加好。
----------------------------------
NN训练的时候是对于参数求导,做梯度下降,收敛的时候是对于参数的梯度接近0。但是从直觉上来说,一个训练足够好的NN,对于识别物体,做物体分类,那么其结果也应该使得
![\nabla F(X)](https://i-blog.csdnimg.cn/blog_migrate/6ecb549c75844fff91616ff5b1dc18f7.png)
![X](https://i-blog.csdnimg.cn/blog_migrate/6ce37be68c2df90fbb8ad8fe13a3f033.png)
![\varepsilon](https://i-blog.csdnimg.cn/blog_migrate/8a99af2bcb0d66ca9d008db7c9825796.png)
-----------------------------------
可以参考karparthy博客
Breaking Linear Classifiers on ImageNet
大致介绍了最先提出adversarial examples的 Intriguing properties of neural networks ,以及后续Ian Goodfellow提出的 Explaining and Harnessing Adversarial Examples,这篇文章提出的主要原因是高维度的点乘运算,使得样本的一点点小的改变,对于预测的结果影响很大。
当然啦,这种adversarial example在这些文章中都是用特别的方法构造的(上面两篇文章里有提不同的方法),最近bengio他们组发文表示就算是从相机自然采集的图像,也会有这种特性 http://arxiv.org/abs/1607.02533
大致介绍了最先提出adversarial examples的 Intriguing properties of neural networks ,以及后续Ian Goodfellow提出的 Explaining and Harnessing Adversarial Examples,这篇文章提出的主要原因是高维度的点乘运算,使得样本的一点点小的改变,对于预测的结果影响很大。
当然啦,这种adversarial example在这些文章中都是用特别的方法构造的(上面两篇文章里有提不同的方法),最近bengio他们组发文表示就算是从相机自然采集的图像,也会有这种特性 http://arxiv.org/abs/1607.02533