如何看待机器视觉的“对抗样本”问题,其原理是什么?



这两天正好看过一篇相关的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。



注意,这里的 X不是参数,而是样本。
就拿NN(Neural network)来说,假设我们的模型就是一个映射函数 F,其实如果最终NN收敛的点周围非常平坦,那么 \nabla F(X)  \sim  0, 也就是你周围非常smooth,那么这种情况根本不会出现。 然而现在的每一层都是 WX+b这种形式,这会带来的的性质就是local linear,还有一点和我们采用的激活函数ReLU等类似的有关系. 导致整个 F(X)空间非常的不光滑,同时存在大量的区域是局部线性的。所以在维度足够高的空间中,在X邻域稍微变化一些,会导致 F(X)的值剧烈变化。
那么这个也可以说明一些?,我们的优化最终收敛在了类似于一个坡上。
总结来说,主要原因就是 linearity和 high dimension。
对于training sample中加入adversarial samples在一定程度上与加入L2 regularization有同样的作用,但是效果比L2 regularization在adversarial samples表现的上更加好。
----------------------------------
NN训练的时候是对于参数求导,做梯度下降,收敛的时候是对于参数的梯度接近0。但是从直觉上来说,一个训练足够好的NN,对于识别物体,做物体分类,那么其结果也应该使得 \nabla F(X)接近于0,如果 X是一个很“明确的概念”,比如非常容易识别这个图是一只猫,那么在这个概念的一个邻域内,对于图片任意微小 \varepsilon (比如生成adverserial examples中的抖动)的抖动,不应该出现从一个概念被以较高的的置信度认为是例外一个概念。概念与概念之间应该是一个渐变的过程。
-----------------------------------

可以参考karparthy博客 Breaking Linear Classifiers on ImageNet
大致介绍了最先提出adversarial examples的 Intriguing properties of neural networks ,以及后续Ian Goodfellow提出的 Explaining and Harnessing Adversarial Examples,这篇文章提出的主要原因是高维度的点乘运算,使得样本的一点点小的改变,对于预测的结果影响很大。
当然啦,这种adversarial example在这些文章中都是用特别的方法构造的(上面两篇文章里有提不同的方法),最近bengio他们组发文表示就算是从相机自然采集的图像,也会有这种特性 arxiv.org/abs/1607.0253







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值