本书系统介绍对抗样本的基本原理,从相关的背景知识开始,包含搭建学习对抗样本的软硬件环境、常用工具,带领读者快速上手实践。本书作者在安全领域有多年实践经验,对业界常见的方法做了系统的归纳总结,包含大量案例,深入浅出,实践性强。本书所有示例代码在GitHub上可以下载:https://github.com/duoergun0729/adversarial_examples
主要内容包括:
对抗样本相关的深度学习背景知识,如梯度、优化器、反向传递等。
如何搭建学习对抗样本的软硬件环境。
对抗样本领域的一些常见图像处理技巧。
常见的白盒攻击算法与黑盒攻击算法。
对抗样本在目标检测领域的应用。
对抗样本的常见加固算法。
常见的对抗样本工具以及如何搭建NIPS对抗样本竞赛环境。
如何站在巨人的肩膀上,快速生成自己的对抗样本,进行攻防对抗
第1章介绍了深度学习的基础知识,重点介绍了与对抗样本相关的梯度、优化器、反向传递等知识点。
第2章介绍了如何搭建学习对抗样本的软硬件环境,虽然GPU不是必需的,但是使用GPU可以更加快速地验证你的想法。
第3章概括介绍了常见的深度学习框架,从TensorFlow、Keras、PyTorch到MXNet。
第4章介绍了图像处理领域的基础知识,这部分知识对于理解对抗样本领域的一些常见图像处理技巧非常有帮助。
第5章介绍了常见的白盒攻击算法,从基础的FGSM、DeepFool到经典的JSMA和CW。
第6章介绍了常见的黑盒攻击算法。
第7章介绍了对抗样本在目标识别领域的应用。
第8章介绍了对抗样本的常见抵御算法,与对抗样本一样,抵御对抗样本的技术也非常有趣。
第9章介绍了常见的对抗样本工具以及如何搭建NIPS 2017对抗防御环境和轻量级攻防对抗环境robust-ml,通过这章读者可以了解如何站在巨人的肩膀上,快速生成自己的对抗样本,进行攻防对抗。
序一
序二
自序
前言
第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
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录
机器学习在安全领域的应用越来越广泛,特别是近几年来,深度学习在安全漏洞检测、Web应用防火墙、病毒检测等领域都有工业级的落地应用;但是黑客和黑产相应的入侵手法也发生了变化,其中一个手段就是从之前尝试绕过深度学习模型,变为攻击深度学习模型本身。兜哥在人工智能安全领域的实战和学术造诣深厚,本书从深度学习自身的脆弱性和遭受的一些攻击场景入手,讨论了如何加固深度学习模型和防范类似的攻击,对企业的安全工程师和从事安全人工智能的同仁,都有很好的指导和借鉴意义。
——施亮,顶象技术首席科学家&合伙人
人工智能已经被证明在越来越多的细分领域达到甚至超过了人类的平均水平,中国、美国、俄罗斯等许多国家也把发展人工智能提升到国家战略层面。人们在大力发展人工智能的同时,对于人工智能自身的安全问题的研究却相对滞后,这将严重制约其在重要领域的应用。兜哥的这本书很好地介绍了AI安全领域非常基础且重要的对抗样本的基本原理,帮助大家了解人工智能自身的安全问题,以便开发出更加安全的AI应用。
——胡影博士,中国电子技术研究院信息安全研究中心数据安全部主任
认识兜哥是从他的著作《企业安全建设入门》开始,在传统行业基于稳定性不断对商业软件进行深度改造时,他描述了互联网如何将开源用到了输出阶段。当传统安全遇到ABCD的时候,兜哥选择沉下来做AI工程师并分享了大数据实践下的核心对抗样本调参思路,为他的工匠精神和分享精神点赞。
——吕毅博士,中国人民银行金融信息中心信息安全部副主任
本书结合了作者在安全领域的多年实践经验,对对抗样本分析所面临的挑战进行了系统阐述,对业界常见的方式方法做了系统的归纳总结,有其独到的见解和主张。与其他机器学习系列丛书中的内容不同,本书针对的对象是人工智能本身,从对抗样本这一维度入手,深入浅出地叙述了对抗样本的基本原理、攻击方式和常见防御算法等内容。本书对信息安全和人工智能的从业者来说,都具有一流的参考价值。
——王亿韬,北美互联网金融公司Affirm信息安全主管,CISSP/CSSLP/OSCP
作者的系列书—AI安全三部曲,去年我已一一拜读,每本书都深入浅出,层层递进,读后大呼过瘾。前时应兜哥之邀为本书写荐语,欣然应允,不料今年工作繁忙拖了很久,甚为汗颜。近期终能挤出时间仔细研读。本书秉承兜哥的一贯风格,虽然锚定的是非常前沿的课题,仔细去看,依旧浅显易懂,分攻防两端,递进列举各类算法,并暖心提供基于不同AI框架的实现和评估。大巧若拙,递进的脉络在读者脑中自然形成,读后必然深受启发。我在此感谢兜哥勤奋执笔,又让我有先阅之乐。
——王新刚,北美安全公司Shape Security数据平台负责人