网站首页 > 技术文章 正文
雷锋网AI研习社按:对抗样本是一类被恶意设计来攻击机器学习模型的样本。它们与真实样本的区别几乎无法用肉眼分辨,但是却会导致模型进行错误的判断。本文就来大家普及一下对抗样本的基础知识,以及如何做好对抗样本的攻与防。
在近期雷锋网AI研习社举办的线上公开课上,来自清华大学的在读博士生廖方舟分享了他们团队在 NIPS 2017 上一个对抗样本攻防大赛中提到的两个新方法,这两个方法在大赛中分别获得了攻击方和防守方的第一名。点击可视频回放
廖方舟,清华大学化学系学士,生医系在读博士。研究方向为计算神经学,神经网络和计算机视觉。参加多次 Kaggle 竞赛,是 Data Science Bowl 2017 冠军,NIPS 2017 对抗样本比赛冠军。Kaggle 最高排名世界第10。
分享主题:
动量迭代攻击和高层引导去噪:产生和防御对抗样本的新方法
分享内容:
大家好,我是廖方舟,今天分享的主题是对抗样本的攻和防。对抗样本的存在会使得深度学习在安全敏感性领域的应用收到威胁,如何对其进行有效的防御是很重要的研究课题。 我将从以下几方面做分享。
什么是对抗样本
传统的攻击方法
传统的防守方法
动量迭代攻击
去噪方法
高层引导去噪方法
什么是对抗样本
对抗样本的性质不仅仅是图片所拥有的性质,也不仅仅是深度学习神经网络独有的性质。因此它是把机器学习模型应用到一些安全敏感性领域里的一个障碍。
当时,机器学习大牛Good fellow找了些船、车图片,他想逐渐加入一些特征,让模型对这些船,车的识别逐渐变成飞机,到最后发现人眼观测到的图片依然是船、车,但模型已经把船、车当做飞机。
我们之前的工作发现样本不仅仅是对最后的预测产生误导,对特征的提取也产生误导。这是一个可视化的过程。
当把一个正常样本放到神经网络后,神经元会专门观察鸟的头部,但我们给它一些对抗样本,这些对抗样本也都全部设计为鸟,就发现神经网络提取出来的特征都是乱七八糟,和鸟头没有太大的关系。也就是说欺骗不是从最后才发生的,欺骗在从模型的中间就开始产生的。
下图是最简单的攻击方法——Fast Gradient Sign Method
除了FGSM单步攻击的方法,它的一个延伸就是多步攻击,即重复使用FGSM。由于有一个最大值的限制,所以单步的步长也会相应缩小。比如这里有一个攻击三步迭代,每一步迭代的攻击步长也会相应缩小。
产生图片所用的CNN和需要攻击的CNN是同一个,我们称为白盒攻击。与之相反的攻击类型称为黑盒攻击,也就是对需要攻击的模型一无所知。
以上所说的都是Non Targeted, 只要最后得到的目标预测不正确就可以了。另一种攻击Targeted FGSM,目标是不仅要分的不正确,而且还要分到指定的类型。
一个提高黑盒攻击成功率行之有效的办法,是攻击一个集合。
而目前为止一个行之有效的防守策略就是对抗训练。在模型训练过程中,训练样本不仅仅是干净样本,而是干净样本加上对抗样本。随着模型训练越来越多,一方面干净图片的准确率会增加,另一方面,对对抗样本的鲁棒性也会增加。
下面简单介绍一下NIPS 2017 上的这个比赛规则
比赛结构
两个限制条件:容忍范围不能太大;不能花太长时间产生一个对抗样本,或者防守一个对抗样本
FGSM算法结果
图中绿色模型为攻击范围,最后两栏灰色是黑盒模型,随着迭代数量的增加, 攻击成功率反而上升。这就给攻击造成了难题。
我们解决的办法就是在迭代与迭代中间加入动量
加入动量之后,白盒攻击变强了,而且对黑盒模型攻击的成功率也大大提升了。
总结:
以前方法(iterative attack)的弱点是在迭代数量增多的情况下,它们的迁移性,也就是黑盒攻击性会减弱,在我们提出加入动量之后,这个问题得到了解决,可以很放心使用非常多的迭代数量进行攻击。
在NIPS 2017 比赛上得到最高的分数
需要提到的一点,上面提到的都是Non-targeted , 在Targeted攻击里面,这个策略有所不同。在Targeted攻击里面,基本没有观察到迁移性,也就是黑盒成功率一直很差,即便是加入动量,它的迁移程度也非常差。
下面讲一下防守
首先想到的就是去噪声,我们尝试用了一些传统的去噪方法(median filter 、BM3D)效果都不好。之后我们尝试使用了两个不同架构的神经网络去噪。一个是 Denoising Autoencoder,另一个是Denoising Additive U-Net。
我们的训练样本是从ImageNet数据集中取了三万张图片 ,使用了七个不同的攻击方法对三万张图片攻击,得到21万张对抗样本图片以及三万张对应的原始图片。除了训练集,我们还做了两个测试集。一个白盒攻击测试集和一个黑盒攻击测试集。
训练效果
我们发现经过去噪以后,正确率反而有点下降。我们分析了一下原因,输入一个干净图片,再输入一个对抗图片,然后计算每一层网络在这两张图片上表示的差距,我们发现这个差距是逐层放大的。
图中蓝线发现放大的幅度非常大,图中红线是去噪过后的图片,仍然在放大,导致最后还是被分错。
为了解决这个问题,我们提出了经过改良后的网络 HGD
HGD 的几个变种
和之前的方法相比,改良后的网络 HGD防守准确率得到很大的提升
HGD 有很好的迁移性
最后比赛中,我们集成了四个不同的模型,以及训练了他们各自的去噪, ,最终把它们合并起来提交了上去。
HGD网络总结
优点:
效果显著比其他队伍的模型好。
比前人的方法使用更少的训练图片和更少的训练时间。
可迁移。
缺点:
还依赖于微小变化的可测量
问题并没有完全解决
仍然会受到白盒攻击,除非假设对手不知道HGD的存在
雷锋网AI慕课学院提供了本次分享的视频回放:http://www.mooc.ai/open/course/383
猜你喜欢
- 2024-10-12 Item2Vec负采样优化基础上专题地图产品个性化推荐方法探究
- 2024-10-12 LibRec 每周算法:AutoRec (WWW'15)
- 2024-10-12 |期刊分享|深度学习|语音增强生成对抗网络
- 2024-10-12 NTT DoCoMo新应用提升驾驶员与乘客匹配率
- 2024-10-12 这725个机器学习术语表,太全了 3分钟了解机器学习
- 2024-10-12 深度学习中高斯噪声:为什么以及如何使用
- 2024-10-12 NeurIPS 2021 | CyGen:基于概率论理论的生成式建模新模式
- 2024-10-12 数据挖掘干货总结(十)-- 神经网络和深度学习
- 2024-10-12 DevZone | NVIDIA OptiX光线追踪引擎
- 2024-10-12 一文看懂AutoEncoder模型演进图谱
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)