《AI安全之对抗样本入门》—2.5 TensorFlow
1061
2022-05-29
智能系统与技术丛书
AI安全之对抗样本入门
兜哥 编著
PRAISE
对本书的赞誉
机器学习在安全领域的应用越来越广泛,特别是近几年来,深度学习在安全漏洞检测、Web应用防火墙、病毒检测等领域都有工业级的落地应用;但是黑客和黑产相应的入侵手法也发生了变化,其中一个手段就是从之前尝试绕过深度学习模型,变为攻击深度学习模型本身。兜哥在人工智能安全领域的实战和学术造诣深厚,本书从深度学习自身的脆弱性和遭受的一些攻击场景入手,讨论了如何加固深度学习模型和防范类似的攻击,对企业的安全工程师和从事安全人工智能的同仁,都有很好的指导和借鉴意义。
—施亮,顶象技术首席科学家&合伙人
人工智能已经被证明在越来越多的细分领域达到甚至超过了人类的平均水平,中国、美国、俄罗斯等许多国家也把发展人工智能提升到国家战略层面。人们在大力发展人工智能的同时,对于人工智能自身的安全问题的研究却相对滞后,这将严重制约其在重要领域的应用。兜哥的这本书很好地介绍了AI安全领域非常基础且重要的对抗样本的基本原理,帮助大家了解人工智能自身的安全问题,以便开发出更加安全的AI应用。
—胡影博士,中国电子技术研究院信息安全研究中心数据安全部主任
认识兜哥是从他的著作《企业安全建设入门》开始,在传统行业基于稳定性不断对商业软件进行深度改造时,他描述了互联网如何将开源用到了输出阶段。当传统安全遇到ABCD的时候,兜哥选择沉下来做AI工程师并分享了大数据实践下的核心对抗样本调参思路,为他的工匠精神和分享精神。
—吕毅博士,中国人民银行金融***信息安全部副主任
—王亿韬,北美互联网金融公司Affirm信息安全主管,CISSP/CSSLP/OSCP
—王新刚,北美安全公司Shape Security数据平台负责人
PREFACE
序 一
此亦笃信之年,此亦大惑之年。此亦多丽之阳春,此亦绝念之穷冬。人或万事俱备,人或一事无成。我辈其青云直上,我辈其黄泉永坠。
—《双城记》,狄更斯著,魏易译
如今是一个人工智能兴起的年代,也是一个黑产猖獗的年代。是一个机器学习算法百花齐放的年代,也是一个隐私泄露、恶意代码传播、网络攻击肆虐的年代。AlphaGo碾压柯洁之后,不少人担心AI会抢了人类的工作,然而信息安全领域专业人才严重匮乏,极其需要AI来补充专业缺口。
兜哥的这本书展示了丰富多彩的机器学习算法在错综复杂的Web安全中的应用,是一本非常及时的人工智能在信息安全领域的入门读物。没有最好的算法,只有最合适的算法。虽然这几年深度学习呼声很高,但各种机器学习算法依然在形形***的应用场景中有着各自独特的价值,熟悉并用好这些算法在安全领域的实战中会起到重要的作用。
—Lenx,百度首席安全科学家,安全实验室负责人
PREFACE
序 二
兜哥写的“AI+安全”一系列书,每本我都让朋友从国内带来硅谷拜读。 我和 Lenx等大佬混迹硅谷安全圈,一致很钦佩百度安全实验室对于“AI+安全”领域的贡献。
执笔为这本书写序的这天(2019年1月25日)恰逢人类AI 历史又一伟大时刻:AlphaStar 战胜了StarCraft2人类高手玩家MaNa。我对这次战役的关注,甚至超过了AlphaGo。StarCraft即时战略游戏比围棋这种规则明确、棋盘信息透明的游戏,更加接近人类生存的环境:不完备的环境信息。安全领域一直是不完备的环境信息,在我看来,这意味着道高一尺魔高一丈强对抗的网络安全行业,也即将迎来一波新的方法论。
我从2012年起在美国硅谷的安全行业从事“AI+大数据”在安全和风控的企业级应用,有幸在EMC/ RSA、FireEye / Mandiant等公司,与世界级的白帽一起成功地使用AI技术防御过若干个APT黑客军团(比如2017年在FireEye开发了NLP算法抵抗了越南APT32 )。最近刚创办了AnChain.ai公司,志在将AI用于区块链安全,并在历史上首次检测到了 BAPT(Blockchain APT)黑客军团。
我也有幸直接参与了几次和黑客正面交锋的案例,比如2018年的 BAPT-FOMO3D 黑客,他们攻击FOMO3D 游戏DApp,居然启用了上万个攻击合约,短时间内盗走了两百万美元,而项目方束手无策。
“战略上藐视敌人,战术上重视敌人。”作为安全行业的多年从业者,我坚信我们可以利用技术的力量形成战略的优势。
对于广大安全产品研发人员, 我建议在“战术上重视敌人”,学习AI技术将如虎添翼。增强学习、对抗学习、深度学习等领域近年来涌现了许多新算法,并且在ASIC、GPU这些强大的芯片基础上,实现了高效的人工智能落地应用,比如AlphaStar、AlphaGO和硅谷满地跑的无人驾驶车。
我建议大家仔细研读兜哥的这本新书,因为黑客也在学习进化。
—Victor Fang博士,AnChain.ai创始人和CEO
PREFACE
自 序
这不是我第一次写序了,但是真拿起笔还是觉得挺难写的。记得我写第一本书时,女儿还在蹒跚学步,拿着我的书时还分不清书的前后正反,但是现在她已经在幼儿园学会做月饼了。据说现在人工智能的知识已经写入高中教材了,这方面我倒是对闺女比较有信心,至少在人工智能方面她启蒙得比较早。
机缘巧合,我负责了一个AI模型安全的开源项目AdvBox。虽然我之前接触过AI安全,但是主要集中在AI赋能传统安全的领域,简单讲就是我之前写的《Web安全之机器学习入门》这类书里介绍的如何将AI技术应用到传统安全领域。相对传统安全领域,AI模型的安全是一个陌生但更加有趣的领域。从简单的把猫变成狗,到稍微复杂点的用奇怪的“鸟叫虫鸣”就可以唤醒智能音箱、点外卖,再到更加酷炫的换脸和欺骗无人车,这都是对抗样本的典型应用。开发和运营AdvBox是我工作的一部分,也是我生活的一部分,我写了个小脚本每天爬GitHub上的排名并发送邮件给我,每天早上我都会刷刷邮箱看一下最新排名。AdvBox的关注数也从零一直慢慢爬到业内关注的一个排名。为了更好地运营AdvBox,我组建了QQ群和微信群,在回答用户问题的过程中,我发现其实很多问题非常基础:从TensorFlow/PyTorch的使用到深度学习的基础知识,从对抗样本的基本原理到图像处理中的一些小技巧。于是我想到了可以写一本书来介绍这方面的基础知识。
很多人在网上抱怨,2018年是比较艰难的一年,我也有同样的感受。工作繁忙了许多,而且换了新环境,许多东西需要再去适应。这本书从构思到基本写完,花了将近一年的时间,几乎占据了我全部的休息时间,确实挺不容易。其实我也反思过几次,为啥不去做些轻车熟路的事,非要去折腾些BIG4的论文里介绍的东西,非要在一个新成果刚发布就可能要过时的赛道去追逐。如果非要找个理由的话,我个人的感受是:容易的事轮不到我,早已是千军万马过独木桥了;困难的事坚持做,没准就走下去了。
本书的定位是学习对抗样本的入门书籍,因此也简单介绍了相关领域的背景知识便于读者理解,使用的数据集和场景是比较典型的图像分类、目标识别等领域。第1章介绍了深度学习的基础知识,重点介绍了与对抗样本相关的梯度、优化器、反向传递等知识点。第2章介绍了如何搭建学习对抗样本的软硬件环境,虽然GPU不是必需的,但是使用GPU可以更加快速地验证你的想法。第3章概括介绍了常见的深度学习框架,从TensorFlow、Keras、PyTorch到MXNet。第4章介绍了图像处理领域的基础知识,这部分知识对于理解对抗样本领域的一些常见图像处理技巧非常有帮助。第5章介绍了常见的白盒攻击算法,从最基础的FGSM、DeepFool到经典的JSMA和CW。第6章介绍了常见的黑盒攻击算法。第7章介绍了对抗样本在目标识别领域的应用。第8章介绍了对抗样本的常见抵御算法,与对抗样本一样,抵御对抗样本的技术也非常有趣。第9章介绍了常见的对抗样本工具以及如何搭建NIPS 2017对抗防御环境和轻量级攻防对抗环境robust-ml,通过这章读者可以了解如何站在巨人的肩膀上,快速生成自己的对抗样本,进行攻防对抗。
本书适合人工智能领域的从业人员、大专院校计算机相关专业学生,而不仅仅是信息安全领域的学生和从业人员。因为对抗样本的知识对于人工智能领域的从业人员非常重要,伴随着人工智能的遍地开花和逐步落地,从智能驾驶到人脸支付,从智能家居到智能安防,人工智能从一个学术名词变成了真正影响大家生活的技术,直接关系到大家的人身安全、财产安全还有个人隐私。对抗样本带来的问题,也是传统安全技术几乎难以解决的。了解对抗样本的基本原理,对于人工智能领域的从业人员开发出更加安全的应用是非常有帮助的。
我要感谢家人对我的支持,本来工作就很忙,没有太多时间处理家务,写书以后更是侵占了我大量的休息时间,我的妻子无条件地承担起了全部家务,尤其是照料孩子。我还要感谢我的女儿,写书这段时间几乎没有时间陪她玩,我也想用这本书作为她的生日礼物。我还要感谢编辑吴怡对我的支持和鼓励,让我可以坚持把这本书写完。Lenx对于我写这本书帮助很大,他对AI安全的深刻理解,积极但又务实,让我在研究的道路上既信心满满又不至于过于狂热而迷失道路。还要感谢AdvBox团队以及在GitHub上给AdvBox提交过代码的同学们。
最后还要感谢各位业内好友对我的支持,以下排名不分先后:
马杰@百度安全、Lenx@百度安全、黄正@百度安全、包沉浮@百度安全、海棠姐@百度安全、Edward@百度安全、贾云瀚@百度安全、云鹏@百度无人车、施亮@顶象、Victor Fang@AnChain、谢忱@Freebuf、大路@天际友盟、郭伟@数字观星、周涛@阿里、姚志武@借贷宝、刘静@安天、高磊@阿里、尹毅@sobug、吴圣@58、康宇@新浪、幻泉@i春秋、田老师@阳光保险、ReadOnly@易宝支付、樊春亮@泰康、聂君@360、林伟@360、白教主@360、李滨@腾讯、张维垚@饿了吗、阿杜@优信、高磊@安巽科技、王延辉@平安、吕毅@人行、雷诚@武汉大学、鸟哥@阿里云、咸鱼@京东、梁知音@京东、小马哥@京东、张超@清华大学、徐恪@清华大学、李勇@清华大学、李琦@清华大学。我平时在FreeBuf专栏以及i春秋分享企业安全建设以及人工智能相关经验与最新话题,同时运营我的微信公众号“兜哥带你学安全”,欢迎大家关注并在线交流。
计算机是一门非常强调理论联系实践的学科,我经常在和读者交流时说:安全会议的PPT就像电影,浓缩、精彩、有趣;博客、公众号上的文章就像电视剧,有细节、有思路;技术书籍更像原著,系统、详细、原汁原味。但是就像看再多武侠小说也不一定真能耍出一招半式一样,真正掌握一门武艺还是要勤于练习。因此我在GitHub上也把书里提到的示例代码开源出来,读者可以根据情况一边修改一边验证自己的理解,对应的地址为:https://github.com/duoergun0729/adversarial_examples。
PREFACE
前 言
生活中的深度学习
深度学习自2006年产生之后就受到科研机构、工业界的高度关注。最初,深度学习主要用于图像和语音领域。从2011年开始,谷歌研究院和微软研究院的研究人员先后将深度学习应用到语音识别,使识别错误率下降了20%~30%。2012年6月,谷歌首席架构师Jeff Dean和斯坦福大学教授Andrew Ng主导著名的Google Brain项目,采用16万个CPU来构建一个深层神经网络,并将其应用于图像和语音的识别,最终大获成功。
2016年3月,AlphaGo与围棋世界冠军、职业九段棋手李世石进行围棋人机大战,以4比1的总比分获胜;2016年年末2017年年初,该程序在中国棋类网站上以“大师”(Master)为注册账号与中日韩数十位围棋高手进行快棋对决,连续60局无一败绩;2017年5月,在中国乌镇围棋峰会上,它与排名世界第一的围棋世界冠军柯洁对战,以3比0的总比分获胜。AlphaGo的成功更是把深度学习的热潮推向了全球,成为男女老少茶余饭后关注的热点话题。
现在,深度学习已经遍地开花,在方方面面影响和改变着人们的生活,比较典型的应用包括智能家居、智能驾驶、人脸支付和智能安防。
深度学习的脆弱性
深度学习作为一个非常复杂的软件系统,同样会面对各种黑客攻击。黑客通过攻击深度学习系统,也可以威胁到财产安全、个人隐私、交通安全和公共安全(见图0-1)。针对深度学习系统的攻击,通常包括以下几种。
图0-1 深度学习的脆弱性
1. 偷取模型
各大公司通过高薪聘请AI专家设计模型,花费大量资金、人力搜集训练数据,又花费大量资金购买GPU设备用于训练模型,最后得到深度学习模型。深度学习模型的最终形式也就是从几百KB到几百MB不等的一个模型文件。深度学习模型对外提供服务的形式也主要分为云模式的API,或者私有部署到用户的移动设备或数据中心的服务器上。针对云模式的API,黑客通过一定的遍历算法,在调用云模式的API后,可以在本地还原出一个与原始模型功能相同或者类似的模型;针对私有部署到用户的移动设备或数据中心的服务器上,黑客通过逆向等传统安全技术,可以把模型文件直接还原出来供其使用。偷取深度学习模型的过程如图0-2所示。
2. 数据投毒
针对深度学习的数据投毒主要是指向深度学习的训练样本中加入异常数据,导致模型在遇到某些条件时会产生分类错误。如图0-3所示。早期的数据投毒都存在于实验室环境,假设可以通过在离线训练数据中添加精心构造的异常数据进行攻击。这一攻击方式需要接触到模型的训练数据,而在实际环境中,绝大多数情况都是公司内部在离线数据中训练好模型再打包对外发布服务,攻击者难以接触到训练数据,攻击难以发生。于是攻击者把重点放到了在线学习的场景,即模型是利用在线的数据,几乎是实时学习的,比较典型的场景就是推荐系统。推荐系统会结合用户的历史数据以及实时的访问数据,共同进行学习和判断,最终得到推荐结果。黑客正是利用这一可以接触到训练数据的机会,通过一定的算法策略,发起访问行为,最终导致推荐系统产生错误。
3. 对抗样本
对抗样本由Christian Szegedy等人提出,是指在数据集中通过故意添加细微的干扰所形成的输入样本,这种样本导致模型以高置信度给出一个错误的输出。在正则化背景下,通过对抗训练减少原有独立同分布的测试集的错误率,在对抗扰动的训练集样本上训练网络。
简单地讲,对抗样本通过在原始数据上叠加精心构造的人类难以察觉的扰动,使深度学习模型产生分类错误。以图像分类模型为例,如图0-4所示,通过在原始图像上叠加扰动,对于肉眼来说,扰动非常细微,图像看起来还是熊猫,但是图像分类模型却会以很大的概率识别为长臂猿。
图0-4 针对图像分类模型的对抗样本
下面以一个图像分类模型为例,更加直接地解释对抗样本的基本原理。通过在训练样本上学习,学到一个分割平面,在分割平面一侧的为绿球,在分割平面另外一侧的为红球。生成攻击样本的过程,就是在数据上添加一定的扰动,让其跨越分割平面,从而把分割平面一侧的红球识别为绿球,如图0-5所示。
图0-5 对抗样本的基本原理
对抗样本按照攻击后的效果分为Targeted Attack(定性攻击)和Non-Targeted Attack(无定向攻击)。区别在于Targeted Attack在攻击前会设置攻击的目标,比如把红球识别为绿球,或者把面包识别为熊猫,也就是说在攻击后的效果是确定的;Non-Targeted Attack在攻击前不用设置攻击目标,只要攻击后,识别的结果发生改变即可,可能会把面包识别为熊猫,也可能识别为小猪佩琪或者小猪乔治,如图0-6所示。
图0-6 Targeted Attack 和Non-Targeted Attack
对抗样本按照攻击成本分为White-Box Attack(白盒攻击)、Black-Box Attack(黑盒攻击)和Real-World Attack/Physical Attack(真实世界/物理攻击)。
White-Box Attack(见图0-7)是其中攻击难度最低的一种,前提是能够完整获取模型的结构,包括模型的组成以及隔层的参数情况,并且可以完整控制模型的输入,对输入的控制粒度甚至可以到比特级别。由于White-Box Attack前置条件过于苛刻,通常作为实验室的学术研究或者作为发起Black-Box Attack和Real-World Attack/Physical Attack的基础。
图0-7 White-Box Attack
Black-Box Attack相对White-Box Attack攻击难度具有很大提高,Black-Box Attack完全把被攻击模型当成一个黑盒,对模型的结构没有了解,只能控制输入,通过比对输入和输出的反馈来进行下一步攻击,见图0-8。
图0-8 Black-Box Attack
Real-World Attack/Physical Attack(见图0-9)是这三种攻击中难度最大的,除了不了解模型的结构,甚至对于输入的控制也很弱。以攻击图像分类模型为例(见图0-10),生成的攻击样本要通过相机或者摄像头采集,然后经过一系列未知的预处理后再输入模型进行预测。攻击中对抗样本会发生缩放、扭转、光照变化、旋转等。
图0-9 Real-World Attack/Physical Attack
图0-10 图像分类模型的真实世界/物理攻击
常见检测和加固方法
1. 深度学习脆弱性检测
检测深度学习脆弱性的过程,其实就是发起攻击的过程,常见的白盒攻击算法列举如下。
ILCM(最相似迭代算法)
FGSM(快速梯度算法)
BIM(基础迭代算法)
JSMA(显著图攻击算法)
DeepFool(DeepFool算法)
C/W(C/W算法)
常见的黑盒攻击方法列举如下。
Single Pixel Attack(单像素攻击)
Local Search Attack(本地搜索攻击)
2. 深度学习脆弱性加固
针对深度学习脆弱性进行加固的常见方法主要包括以下几种,我们将重点介绍Adversarial training。
Feature squeezing(特征凝结)
Spatial smoothing(空间平滑)
Label smoothing(标签平滑)
Adversarial training(对抗训练)
Virtual adversarial training (虚拟对抗训练)
Gaussian data augmentation (高斯数据增强)
Adversarial training如图0-11所示,其基本思路是,常见的对抗样本生成算法是已知的,训练数据集也是已知的,那么可以通过常见的一些对抗样本工具箱,比如AdvBox 或者FoolBox,在训练数据的基础上生成对应的对抗样本,然后让深度学习模型重新学习,让它认识这些常见的对抗样本,这样新生成的深度学习模型就具有了一定的识别对抗样本的能力。
与Adversarial training思路类似的是Gaussian data augmentation。Gaussian data augmentation的基本原理是,对抗样本是在原始数据上叠加一定的扰动,这些扰动非常接近随机的一些噪声。Adversarial training虽然简单易于实现,但是技术上难以穷尽所有的攻击样本。Gaussian data augmentation直接在原始数据上叠加高斯噪声,如图0-12所示,k为高斯噪声的系数,系数越大,高斯噪声越强,其他参数分别表示高斯噪声的均值和标准差。Gaussian data augmentation把训练数据叠加了噪声后,重新输入给深度学习模型学习,通过增加训练轮数、调整参数甚至增加模型层数,在不降低原有模型准确度的情况下,让新生成的深度学习模型具有了一定的识别对抗样本的能力。
图0-11 Adversarial training原理图
图0-12 图像增加高斯噪声
对抗样本领域的最新进展
对抗样本是AI安全研究的一个热点,新的攻击算法和加固方法层出不穷,而且攻击场景也从实验室中的简单图像分类,迅速扩展到智能音箱、无人驾驶等领域。百度安全实验室的最新研究报告《感知欺骗:基于深度神经网络(DNN)下物理性对抗攻击与策略》成功入选BlackHat Europe 2018。报告展现了让物体在深度学习系统的“眼”中凭空消失,在AI时代重现了大卫·科波菲尔的经典魔法。针对深度学习模型漏洞进行物理攻击可行性研究有着广泛的应用前景,在自动驾驶领域、智能安防领域、物品自动鉴定领域都有重要的实际意义。
如图0-13所示,在时间t0的时候,当在车后显示器中显示正常logo时,YOLOv3可以正确识别目标车辆,而在t1时,切换到扰动后的图片时,它可以立刻让目标车辆在YOLOv3面前变得无法辨识;在t2时,如图0-14所示切换回正常的图片,YOLOv3重新可以识别目标车辆。这是首次针对车辆的物理攻击的成功展示,与以往的学术论文相比,在攻击目标的大小、分辨率的高低以及物理环境的复杂性等方面,在影响和难度上都是一个巨大提升。
图0-13 t0时可以正常识别出车辆,t1时无法识别出车辆
图0-14 t2时可以正常识别出车辆
Kan Yuan和Di Tang等人在论文《Stealthy Porn: Understanding Real-World Adversarial Images for Illicit Online Promotion》中介绍了黑产如何通过单色化、加噪声、增加文字、仿射变化、滤波模糊化和遮盖等方式让违规图片绕过目前主流的图片内容检测服务。这也标志着对抗样本技术已经从实验室环境真正进入了网络对抗实战。
国内安全人员在对抗样本领域的研究成果得到了国际的普遍认可。朱军等人指导的清华大学团队曾在NIPS 2017对抗样本攻防竞赛中夺冠,纪守领老师所在的 NESA Lab 提出了一种新型的对抗性验证码,能防范来自打码平台等黑产的破解。
Contents
目 录
对本书的赞誉
序一
序二
自序
前言
第1章 深度学习基础知识 1
1.1 深度学习的基本过程及相关概念 1
1.1.1 数据预处理 1
1.1.2 定义网络结构 2
1.1.3 定义损失函数 6
1.1.4 反向传递与优化器 7
1.1.5 范数 12
1.2 传统的图像分类算法 13
1.3 基于CNN的图像分类 14
1.3.1 局部连接 14
1.3.2 参数共享 15
1.3.3 池化 17
1.3.4 典型的CNN结构 18
1.3.5 AlexNet的结构 19
1.3.6 VGG的结构 19
1.3.7 ResNet50 20
1.3.8 InceptionV3 20
1.3.9 可视化CNN 20
1.4 常见性能衡量指标 30
1.4.1 测试数据 30
1.4.2 混淆矩阵 31
1.4.3 准确率与召回率 31
1.4.4 准确度与F1-Score 32
1.4.5 ROC与AUC 33
1.5 集成学习 34
1.5.1 Boosting算法 35
1.5.2 Bagging算法 37
1.6 本章小结 39
第2章 打造对抗样本工具箱 40
2.1 Anaconda 41
2.2 APT更新源 45
2.3 Python更新源 45
2.4 Jupyter notebook 45
2.5 TensorFlow 49
2.6 Keras 50
2.7 PyTorch 51
2.8 PaddlePaddle 52
2.9 AdvBox 52
2.10 GPU服务器 52
2.11 本章小结 55
第3章 常见深度学习平台简介 56
3.1 张量与计算图 56
3.2 TensorFlow 58
3.3 Keras 62
3.4 PyTorch 64
3.5 MXNet 67
3.6 使用预训练模型 70
3.7 本章小结 76
第4章 图像处理基础知识 77
4.1 图像格式 77
4.1.1 通道数与像素深度 77
4.1.2 BMP格式 80
4.1.3 JPEG格式 81
4.1.4 GIF格式 81
4.1.5 PNG格式 81
4.2 图像转换 81
4.2.1 仿射变换 81
4.2.2 图像缩放 83
4.2.3 图像旋转 85
4.2.4 图像平移 85
4.2.5 图像剪切 86
4.2.6 图像翻转 87
4.2.7 亮度与对比度 88
4.3 图像去噪 89
4.3.1 高斯噪声和椒盐噪声 90
4.3.2 中值滤波 91
4.3.3 均值滤波 93
4.3.4 高斯滤波 93
4.3.5 高斯双边滤波 94
4.4 本章小结 96
第5章 白盒攻击算法 97
5.1 对抗样本的基本原理 97
5.2 基于优化的对抗样本生成算法 100
5.2.1 使用PyTorch生成对抗样本 102
5.2.5 使用TensorFlow生成对抗样本 106
5.3 基于梯度的对抗样本生成算法 109
5.4 FGM/FGSM算法 110
5.4.1 FGM/FGSM基本原理 110
5.4.2 使用PyTorch实现FGM 111
5.4.3 使用TensorFlow实现FGM 112
5.5 DeepFool算法 115
5.5.1 DeepFool基本原理 115
5.5.2 使用PyTorch实现DeepFool 117
5.5.3 使用TensorFlow实现DeepFool 122
5.6 JSMA算法 124
5.6.1 JSMA基本原理 124
5.6.2 使用PyTorch实现JSMA 126
5.6.3 使用TensorFlow实现JSMA 129
5.7 CW算法 132
5.7.1 CW基本原理 132
5.7.2 使用TensorFlow实现CW 135
5.7.3 使用PyTorch实现CW 140
5.8 本章小结 142
第6章 黑盒攻击算法 143
6.1 单像素攻击算法 143
6.2 单像素攻击MNIST识别模型 146
6.3 本地搜索攻击算法 148
6.4 本地搜索攻击ResNet模型 151
6.5 迁移学习攻击算法 153
6.6 通用对抗样本 157
6.7 针对MNIST生成通用对抗样本 160
6.8 本章小结 163
第7章 对抗样本在目标检测领域的应用 164
7.1 目标检测的概念 164
7.2 目标检测在智能驾驶领域的应用 166
7.2.1 车道偏离预警 166
7.2.2 前向防碰撞预警 167
7.2.3 交通标志识别 167
7.2.4 行人防碰撞预警系统 167
7.2.5 驾驶员疲劳监测预警 168
7.2.6 自动泊车 169
7.3 目标检测在智能安防领域的应用 169
7.3.1 人脸检索 169
7.3.2 行为识别 170
7.4 边缘检测算法 171
7.4.1 Soble边缘检测 171
7.4.2 拉普拉斯边缘检测 174
7.4.3 Canny边缘检测 175
7.5 直线检测算法 176
7.6 圆形检测算法 181
7.7 RCNN系列算法 183
7.7.1 RCNN 183
7.7.2 Fast RCNN 185
7.7.3 Faster RCNN 185
7.7.4 TensorFlow目标检测库 187
7.7.5 Faster RCNN使用示例 191
7.8 YOLO算法 196
7.8.1 YOLO概述 196
7.8.2 YOLO使用示例 199
7.9 SSD算法 201
7.9.1 SSD概述 201
7.9.2 SSD使用示例 201
7.10 白盒攻击Faster RCNN 203
7.11 物理攻击YOLO概述 210
7.12 本章小结 213
第8章 对抗样本常见防御算法 214
8.1 对抗样本的鲁棒性 214
8.1.1 图像旋转对鲁棒性的影响 214
8.1.2 滤波器对鲁棒性的影响 220
8.1.3 对比度和亮度对鲁棒性的影响 225
8.1.4 噪声对鲁棒性的影响 230
8.2 抵御对抗样本攻击的常见方法 237
8.2.1 图像预处理 237
8.2.2 对抗训练 238
8.2.3 高斯数据增强 238
8.2.4 自编码器去噪 240
8.2.5 ICLR 2018提出的对抗样本抵御方法 245
8.3 本章小结 247
第9章 常见对抗样本工具箱简介 248
9.1 对抗样本常见衡量指标 248
9.1.1 l0范数 248
9.1.2 l2范数 249
9.1.3 linf范数 250
9.2 AdvBox 250
9.2.1 AdvBox简介 250
9.2.2 在AdvBox中使用FGSM算法 250
9.2.3 在AdvBox中使用DeepFool算法 252
9.2.4 在AdvBox中使用黑盒攻击算法 255
9.3 ART 257
9.3.1 ART简介 257
9.3.2 在ART中使用FGSM算法 258
9.3.3 ART下使用CW算法 260
9.4 FoolBox 262
9.4.1 FoolBox简介 262
9.4.2 在FoolBox中使用JSMA算法 263
9.4.3 在FoolBox中使用CW算法 264
9.5 Cleverhans 266
9.5.1 Cleverhans简介 266
9.5.2 在Cleverhans中使用FGSM算法 267
9.5.3 在Cleverhans中进行对抗训练 269
9.6 NIPS对抗攻击防御环境搭建 270
9.6.1 NIPS对抗攻击防御赛简介 270
9.6.2 环境搭建方法 270
9.6.3 运行测试代码 271
9.7 轻量级攻防对抗环境robust-ml 275
9.7.1 robust-ml简介 275
9.7.2 运行测试代码 276
9.8 本章小结 279
AI 安全
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。