AI 到底是怎么「想」的?

2023-05-16

640?wx_fmt=gif

本文作者:kurffzhou,腾讯 TEG 安全工程师

最近,Nature发表了一篇关于深度学习系统被欺骗的新闻文章,该文指出了对抗样本存在的广泛性和深度学习的脆弱性,以及几种可能的解决方法。安全平台部基础研究组自2017年来在对抗样本的生成及防守方法进行了深入研究,在这里团队通过在攻击方面的经验,分享我们对于防守对抗样本的一些思考,欢迎共同讨论。

深度学习在现实生活中的应用越来越广,然而越来越多的例子表明,深度学习系统很容易受到对抗样本的欺骗。那么,AI到底是怎么“想”的?为什么这么容易被骗?

要回答这个问题,我们首先看图片来做个小实验——

640?wx_fmt=png
图1
  • 图1左图:原始图片(图片来源:ImageNet数据集)

  • 图1中图:局部块保持像素的布局不变,但是整体图像的全局布局改变

  • 图1右图:局部块的像素的布局变化,但是整体图像的全局布局不变

对于这三幅图,神经网络会“认为”图1中图图1右图哪张图片更与图1左图是一致的呢?

毫无疑问,对于人的直觉来说,相对图1中图而言,图1右图更与图1左图一致,因为人类普遍倾向于对整体图像的布局进行识别。

然而我们通过统计实验发现,利用神经网络进行预测,图1中图的预测结果更加倾向于与图1左图的预测结果保持一致。可见,人与机器对图片的识别结果存在较大差异。

为了深入解释这种差异,下文首先对深度学习常用的模型进行简单介绍,再对深度学习模型所学习得到的特征进行可视化来解释深度学习模型在图像方面的优势,并通过相关实验研究深度学习模型到底在“想”什么、学习了什么。

1、深度学习常用模型以及特征可视化

深度学习常用模型之一的Alexnet模型:Alexnet模型通过多层卷积以及max-pooling操作,最后通过全连层得到最后预测结果,通过计算损失L来刻画网络预测结果与我们人工标注类别的差异大小,然后通过计算损失对可学习参数的梯度,通过梯度下降的方式来更新网络的权重,直到损失L下降到网络预测的结果与我们人工标注差异很小时,即神经网络通过对输入图像的层层卷积、max-pooling、全连等操作获得了正确的结果。

640?wx_fmt=png
图2:Alex网络结构(图片来源:文献9)

我们首先对多种不同类型的网络(AlexNet, ResNet等)的底层卷积核进行可视化,我们发现这些底层特征存在一定的共性:这些网络底层卷积核都在提取梯度、颜色等局部模式,对应图像中边和线等,如图3所示。

640?wx_fmt=png
图3:神经网络底层卷积核可视化(图片来源:链接11)

为了可视化高层特征,我们通过梯度上升优化目标函数的方式来直观认识高层特征所对应的直观图像。我们首先将图像初始化为0,并通过计算如图4中损失函数对图像的梯度,并不断修改图像像素就会得到图5中的可视化结果。这些图表示,要使得最终某类的分数最大,那么所对应的输入图像应该是什么样子,从图5中可以直观看出大概所属类别洗衣机、键盘、狐狸、鹅、鸵鸟以及轿车。如果我们换一种考虑特征多面性的可视化方法,就可以得到一个更加清晰的可视化图,从中可以更加清晰、直观地看出所属类别不同层次的特征,如图6所示。

640?wx_fmt=png
图4:神经网络高层特征的使用方法(图片来源:链接11)
640?wx_fmt=png

图5:高层特征可视化结果(图片来源:文献12)
640?wx_fmt=png
图6:不同层次特征可视化结果(图片来源:文献13)


2、深度学习模型到底学习了什么?

那么,深度学习模型到底都在学习什么呢?

首先输入一张正常图像,我们通过放大的方式来可视化神经网络看到的模式:首先将原始图片通过神经网络进行计算,得到当前图片的输出结果,然后用梯度上升的方式最大化该输出结果,利用如图4中所使用的方法,最后得到如图8所示的结果。

640?wx_fmt=png
图7:自然风景图片(图片来源:链接14)

从图中可以看出,神经网络对输入图像中的颜色和纹理进行了语义类别的放大,并产生对应的语义理解。例如,在山的区域,神经网络进行了建筑以及动物的解释,在天空区域有某些海洋生物的解释。但是由于这幅输入图像的这种解释所产生的特征响应并没有达到一定的程度,因此不会影响最后网络的识别,即神经网络不会把山那块区域识别成动物等。

640?wx_fmt=png
图8:DeepDream结果(图片来源:链接14)

从上述可视化的结果可以看出,神经网络是对纹理颜色等进行了语义的理解,但并没有显著对全局的形状等信息进行了理解,最近一系列工作都表明了这点,例如Geirhos, Robert等人指出,在ImageNet预训练的网络对纹理存在偏向,他们利用实验做了说明:如下图所示:

640?wx_fmt=png
图9:纹理实验(图片来源:文献2)

