对于《Feature Squeezing: Detecting Adversarial Examples in Deep Neural Networks》的理解
很多先前的防止adversarial example的方法都是,adversarial training and gradient masking,都会修改原来的网络,本文讲述的是利用对input压缩简化的方式,去进行对于输入样本的检测,以此判断是否是对抗样例。这个方法,要精度更高,而且开销更小一些。
原因是作者发现,神经网络的输入值,有很多“冗余”的特征项目(原文:feature input spaces are often unnecessarily large),这样会更加的有利于别人制造adversarial example。作者提供了一个Squeezing的方法,去减少没有必要的那些feature。具体方法如下:
(原文: Our strategy is to reduce the degrees of freedom available to an adversary by “squeezing” out unnecessary input
features)
如上图所示:将原图用两种Squeezing方法压缩后,放入原模型,和没有Squeezing的放入原模型的结果,求一个距离。两者距离的较大值max(d1,d2),如果比一个给定的阀值T大,则说明是对抗样例。
原因:Squeezing有降噪的功能,正常图片降噪后,和真实图片降噪后的结果差不多的,如果是对抗样例,就肯定会差比较多。
两种压缩图像的方法 reduce the differences among individual pixels:
**1 reducing the color depth of each pixel in an image
2 spatial smoothing**
1 减小每个像素的深度
因为像素的每个channel都是2 ^8(0-255)种值,作者发现将其压缩到2^1种值,去表达图片,不但不会影响到神经网络对于图片的判断,而且会有效的降低被攻击的可能性,即加到对抗样例中的noise产生的效果会被很有效的降低。
原始8的深度降为i 实现:
将input先限制到[0,1] (整体除以255),然后乘上(2^i -1 ),然后取整,就将原本2^8表示的图像,降到了2^i
2 空间维度上的缩减
1 Local Smoothing
有比如:Gaussian smoothing, mean smoothing,median smoothing
这里介绍 median smoothing,它对L0的攻击有很好的防御
我的理解是相当于卷积神经网络的pooling,取的是nxn大小filter的中值,替代原来区域的值。
对于原理的理解是,相邻区域的像素点,值其实是相似相关的,所以我们对整张图smoothing以后不会影响到最后的总体结果,但是将那些加进去的noise去除了。
2 Non-local Smoothing
它压缩空间是在一个很大的区域上,给定一小块图片,然后在一个大区域上去寻找与此类似的小区域图片。衡量相似的方法有几种,比如 Gaussian, mean,median。然后将大图中间的小块,用这些小块的平均值替换掉。因为,如果添加噪音的均值为0,那么这样就把噪音消掉了、
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)