DCNs中产生黑盒攻击的程序性噪声对抗样本


论文 2019CCS-Procedural Noise Adversarial Examples for Black-Box Attacks on Deep Convolutional Networks.

背景

什么是噪声?

噪声其实是随机变量,这些随机值可以直接使用随机生成器生成,但缺点是生成的随机值太“随机”了。这种噪声在图形学中被称为白噪声(White noise),例如小时候电视机没信号时的沙沙声就是声音上的一种白噪声。可以将其理解为简单的随机值。

白噪声非常不自然,听起来很刺耳,看起来也不好看。不光你这么想,图形学领域的前辈们也早发现了。如果你观察现实生活中的自然噪声,它们不会长成上面这个样子。例如木头纹理、山脉起伏,它们的形状大多是趋于分形状(fractal)的,即包含了不同程度的细节。比如地形,它有起伏很大的山脉,也有起伏稍小的山丘,也有细节非常多的石子等,这些不同程度的细节共同组成了一个自然的地形表面。那么,我们如何用程序来生成类似这样的自然的随机数(可以想象对应了地形不同的高度)呢?学者们根据效率、用途、自然程度(即效果好坏)等方面的衡量,提出了许多希望用程序模拟自然噪声的方法。例如,Perlin噪声被大量用于云朵、火焰和地形等自然环境的模拟;Simplex噪声在其基础上进行了改进,提到了效率和效果;而Worley噪声被提出用于模拟一些多孔结构,例如纸张、木纹等。

噪声的分类

由程序产生噪声的方法大致可以分为两类:

类别名称
基于晶格的方法(Lattice based)梯度噪声(Gradient noise),包括Perlin噪声, Simplex噪声,Wavelet噪声等;
Value噪声(Value noise)
基于点的方法(Point based)Worley噪声

一些文章经常会把Perlin噪声、Value噪声与分形噪声(Fractal noise)弄混,这实际在概念上是有些不一样的。分形噪声会把多个不同振幅、不同频率的octave相叠加,得到一个更加自然的噪声。而这些octave则对应了不同的来源,它可以是Gradient噪声(例如Perlin噪声)或Value噪声,也可以是一个简单的白噪声(White noise)。

噪声的利用

传统的随机噪声,比如高斯噪声或者椒盐噪声,都是像素级别的,像素级别的噪声对于神经网络是没有作用的, 原因在于有卷积层和dropout来进行过滤。而基于特征的程序噪声更有可能去影响最后的预测结果。

程序化噪声被广泛应用于计算机图形学,并且在电影和视频游戏中有大量的应用,用来生成仿真的纹理来细化自然的细节,进而增强图像,特别地,比如玻璃、树木、大理石和动画(云、 火焰、波纹)的纹理。由于这些特征, 程序化的噪声可以容易地骗过图片的分类算法,并且给出的扰动和图片的背景和前景都有着相似的地方,更自然,使得人眼无法识别。

攻击原理

程序性噪声是如何欺骗现存的图片分类器的?
可以宽松地定义"自然纹理"来作为图片的扰动,该扰动为真实图片的复制或者和自然模式有一些隐藏的结构相似性。直觉是通过自然纹理对图片进行覆盖,图片分类器会对这些加上去的形状和模式进行解释并作为特征,这些特征将会影响最后的结果。

本论文提出了一种生成具有程序性噪声函数的通用对抗扰动(UAPs)的结构化方法。该攻击是基于查询的黑盒算法。它利用了程序噪声的属性,在选择了具有参数 θ \theta θ的程序噪声函数 G G G之后,创建图像扰动以添加到原始的“干净”图像。然后,将使用此更改了的图像查询目标模型。如果攻击不成功,我们将使用贝叶斯优化更新我们后续的查询 θ \theta θ,旨在优化攻击者的目标函数。

贝叶斯优化

噪声的生成依赖于一个减少控制噪声生成的参数的优化。对此,提出使用贝叶斯优化(Bayesian optimization)。这个优化已经被证明是对于黑盒优化有效的方法。

贝叶斯优化是一种基于序列模型的优化算法,主要用于在黑盒设置中有效地找到最优参数 θ \theta θ。 即可在不知道目标函数(黑箱函数)长什么样子的情况下,通过猜测黑箱函数长什么样,来求一个可接受的最大值。优点是迭代次数少(节省时间);缺点是不容易找到全局最优解。事实证明,该技术可以有效地解决各种问题,如超参数调整、强化学习、机器人和组合优化。

贝叶斯优化由两部分组成:首先是概率代理模型,通常是高斯过程(GP);第二是指导其查询的获取函数,该算法使用此获取功能来选择输入以查询目标分类器并观察输出,然后更新统计模型的先验信念以产生函数的后验分布,其在给定观察数据的情况下更具代表性。一旦最佳目标函数值停止改进或算法达到最大迭代次数(查询),算法就会停止。

贝叶斯优化(Bayesian Optimization,以下简称BO)开始被好多人用来调神经网络的超参,在这方面BO最大的优势是sample efficiency,也就是BO可以用非常少的步数(每一步可以想成用一组超参数来训练你的神经网络)就能找到比较好的超参数组合。另一个原因是BO不需要求导数(gradient),而正好一般情况下神经网络超参的导数是求不出来的。

适用场景一般有两个特点:(1)需要优化的function计算起来非常费时费力,比如上面提到的神经网络的超参问题,每一次训练神经网络都是燃烧好多GPU的;(2)你要优化的function没有导数信息。
但有一些特殊的问题结构也会影响BO的效果,比如需要调的参数太多的话(对应high-dimensional BO的问题),或者参数里面有太多discrete parameter的话BO的效果都会受影响。

探索(exploration)与利用(exploitation)
探索(exploration):简单来说就是尽量选择远离已知点的点为下一次用于迭代的参考点,即尽量探索未知的区域,点的分布会尽可能的平均。
利用(exploitation):简单来说就是尽量选择靠近已知点的点为下一次用于迭代的参考点,即尽量挖掘已知点周围的点,点的分布会出现一个密集区域,容易进入局部最大。

攻击效果

我们进行了两次实验来测量Perlin噪声攻击的性能。在第一个实验中,我们一次攻击一个图像,目的是尽可能多地规避。在第二个实验中,我们的目标是找到一组“强大的”Perlin噪声设置(扰动),可以在尽可能多的图像中欺骗分类器。

实验结果是能够达到至少90%和45%的top-1和top-5错误率, 是部分的黑盒攻击的效果的两倍,更进一步,该结果在大多数情况下对比白盒攻击在ImageNet上效果甚至更好。

参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值