第一幅没有任何全局形状的信息,神经网络预测该幅图像为大象,对于第二幅图像预测为猫,对于第三幅图像,神经网络依然预测为大象,尽管人可能会识别出是一只猫,因此从这个对比实验中可以看出,神经网络更倾向于对纹理等信息进行了语义理解。

本文开头的小实验也进一步验证了这个假设:局部纹理的打乱,能够显著破坏神经网络的高层语义理解,但是全局结构的打乱并不能显著破坏神经网络的语义理解。


3、对抗样本生成

那么,一般是如何生成对抗样本呢?主要有两种方法:

1)基于梯度的方法:一般采用类似可视化的方法,只不过优化的目标不同,通过梯度更新的方式使得损失变大,并将生成纹理扰动叠加到原始图像上得到对抗样本。比较常用的方法有FGSM,BIM,基于momentum的方法,基于所有图片的梯度进行平滑的方法UAP,以及我们为了解决黑盒迁移性提出的TAP方法,这类方法速度较慢,一般通过多次迭代得到对抗样本,这类方法简单易扩展到其他任务。

2)基于神经网络的对抗样本生成方法:采用神经网络直接输出对抗样本,例如,AdvGAN、ATN等方法。这类方法的速度较快,但由于神经网络参数固定后生成的对抗样本会存在不丰富的问题。


4、如何避免“被骗”?

如Nature新闻中所说,不停的加入对抗样本训练能够获得对对抗样本的鲁棒性吗?我们给出答案是NO。对于对抗训练生成的模型,我们论文中的方法已经实验证明无法扛住低频扰动的对抗样本,文献3通过大量的实验也已证明,NIPS 2017对抗样本挑战赛中所使用的防守方法都无法防住包含低频扰动的对抗样本。

此外,底层图像去噪这种方法也是见效甚微。底层图像去噪只能防止高频的噪声的对抗样本,对于低频的噪声的对抗样本也无法完全抵抗。

通过在攻击方面的经验,团队对于对抗样本的防守方法有以下思考:

1)对特征值进行截断限制

对神经网络里使用truncated relu这类激活函数,对特征值进行截断处理,防止因为对抗样本造成的特征突变太大,影响网络最终预测结果。

2)设计模型更加关注图像整体结构,而不是纹理特征获得更强的鲁棒性

如Nature新闻中指出的,DNN和符号AI的结合,加入结构化的规则来融合整体的结构信息。

安全平台部公共平台中心基础研究组在对抗样本方面进行了深入的研究,并在计算机视觉顶级会议之一的ECCV 2018上发表对抗样本生成的论文,在NIPS 2017对抗样本挑战赛、极棒上海邀请赛等国内外大赛中均取得优异成绩。欢迎各位对对抗样本生成以及防守感兴趣的同学与我们交流。

参考文献:

1、Zhou, Wen, et al. "Transferable adversarial perturbations." Proceedings of the European Conference on Computer Vision (ECCV). 2018.

2、Geirhos, Robert, et al. "ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy and robustness." arXiv preprint arXiv:1811.12231 (2018).

3、Sharma, Yash, Gavin Weiguang Ding, and Marcus Brubaker. "On the Effectiveness of Low Frequency Perturbations." arXiv preprint arXiv:1903.00073 (2019).

4、https://www.nature.com/articles/d41586-019-03013-5

5、Krizhevsky, A., Sutskever, I., Hinton, G.E.: Imagenet classification with deep con- volutional neural networks. In: Advances in neural information processing systems. (2012) 1097–1105

6、Carlini, N., Wagner, D.: Towards evaluating the robustness of neural networks. arXiv preprint arXiv:1608.04644

7、Dong, Y., Liao, F., Pang, T., Su, H., Zhu, J., Hu, X., Li, J.: Boosting adversar- ial attacks with momentum. In: The IEEE Conference on Computer Vision and Pattern Recognition (CVPR). (June 2018)

8、Shumeet Baluja and Ian Fis- cher. Adversarial transformation networks: Learn- ing to generate adversarial examples. arXiv preprint arXiv:1703.09387, 2017

9、Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.

10、http://www.image-net.org

11、http://cs231n.stanford.edu

12、Simonyan K, Vedaldi A, Zisserman A. Deep inside convolutional networks: Visualising image classification models and saliency maps[J]. arXiv preprint arXiv:1312.6034, 2013.

13、Nguyen A, Yosinski J, Clune J. Multifaceted feature visualization: Uncovering the different types of features learned by each neuron in deep neural networks[J]. arXiv preprint arXiv:1602.03616, 2016.

14、https://ai.googleblog.com/2015/06/inceptionism-going-deeper-into-neural.html

文中链接若打不开,可下方跳转到知乎查看收藏:

640?wx_fmt=jpeg

