夏乙 编译整理
量子位 出品 | 公众号 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技术和产品新动态


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

  1. 一行代码指定python下载源为清华源【只需修改一次】

    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

  2. 使用卷积神经网络实现猫狗分类任务

    一.数据集下载链接 二.基础环境配置 三.训练及测试过程   使用卷积神经网络在猫狗分类数据集上实现分类任务. 一.数据集下载链接   猫狗分类数据集链接 → 提取码:1uwy. 二.基础环境配置 W ...

  3. 第十二章 卷积神经网络实战--猫狗识别

    1.介绍 我们已经学习了如何用传统的神经网络进行机器学习,在本章我们学习一下如何使用简单的神经网络进行图像分类.数据集用的是Kaggle的猫狗数据集.这里只有前100张,如果需要更多的可以去Kaggl ...

  4. 卷积神经网络基础(最详细)+如何写代码(Pytorch)+推荐学习顺序+心得感悟

    目录 卷积神经网络 为什么要使用卷积神经网络? 神经网络中的各层 卷积操作 权重共享 填充 步幅 3 维数据的卷积运算 激活函数 输出层的激活函数 卷积层的激活函数 池化 重叠池化 池化层的特征 BN ...

  5. 基于Keras的卷积神经网络用于猫狗分类(未进行数据增强)+卷积层可视化

    首先看数据集路径: cats和dogs存放的就是各种大小的猫狗图片. 读取数据集代码: import os import matplotlib.pyplot as plt ""&q ...

  6. TensorFlow 卷积神经网络之猫狗识别(二)

    本文是TensorFlow 卷积神经网络之猫狗识别 的姊妹篇,是加载上一篇博客训练好的模型,进行猫狗识别 本文逻辑: 我从网上下载了十几张猫和狗的图片,用于检验我们训练好的模型. 处理我们下载的图片 ...

  7. 循环神经网络RNN 2—— attention注意力机制(附代码)

    attention方法是一种注意力机制,很明显,是为了模仿人的观察和思维方式,将注意力集中到关键信息上,虽然还没有像人一样,完全忽略到不重要的信息,但是其效果毋庸置疑,本篇我们来总结注意力机制的不同方 ...

  8. 基于卷积神经网络的猫狗识别

    卷积神经网络的猫狗识别 任务需求 环境配置 识别猫狗实例 首先导入库 数据预处理: 读取数据: 定义网络: 调整机器学习率 定义训练过程 训练开始 训练结果 用于测试代码 结果 任务需求 按照 htt ...

  9. 深度学习实战——利用卷积神经网络对手写数字二值图像分类(附代码)

    系列文章目录 深度学习实战--利用卷积神经网络对手写数字二值图像分类(附代码) 目录 系列文章目录 前言 一.案例需求 二.MATLAB算法实现 三.MATLAB源代码 参考文献 前言 本案例利用MA ...

最新文章

  1. StringUtils.isEmpty和StringUtils.isBlank的区别
  2. Camelyon Challenge: 癌症细胞区域检测竞赛
  3. LeetCode-链表-19. 删除链表的倒数第 N 个结点
  4. 【Tools】Windows安装CMake工具
  5. CentOS多网卡重命名配置
  6. idea无法忍受_不要成为无法忍受的软件开发人员
  7. 前端学习(46):页面导入样式时,使用link和@import有什么区别?
  8. linux 使用ssh-keygen生成ssh公钥和私钥
  9. 动态时间规整算法(DTW)通俗易懂
  10. 量子计算机可以预测未来吗,这台量子计算机可以同时预测16种不同的未来
  11. SpringCloud从入门到精通——微服务注册中心
  12. After Effects CC 2019 中文版软件下载 /破解教程
  13. 【NOIP模拟】夕阳
  14. 东华考研复试21-30oj
  15. 织梦微信小程序一键生成插件(资讯案例模板),整合织梦CMS一切数据信息
  16. 刚性仿射变换算法_图像的仿射变换
  17. 石沉大海的简历和优质简历的差别
  18. ROS2-Foxy-配置
  19. 日报系统、周报系统如何便捷使用?——员工篇
  20. (转载)物联网平台 分类CMP、DMP、AEP、BAP

热门文章

  1. 远程键盘 App 被曝漏洞,成 Intel 弃子!
  2. 初学编程者如何摆脱搭建开发环境的困扰?
  3. 熬了整整30天,java递归阶乘求和
  4. mendeley 笔记_免费文献管理器 Mendeley,其实比你想象的好用!
  5. linux qt 系统时间,QT在linux环境下读取和设置系统时间
  6. python查天气预报_一个用Python编写抓取天气预报的代码示例
  7. python字典统计排序 统计各省份大学数量_1641统计字典排序元音字符串的数量(递归,递归),数目,递推...
  8. 如何面试一位前端工程师
  9. 计算机组成原理计算tag,计算机组成原理计算题
  10. 华为系统里的计算机,一个屏幕操作两个系统 让你的手机装进华为MateBook 14电脑里...