只需修改一个像素,让神经网络连猫都认不出 | 论文+代码

夏乙 编译整理
量子位 出品 | 公众号 QbitAI

想骗过神经网络,让它认错图像,需要对图像做多少修改?

一个像素就够了。

一项来自日本的研究表明,改动图片上的一个像素,就能让神经网络认错图,甚至还可以诱导它返回特定的结果。

研究由日本九州大学的Jiawei Su、Danilo Vasconcellos Vargas和Kouichi Sakurai三人共同完成,他们不仅写论文详细介绍了这项改一个像素就骗过神经网络的神技,还开源了相应的Keras实现。这项技术被称为“一像素攻击”(One Pixel Attack)。

 可惜了VGG一世英名,连猫都认错

在CIFAR-10和ImageNet两个数据集上,一像素攻击分别实现了68.36%和41.22%的成功率。

一个像素,怎么攻击神经网络?

实验在CIFAR-10和ImageNet数据集上进行,我们以CIFAR-10为例来做一下说明。CIFAR-10是一个图像识别数据集,包含60000张32×32像素的RGB彩色图片,共10类。神经网络在这个数据集上的任务,就是正确预测图片所属的分类。

而一像素攻击的目标,是通过从图片上选定一个像素,更改它的颜色来制造对抗性图像,改变神经网络输出的类别标签,降低对正确类别的置信度,提高对其他某个类别的置信度。也就是说,让神经网络将它分到错误的类别。

任务看似简单,但是,32×32=1024个像素,该选哪一个?改成什么颜色?

这些研究人员用了一种名叫差分进化(Differential Evolution,简称DE)的进化算法(Evolutionary Algorithm)。

具体来说,首先要通过随机修改像素来生成400个对抗样本,输入到神经网络中;然后,将这些修改像素的位置和颜色结合起来,再生成400个对抗样本,输入到神经网络中;接下来,如果某个新样本与父代相比,降低了神经网络对正确类别的置信度,就将用这个样本上修改的像素替换父代,作为目前已知的最优解。

之后就要多次重复以上三步,然后在最后一次迭代时,选出将神经网络对正确类别的置信度降得最低的对抗样本。

如果有其他类别的置信度高于正确类别最终的置信度,我们就成功了。最后选出的样本就是我们所要的结果。

在对全卷积神经网络(AllConv)、Network
in Network(NiN)、VGG16、和AlexNet的测试中,这种方法取得的成功率如下表所示:

 表中的targeted attack,指的是在攻击中让神经网络将图像误认为特定某个类别

几位研究人员还把这种方法用在了ImageNet上,将图像大小统一为227×227,大约是CIFAR-10图像尺寸的50倍。

在ImageNet上的测试表明,这种欺骗神经网络的方法也适用于分辨率比较高的图像。

据论文介绍,DE方法不会像基于梯度的方法那么容易陷入局部最小值,也不需要关于攻击目标系统的太多信息,因此生成的对抗样本适用于多种神经网络。

相关链接

论文 One pixel attack for fooling deep neural networks
https://arxiv.org/pdf/1710.08864.pdf

Keras实现
https://github.com/Hyperparticle/one-pixel-attack-keras

开头提到的迷幻贴 Adversarial Patch
https://arxiv.org/pdf/1712.09665.pdf

加入社群

量子位AI社群13群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot5入群;


此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进群请加小助手微信号qbitbot5,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值