| 作者 |
| 莫凡[美]叶夫根尼·沃罗贝基克(Yevgeniy Vorobeychik)穆拉特·坎塔尔乔格卢(Murat Kantarcioglu) |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782001101455 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------机器学习算法的数学解析与Python实现--------------------------- 本书由资深工程师撰写,系统介绍机器学习中需要的主要数学知识,以及机器学习算法的实现和应用场景,为机器学习初学者制定了如何夯实基础的方案。本书以机器学习的算法为主线,深入剖析算法的概念和数学原理,以通俗形象的语言进行介绍,让读者无需了解太多前置数学知识,就能看懂数学公式的表达意思,从而深度掌握机器学习的思想和原理。主要内容包括:首先介绍机器学习基本概念及工具,然后从概念、原理、Python实现、应用场景几个方面,详细剖析机器学习中最主要的算法,如线性回归算法、逻辑回归算法、KNN、朴素贝叶斯、决策分类、支持向量机分类、K-means聚类、神经网络分类、集成学习等。 ---------------------------对抗机器学习:机器学习系统中的攻击和防御--------------------------- 本书提供了针对对抗性机器学习的弱点,研究并开发相关操作技术这一领域的概述。回顾了机器学习的概念和方法后提出了对机器学习攻击的一般分类及处理两大类攻击、相关的防御和尝试学习的攻击技术。 |
| 目录 |
---------------------------机器学习算法的数学解析与Python实现--------------------------- 前言 第1章 机器学习概述 1 1.1 什么是机器学习 1 1.2 机器学习的几个需求层次 3 1.3 机器学习的基本原理 5 1.4 机器学习的基本概念 7 1.4.1 书中用到的术语介绍 7 1.4.2 机器学习的基本模式 11 1.4.3 优化方法 12 1.5 机器学习问题分类 14 1.6 常用的机器学习算法 15 1.7 机器学习算法的性能衡量指标 16 1.8 数据对算法结果的影响 18 第2章 机器学习所需的环境 20 2.1 常用环境 20 2.2 Python简介 21 2.2.1 Python的安装 23 2.2.2 Python的基本用法 24 2.3 Numpy简介 25 2.3.1 Numpy的安装 26 2.3.2 Numpy的基本用法 26 2.4 Scikit-Learn简介 27 2.4.1 Scikit-Learn的安装 28 2.4.2 Scikit-Learn的基本用法 28 2.5 Pandas简介 29 2.5.1 Pandas的安装 30 2.5.2 Pandas的基本用法 31 第3章 线性回归算法 33 3.1 线性回归:“钢铁直男”解决回归问题的正确方法 33 3.1.1 用于预测未来的回归问题 35 3.1.2 怎样预测未来 38 3.1.3 线性方程的“直男”本性 40 3.1.4 最简单的回归问题—线性回归问题 44 3.2 线性回归的算法原理 46 3.2.1 线性回归算法的基本思路 46 3.2.2 线性回归算法的数学解析 48 3.2.3 线性回归算法的具体步骤 53 3.3 在Python中使用线性回归算法 54 3.4 线性回归算法的使用场景 60 第4章 Logistic回归分类算法 61 4.1 Logistic回归:换上“S型曲线马甲”的线性回归 61 4.1.1 分类问题:选择困难症患者的自我救赎 63 4.1.2 Logistic函数介绍 66 4.1.3 此回归非彼回归:“LR”辨析 70 4.2 Logistic回归的算法原理 71 4.2.1 Logistic回归算法的基本思路 71 4.2.2 Logistic回归算法的数学解析 74 4.2.3 Logistic回归算法的具体步骤 78 4.3 在Python中使用Logistic回归算法 78 4.4 Logistic回归算法的使用场景 81 第5章 KNN分类算法 82 5.1 KNN分类算法:用多数表决进行分类 82 5.1.1 用“同类相吸”的办法解决分类问题 84 5.1.2 KNN分类算法的基本方法:多数表决 86 5.1.3 表决权问题 89 5.1.4 KNN的具体含义 89 5.2 KNN分类的算法原理 90 5.2.1 KNN分类算法的基本思路 90 5.2.2 KNN分类算法的数学解析 93 5.2.3 KNN分类算法的具体步骤 94 5.3 在Python中使用KNN分类算法 95 5.4 KNN分类算法的使用场景 96 第6章 朴素贝叶斯分类算法 98 6.1 朴素贝叶斯:用骰子选择 98 6.1.1 从统计角度看分类问题 99 6.1.2 贝叶斯公式的基本思想 102 6.1.3 用贝叶斯公式进行选择 104 6.2 朴素贝叶斯分类的算法原理 106 6.2.1 朴素贝叶斯分类算法的基本思路 106 6.2.2 朴素贝叶斯分类算法的数学解析 108 6.2.3 朴素贝叶斯分类算法的具体步骤 111 6.3 在Python中使用朴素贝叶斯分类算法 111 6.4 朴素贝叶斯分类算法的使用场景 112 第7章 决策树分类算法 114 7.1 决策树分类:用“老朋友”if-else进行选择 114 7.1.1 程序员的选择观:if-else 116 7.1.2 如何种植一棵有灵魂的“树” 118 7.1.3 决策条件的选择艺术 119 7.1.4 决策树的剪枝问题 122 7.2 决策树分类的算法原理 125 7.2.1 决策树分类算法的基本思路 125 7.2.2 决策树分类算法的数学解析 127 7.2.3 决策树分类算法的具体步骤 133 7.3 在Python中使用决策树分类算法 134 7.4 决策树分类算法的使用场景 135 第8章 支持向量机分类算法 137 8.1 支持向量机:线性分类器的“王者” 137 8.1.1 距离是不同类别的天然间隔 139 8.1.2 何为“支持向量” 140 8.1.3 从更高维度看“线性不可分” 142 8.2 支持向量机分类的算法原理 146 8.2.1 支持向量机分类算法的基本思路 146 8.2.2 支持向量机分类算法的数学解析 150 8.2.3 支持向量机分类算法的具体步骤 153 8.3 在Python中使用支持向量机分类算法 154 8.4 支持向量机分类算法的使用场景 156 第9章 K-means聚类算法 157 9.1 用投票表决实现“物以类聚” 157 9.1.1 聚类问题就是“物以类聚”的实施问题 159 9.1.2 用“K”来决定归属类别 162 9.1.3 度量“相似”的距离 164 9.1.4 聚类问题中的多数表决 165 9.2 K-means聚类的算法原理 168 9.2.1 K-means聚类算法的基本思路 168 9.2.2 K-means聚类算法的数学解析 169 9.2.3 K-means聚类算法的具体步骤 170 9.3 在Python中使用K-means聚类算法 171 9.4 K-means聚类算法的使用场景 172 第10章 神经网络分类算法 174 10.1 用神经网络解决分类问题 174 10.1.1 神经元的“内心世界” 177 10.1.2 从神经元看分类问题 180 10.1.3 神经网络的“细胞”:人工神经元 181 10.1.4 构成网络的魔力 184 10.1.5 神经网络与深度学习 188 10.2 神经网络分类的算法原理 188 10.2.1 神经网络分类算法的基本思路 188 10.2.2 神经网络分类算法的数学解析 190 10.2.3 神经网络分类算法的具体步骤 193 10.3 在Python中使用神经网络分类算法 194 10.4 神经网络分类算法的使用场景 195 第11章 集成学习方法 197 11.1 集成学习方法:三个臭皮匠赛过诸葛亮 197 11.1.1 集成学习方法与经典机器学习算法的关系 198 11.1.2 集成学习的主要思想 199 11.1.3 几种集成结构 200 11.2 集成学习方法的具体实现方式 202 11.2.1 Bagging算法 202 11.2.2 Boosting算法 202 11.2.3 Stacking算法 202 11.3 在Python中使用集成学习方法 203 11.4 集成学习方法的使用场景 205 ---------------------------对抗机器学习:机器学习系统中的攻击和防御--------------------------- 译者序 前言 致谢 作者简介 译者简介 第1章 引言1 第2章 机器学习预备知识5 2.1 监督学习5 2.1.1 回归学习6 2.1.2 分类学习7 2.1.3 PAC可学习性9 2.1.4 对抗环境下的监督学习9 2.2 无监督学习10 2.2.1 聚类11 2.2.2 主成分分析11 2.2.3 矩阵填充12 2.2.4 对抗环境下的无监督学习13 2.3 强化学习15 2.3.1 对抗环境下的强化学习17 2.4 参考文献注释17 第3章 对机器学习的攻击类型19 3.1 攻击时机20 3.2 攻击者可以利用的信息22 3.3 攻击目标23 3.4 参考文献注释24 第4章 决策时攻击26 4.1 对机器学习模型的规避攻击示例26 4.1.1 对异常检测的攻击:多态混合27 4.1.2 对PDF恶意软件分类器的攻击28 4.2 决策时攻击的建模30 4.3 白盒决策时攻击31 4.3.1 对二元分类器的攻击:对抗性分类器规避31 4.3.2 对多类分类器的决策时攻击38 4.3.3 对异常检测器的决策时攻击40 4.3.4 对聚类模型的决策时攻击40 4.3.5 对回归模型的决策时攻击41 4.3.6 对强化学习的决策时攻击44 4.4 黑盒决策时攻击45 4.4.1 对黑盒攻击的分类法46 4.4.2 建模攻击者信息获取48 4.4.3 使用近似模型的攻击50 4.5 参考文献注释51 第5章 决策时攻击的防御53 5.1 使监督学习对决策时攻击更坚固53 5.2 最优规避鲁棒性分类56 5.2.1 最优规避鲁棒的稀疏SVM56 5.2.2 应对自由范围攻击的规避鲁棒SVM60 5.2.3 应对受限攻击的规避鲁棒SVM62 5.2.4 无限制特征空间上的规避鲁棒分类63 5.2.5 对抗缺失特征的鲁棒性64 5.3 使分类器对决策时攻击近似坚固66 5.3.1 松弛方法66 5.3.2 通用防御:迭代再训练68 5.4 通过特征级保护的规避鲁棒性69 5.5 决策随机化70 5.5.1 模型70 5.5.2 最优随机化的分类操作72 5.6 规避鲁棒的回归74 5.7 参考文献注释75 第6章 数据投毒攻击77 6.1 建模投毒攻击78 6.2 对二元分类的投毒攻击79 6.2.1 标签翻转攻击79 6.2.2 对核SVM的中毒数据插入攻击81 6.3 对无监督学习的投毒攻击84 6.3.1 对聚类的投毒攻击84 6.3.2 对异常检测的投毒攻击86 6.4 对矩阵填充的投毒攻击87 6.4.1 攻击模型87 6.4.2 交替最小化的攻击89 6.4.3 核范数最小化的攻击91 6.4.4 模仿普通用户行为92 6.5 投毒攻击的通用框架94 6.6 黑盒投毒攻击96 6.7 参考文献注释98 第7章 数据投毒的防御100 7.1 通过数据二次采样的鲁棒学习100 7.2 通过离群点去除的鲁棒学习101 7.3 通过修剪优化的鲁棒学习104 7.4 鲁棒的矩阵分解107 7.4.1 无噪子空间恢复107 7.4.2 处理噪声108 7.4.3 高效的鲁棒子空间恢复109 7.5 修剪优化问题的高效算法110 7.6 参考文献注释111 第8章 深度学习的攻击和防御113 8.1 神经网络模型114 8.2 对深度神经网络的攻击:对抗样本115 8.2.1 l2范数攻击116 8.2.2 l∞范数攻击119 8.2.3 l0范数攻击121 8.2.4 物理世界中的攻击122 8.2.5 黑盒攻击123 8.3 使深度学习对对抗样本鲁棒123 8.3.1 鲁棒优化124 8.3.2 再训练127 8.3.3 蒸馏127 8.4 参考文献注释128 第9章 未来之路131 9.1 超出鲁棒优化的范围131 9.2 不完全信息132 9.3 预测的置信度133 9.4 随机化133 9.5 多个学习器134 9.6 模型和验证134 参考文献136 索引146 |