640?wx_fmt=gif

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AI 到底是怎么「想」的? 的相关文章

  • BlockingQueue深入分析

    1 BlockingQueue 定义的常用方法如下 抛出异常特殊值阻塞超时插入add e offer e put e offer e time unit 移除remove poll take poll time unit 检查element
  • 聚合类新闻客户端产品功能点详情分析

    产品功能点 功能 今日头条 百度新闻 鲜果 ZAKER 媒体订阅 个性化内容推荐 个性化订阅 RSS 视频新闻 评论盖楼 搜索新闻 离线下载 地方新闻 一键分享 收藏 推送 天气 夜间模式 线上活动 主题设置 感兴趣 语音读文章 字体设置
  • 聚合类新闻客户端初体验

    初体验的产品 xff1a 今日头条 ios3 6 百度新闻 ios4 4 0 ZAKER ios4 4 5 鲜果 ios3 8 7 中搜搜悦 ios4 0 1 Flipboard ios2 3 9 1 Flipboard 一款国外很火的ap
  • 聚合类新闻客户端的改进

    zaker和鲜果是最早的聚合类新闻产品 xff0c 前几年发展很快 xff0c 迅速占领了市场 xff0c 但近两年发展变得缓慢 xff0c 而今日头条自发布以来才两年 xff0c 用户量就迅速超过了zaker和鲜果 xff0c 使用起来非
  • 单例模式优缺点

    主要优点 xff1a 1 提供了对唯一实例的受控访问 2 由于在系统内存中只存在一个对象 xff0c 因此可以节约系统资源 xff0c 对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能 3 允许可变数目的实例 主要缺点 xff
  • 适配器模式优缺点

    优点 xff1a 1 将目标类和适配者类解耦 2 增加了类的透明性和复用性 xff0c 将具体的实现封装在适配者类中 xff0c 对于客户端类来说是透明的 xff0c 而且提高了适配者的复用性 3 灵活性和扩展性都非常好 xff0c 符合开
  • Oracle 的 Round函数

    Round函数用法 xff1a 截取数字 格式如下 xff1a ROUND xff08 number decimals xff09 其中 xff1a number 待做截取处理的数值 decimals 指明需保留小数点后面的位数 可选项 x
  • Ubuntu安装卸载软件

    VMware 1 首先 xff0c 官网下载 vmware 虚拟机 2 转到下载目录下 给vmware升权限 sudo chmod 43 x VMware Workstation Full 15 1 0 13591040 x86 64 bu
  • eclipse报错:Failed to load the JNI shared library

    电脑自装系统以来 xff0c 好久没有写java代码了 xff0c 所以一直也没用 eclipse IDE xff0c 今天将eclipse打开 xff0c 报了个问题 xff0c Failed to load the JNI shared
  • ACM 鸡兔同笼 线性代数linear algebra

    想模仿线性代数变化的步骤写程序但总感觉失去了灵魂 java Scanner sc 61 new Scanner System in int head 61 sc nextInt int leg 61 sc nextInt int arr 6
  • 使用Example_where_Cause出现 Column 'goods_id' in where clause is ambiguous解决办法

    改写SSM项目https www bilibili com video BV18J411k7SF from 61 search amp seid 61 7715680395343362130出现 Column 39 goods id 39
  • 在CLI中打印表格----gotable使用介绍

    目录 介绍 获取gotable 在github中获取 下载源码 git clone go mod API 创建table 从结构体中创建空table 获取版本信息 获取版本列表 打印表格 给表格添加行 给表格添加多个行 给表格添加列 介绍
  • 抽象类和普通类

    包含抽象方法的类称为抽象类 xff0c 但并不意味着抽象类中只能有抽象方法 xff0c 它和普通类一样 xff0c 同样可以拥有成员变量和普通的成员方法 注意 xff0c 抽象类和普通类的主要有三点区别 xff1a 1 抽象方法必须为pub
  • 优化器(Optimizer)(SGD、Momentum、AdaGrad、RMSProp、Adam)

    文章目录 3 1 传统梯度优化的不足 BGD SGD MBGD 3 1 1 一维梯度下降3 1 2 多维梯度下降 3 2 动量 Momentum 3 3 AdaGrad算法3 4 RMSProp算法3 5 Adam算法 优化器在机器学习 深
  • ViewBinding绑定布局

    最近这段时间在学习Kotlin xff0c 突然发现谷歌已经把kotlin android extensions插件废弃 xff0c 目前推荐使用ViewBinding来进行替代 xff0c 接下来通过本文给大家分享Android使用Vie
  • element-ui更改图标icon大小

    element ui改变icon大小 在template里面加入div lt div class 61 34 change icon 34 gt lt i class 61 34 el icon switch button 34 gt lt
  • @PathVariable注解

    转自 xff1a http www cnblogs com FFFFF p 4624140 html 使用 64 PathVariable可以快速的访问 xff0c URL中的部分内容 在 64 RequestMapping的value中使
  • Ubuntu安装Google Chrome,报NSS version的错误

    使用网上的教程安装google chrome xff0c 启动时报这个错误 xff1a 4594 4630 1021 124049 156901 FATAL nss util cc 632 NSS VersionCheck 34 3 26
  • gitlab操作 in pycharm

    1 install gitlab projects plugins 如果遇到 marketplace plugins are not loaded 查看 34 ubuntu下PyCharm 34 遇到问题博文 2 version contr
  • 挂载system.img

    将多个system压缩成单个img文件 xff0c 需要文件 xff1a generate image xff08 版本里有 xff0c img生成器 xff09 所有的system img文件以及system ini文件 generate

随机推荐