深入深度神经网络,揭开对抗性输入如何欺骗深度神经网络。
探讨如何生成对抗性输入去攻击深度神经网络。
探索真实对抗性攻击场景和为对抗性威胁建模。
评估神经网络的健壮性;学会增强人工智能系统应对对抗性数据的能力。
考察未来几年可用哪些方式让人工智能更擅长模拟人的感知。
Katy Warr专攻人工智能和数据分析。她此前有多年企业软件架构设计和开发经验。她拥有爱丁堡大学人工智能和计算机科学学位
“本书深刻揭露了人工智能系统存在的安全问题,深入分析了现有解决方案。作者是顶级数据科学家,且有着丰富的从业经验。本书是所有人工智能从业者的必读书。”
——Mark Briers
Alan Turing Institute项目主任及人工智能和网络安全教授
“增强你开发的神经网络,需要你佩戴对抗性眼镜。来阅读这本书吧!”
——Pin-Yu Chen
IBM Research AI团队的研究员
目录前言 1第1 章 机器学习入门 7本书使用的库 7用pip 安装库 10用conda 安装库12第2 章 机器学习流程概览 15第3 章 数据分类工作流:泰坦尼克号数据集 17项目布局建议 17导入 18提出问题 19数据术语 19获取数据 21清洗数据 22创建特征 29数据采样 31数据插值 31规范数据 32重构 33基准模型 35不同算法族 35模型堆叠 37建模 38评估模型 38优化模型 40混淆矩阵 41ROC 曲线 42学习曲线 44部署模型 45第4 章 数据缺失 47检查数据缺失情况 48删除缺数据的行或列 52插值 53添加标识列 54第5 章 清洗数据 55处理列名 55替换缺失值 56第6 章 探索数据 59数据大小 59汇总统计 60直方图 61散点图 62Joint Plot 图 63Pair Grid 图 66箱形图和小提琴图 68比较两个序数型特征 69相关性 71RadViz 图 76平行坐标图 78第7 章 预处理数据 81标准化 81调整取值范围 83虚拟变量 84标签编码 85频数编码 86从字符串抽取类别型数据 87类别型数据的其他编码方法 89日期特征的处理方法 91添加col_na 特征 92特征工程 93第8 章 特征选择 95共线列 95套索回归 99递归特征消除 100互信息 102主成分分析 103特征重要性 103第9 章 类别不平衡 105采用不同度量标准 105树模型和集成方法 105惩罚模型 106对小众类别上采样 106生成小众数据 107对大众类别下采样 107先上采样,再下采样 109第10 章 分类 111对数概率回归 112朴素贝叶斯 117支持向量机 120k 近邻 123决策树 126随机森林 133XGBoost 138LightGBM150TPOT 155第11 章 模型选择 161验证曲线 161学习曲线 163第12 章 度量标准和分类评估 165混淆矩阵 165度量标准 168准确率 170召回率 171精准率 171f1 值 172分类报告 172ROC 曲线 173精准率- 召回率曲线 175累积增益图 176lift 曲线 178类别平衡 180类别预测错误 181判别阈值 182第13 章 解释模型 185回归系数 185特征重要性 186LIME 包186解释树模型 188部分依赖图 189替代模型 193Shapley 值 194第14 章 回归 199基准模型 201线性回归 202支持向量机 206k 近邻 208决策树 210随机森林 217XGBoost 回归 220LightGBM 回归 228第15 章 度量标准和回归模型的评估 233度量标准 233残差图 236异方差性 237残差正态性 237预测误差图 239第16 章 解释回归模型 241Shapley 值 241第17 章 降维技术 247PCA 方法 247UMAP 方法 267t-SNE 方法 273PHATE 方法 277第18 章 聚类 283k-means 算法 283层次聚类 290理解簇 293第19 章 流水线 299分类流水线 299回归流水线 302PCA 流水线 303作者介绍 305
前言如今,人工智能(artificial intelligence,AI)技术广泛应用于我们的生活。每天,机器帮我们解读复杂的数据:监控系统识别人脸,数字助理理解我们的话语,自动驾驶车辆和机器人能够自由穿梭在纷乱和非受限的物理世界。在图像、音频和文本处理等领域,人工智能不仅在能力上媲美人类,而且其准确率和速度还会碾压人类。我们庆祝人工智能进步的同时,不能忽略的事实是,近来的研究证实,深度神经网络(deep neural network,DNN)作为大多数人工智能系统不可或缺的算法,存在被看似友好输入攻击的潜在风险。对于输入数据的细微改动,人们往往检测不到或予以忽略,但这些改动却有可能欺骗深度神经网络。例如,图像的小幅改动,人虽注意不到,但却能导致深度神经网络误解图像内容。鉴于很多人工智能系统从声音识别设备或社交媒体等外部数据源获取输入,它们这种可能被对抗性输入(adversarial input)欺骗的弱点为一种新型且经过策划的安全威胁敞开大门。本书讨论的正是这种威胁,从攻防角度思考深度神经网络,探讨如何设计人工智能系统,才能使其更健壮地应对攻击。本书通过考察我们日常生活中用人工智能技术处理图像、音频和视频数据这些真实场景,带领读者思考对抗性输入的动机、可能性和威胁。本书不仅以符合读者直觉的方式讲解该主题,还给出其数学解释,并探索如何让智能系统更健壮地应对对抗性输入。我们理解如何欺骗人工智能系统,将获得一种洞察力,它有助于我们理解这些常常晦涩难懂的深度学习算法,理解这些算法和人脑在处理感官输入上的差异。本书将探讨这些不同,还将探讨如何在不久的将来让智能学习更接近人脑的水准。目标读者本书的目标读者有:? 开发深度神经网络的数据科学家。学完本书,你能深刻理解如何创建对对抗性输入更健壮的深度神经网络。? 解决方案和安全架构师,如负责将深度学习技术整合到从非信任源获取图像、音频或视频数据的生产流水线的读者。学完本书,你能理解对抗性输入对你所在单位信息安全的威胁和可能的威胁减缓(risk mitigation)策略。? 任何对人工和生物感知两者之间的差异感兴趣的读者。如果你属于这类读者,那么本书能带你步入深度学习的殿堂,并解释看似准确模仿人感知的算法为什么会错得离谱。学完本书,你还能深刻理解当下人工智能在我们生活中的应用场景和方式,以及不久的将来它如何更好地模仿生物智能。本书的编写,力求使不同知识背景的读者都能读懂,同时保留部分读者可能感兴趣的细节知识。本书内容横跨人工智能、人对图像和音视频的感知、信息安全领域。作者有意整合多个学科,从不同视角为读者呈现这一迷人和发展迅猛的领域。阅读本书,你无需具备深度神经网络的预备知识。关于深度神经网络,你所需的全部知识请见本书安排的入门章节(第3 章)。如果你是数据科学家,且熟悉深度学习方法的话,你可跳过该章。无论你数学水平如何,本书的解释都力求能让你读懂。本书包含一部分数学知识,供那些对深度学习和在对抗性输入背后起支撑作用的公式感兴趣的读者选学。如果你已忘记高中数学知识,请参照本书附录对关键术语及其说明的介绍进行回顾。本书示例代码同样是选学内容,是为那些喜欢将理论知识付诸实践的软件工程师或数据科学家提供的。这些代码是用Python 语言在Jupyter Notebook 编辑器中编写的。对内容讲解很重要的代码片段,已列在书中,但全部代码托管在本书配套的GitHub 仓库。关于代码运行方法的详细介绍,也放到了该仓库中。本书并非要讲机器学习这一更广阔主题的安全机制,而是重点讲解专门用于图像、音频和视频处理的深度学习技术,并着重探讨那些欺骗深度学习算法而不会欺骗人的技术。内容编排本书分为以下四个部分:第1 部分 人工智能骗术简介这几章介绍对抗性输入和攻击动机,并解释图像、音频和视频数据处理所用深度学习技术的基本概念:? 第 1 章介绍对抗性人工智能和深度学习这一更广泛的主题。? 第 2 章思考生成对抗性图像、音频和视频的潜在动机。? 第 3 章简要介绍深度神经网络。读者如已理解深度学习概念,可跳过本章。? 第 4 章综述图像、音频和视频处理所用深度神经网络,为读者理解后续章节的概念提供基础。第2 部分 生成对抗性输入紧接第1 部分的入门章节,本部分解释对抗性输入,并详细介绍其创建方法:? 第 5 章从概念入手解释对抗性输入的思想内涵。? 第 6 章深入解释对抗性输入的生成方法。第3 部分 理解真实世界的威胁本部分以第2 部分所讲方法为基础,探讨在真实世界对手是如何发起攻击的,他们又会面临哪些挑战:? 第 7 章带领读者思考真实攻击和对手用第 2 部分所讲方法攻击真实系统时面对的挑战。? 第 8 章探讨在真实世界中开发和创建的对抗性物体或对抗性声音的确切威胁。第4 部分 防御本部分在第3 部分的基础上,讨论如何增强系统抵抗对抗性输入的能力。? 第 9 章带领读者思考如何从实例和理论角度评估神经网络的健壮性。? 第 10 章探讨该领域就如何增强深度神经网络算法抵抗对抗性输入的能力这一问题而涌现出来的新思想。接着带领读者从全局视角来思考防御措施,尝试将防御措施引入更宽广的处理链,神经网络技术只是该链条的一个环节。? 第 11 章展望未来,探讨深度神经网络未来几年可能的发展趋势。排版约定本书在排版上遵循以下约定:斜体(Italic)表示新术语、URL、邮件地址、文件名和文件扩展名。等宽字体(constant width)表示程序片段,以及正文中出现的变量、函数名、数据库、数据类型、环境变量、语句和关键字。等宽粗体(constant width bold)表示应该由用户输入的命令或其他文本。等宽斜体(constant width italic)表示应该由用户输入的值或根据上下文确定的值替换的文本。使用代码示例配套材料( 代码示例、练习等) 请从https://github.com/katywarr/strengthening-dnns 下载。本书是为了帮你完成工作。一般来讲,书中的示例代码,你用于自己的项目和文档,无需联系以征求我们许可,但大量复制代码另议。例如,编写的程序使用书中多处代码,无需我们授权,但出售或传播用 O’Reilly 图书示例代码制作的CD-ROM 光盘,则需我们授权。引用本书内容或示例代码回答问题,无需授权,但在你的产品文档中大量使用本书示例代码,则需经我们授权。如能添加内容的出处,我们将非常感激,当然这不是必须的。出处通常要标明书名、作者、出版社和 ISBN。例如:“Strengthening Deep Neural Networks by Katy Warr (O’Reilly). Copyright 2019 Katy Warr, 978-1-492-04495-6.”。如果你觉得示例代码的使用方式可能不当或超出上述许可范围,请联系我们,邮箱是 permissions@oreilly.com。本书对数学知识的要求无论你数学水平如何,本书的解释力求使你都能读懂。如果你不熟悉(或已忘记)书中所用数学符号,本书附录对此做了总结,可自行参考。O’Reilly 在线学习平台(O’Reilly Online Learning)近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。联系方式请将你对本书的评价和问题发给出版社:美国:O’Reilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2号成铭大厦C座807室(100035)奥莱利技术咨询(北京)有限公司我们为本书做了一个网页, 将勘误信息、示例代码和其他附加信息列在上面。地址是https://www.oreilly.com/library/view/strengthening-deepneural/9781492044949。对本书的评论或技术性问题,请发电子邮件至:bookquestions@oreilly.com。如想了解更多O’Reilly 图书、培训课程、会议和新闻相关信息,请访问以下网站: http://www.oreilly.com。我们的Facebook:http://facebook.com/oreilly。我们的Twitter:http://twitter.com/oreillymedia。我们的YouTube:http://www.youtube.com/oreillymedia。致谢O’Reilly 团队给予我写作本书的机会,写作过程又提供大力支持,对此我非常感激。特别感谢编辑Michele Cronin,感谢她给予我的帮助和鼓励,感谢产品团队的Deborah Baker、Rebecca Demarest 和Sonia Saruba。感谢工具团队的Nick Adams 帮忙解决一些非常棘手的LaTeX 数学格式问题。感谢我的审稿员:Nikhil Buduma、Pin-Yu Chen、Dominic Monn 和Yacin Nadji。你们的评审意见对我的帮助很大。感谢Dominic 核查代码并提出非常实用的改进意见。我所在的Roke Manor Research 研究所的一些同事给出很有见地的反馈,激发我们就深度学习、网络安全和数学展开的很有意思的讨论。感谢你们:Alex Collins、Robert Hancock、Darren Richardson 和Mark West。本书大量内容是以最新研究为基础,感谢所有慷慨授权我使用其论文插图的研究员。感谢我的孩子们对我的大力支持:Eleanor 曾不断鼓励我,而Dylan 则耐心向我解释研究论文所用的一些数学知识(感谢她接受在本书英文版中“maths”可以少写一个字母s 这一事实)。最后,感谢你,我的丈夫George,感谢你给我沏的很多杯茶,感谢你在文字顺序还是一团糟的时候审阅本书的初稿。抱歉,我没能把你讲的笑话也写进书中。