作者 |
保罗·佩罗塔 大卫·福赛斯 |
丛书名 |
智能科学与技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782105181553 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8080773 - 机器学习编程:从编码到深度学习--------------------------- 使用监督学习从头构建一个图像识别应用程序。用线性回归预测未来。深入研究梯度下降,这是一种驱动大部分机器学习的基本算法。创建感知器来分类数据。建立神经网络来处理更复杂和复杂的数据集。通过反向传播和批处理来训练和细化这些网络。分层神经网络,消除过度拟合,并添加卷积将您的神经网络转换为一个真正的深度学习系统。 ---------------------------8077116 - 机器学习:应用视角--------------------------- 本教材是一个机器学习工具箱,适用于计算机科学专业本科四年级或研究生一年级的学生。本书为那些想要使用机器学习过程来完成任务的人提供了许多主题,强调使用现有的工具和包,而不是自己重新编写代码。本书适用于从头至尾的讲授或阅读,不同的讲师或读者有不同的需求。 |
目录 |
[套装书具体书目] 8077116 - 机器学习:应用视角 - 9787111668299 - 机械工业出版社 - 定价 129 8080773 - 机器学习编程:从编码到深度学习 - 9787111680918 - 机械工业出版社 - 定价 99 ---------------------------8080773 - 机器学习编程:从编码到深度学习--------------------------- 译者序 前言 致谢 第一部分 从零开始的 图像识别 第1章 机器学习的原理 2 1.1 编程与机器学习 2 1.2 监督学习 4 1.3 魔法背后的数学原理 6 1.4 设置系统 8 第2章 首个机器学习程序 12 2.1 了解问题 12 2.1.1 监督比萨 13 2.1.2 理解数据 13 2.2 编写线性回归代码 15 2.2.1 定义模型 16 2.2.2 进行预测 18 2.2.3 进行训练 18 2.2.4 计算误差 19 2.2.5 越来越接近 20 2.2.6 运行代码 21 2.3 添加偏置 23 2.4 小结 25 2.5 动手研究:设置超参数 26 第3章 梯度 28 3.1 算法的缺陷 28 3.2 梯度下降法 30 3.2.1 少量数学知识 32 3.2.2 陡坡速降 33 3.2.3 脱离平面 34 3.2.4 偏导数 35 3.2.5 测试梯度下降法 37 3.2.6 何时梯度下降法不适用 38 3.3 小结 40 3.4 动手研究:露营地问题 40 第4章 超空间 41 4.1 添加更多维度 42 4.2 矩阵代数 44 4.2.1 矩阵乘法 45 4.2.2 矩阵转置 47 4.3 升级学习程序 47 4.3.1 数据准备 48 4.3.2 升级预测函数 50 4.3.3 升级损失函数 51 4.3.4 升级梯度公式 52 4.3.5 整合函数 53 4.4 告别偏置 54 4.5 最后一次试运行 55 4.6 小结 56 4.7 动手研究:统计学家 56 第5章 能辨识的机器 58 5.1 线性回归的不足 58 5.2 S型函数 61 5.2.1 信心与疑虑 62 5.2.2 平滑过程 63 5.2.3 升级梯度 65 5.2.4 模型函数受到的影响 66 5.3 操作中的分类函数 67 5.4 小结 69 5.5 动手研究:权重的影响 70 第6章 计算机视觉初探 71 6.1 处理数据 72 6.1.1 MNIST入门 72 6.1.2 训练与测试 73 6.2 我们自己的MNIST库 74 6.2.1 准备输入矩阵 74 6.2.2 处理数据 76 6.3 实际运行 79 6.4 小结 80 6.5 动手研究:难以识别的数字 80 第7章 最后的挑战 81 7.1 多元分类 81 7.1.1 独热编码 83 7.1.2 独热编码实践 84 7.1.3 解码分类器的答案 85 7.1.4 需要更多的权重 85 7.1.5 回顾矩阵维数 86 7.2 验证与结果 87 7.3 小结 89 7.4 动手研究:扫雷舰 89 第8章 感知机 91 8.1 认识感知机 91 8.2 组装感知机 92 8.3 感知机的不足 93 8.3.1 线性可分数据 94 8.3.2 线性不可分数据 95 8.4 感知机史话 97 8.4.1 终极之战 98 8.4.2 论战余波 98 第二部分 神经网络 第9章 设计神经网络 100 9.1 用感知机组装神经网络 101 9.1.1 链式感知机 102 9.1.2 节点数量 103 9.2 加入softmax函数 105 9.3 构建方案 106 9.4 小结 106 9.5 动手研究:网络冒险 107 第10章 构建神经网络 108 10.1 编写正向传播代码 108 10.1.1 编写softmax函数 110 10.1.2 编写分类函数 112 10.2 交叉熵 112 10.3 小结 114 10.4 动手研究:时间旅行的测试 115 第11章 训练神经网络 116 11.1 反向传播的使用场合 116 11.2 从链式法则到反向传播 118 11.2.1 简单网络结构的链式法则 118 11.2.2 复杂网络的链式法则 119 11.3 使用反向传播算法 121 11.3.1 开始之前 123 11.3.2 计算w2的梯度 123 11.3.3 计算w1的梯度 124 11.3.4 提炼反向函数 125 11.4 初始化权重 126 11.4.1 可怕的对称性 126 11.4.2 死亡神经元 127 11.4.3 正确的权重初始化 129 11.5 完成网络模型 130 11.6 小结 132 11.7 动手研究:错误的开始 133 第12章 分类器的工作原理 134 12.1 寻找边界 134 12.1.1 感知机的主场 135 12.1.2 理解分类 136 12.1.3 线性不可分 138 12.2 弯曲的边界 139 12.3 小结 141 12.4 动手研究:高难数据 141 第13章 小批量处理 142 13.1 训练过程的可视化 143 13.2 分批处理 145 13.2.1 小批量样本集的构造 145 13.2.2 批量样本的训练 147 13.3 理解小批量 148 13.3.1 扭曲的路径 148 13.3.2 大型和小型批处理 150 13.3.3 批处理的优缺点 151 13.4 小结 152 13.5 动手研究:最小的批量 153 第14章 测试的禅意 154 14.1 过度拟合的威胁 154 14.2 测试的难题 156 14.3 小结 158 14.4 动手研究:思考测试 159 第15章 来做开发吧 160 15.1 准备样本数据 161 15.1.1 检查输入变量的范围 161 15.1.2 标准化输入变量 162 15.1.3 标准化的实践 163 15.2 调优超参数 164 15.2.1 选择历元的数量 164 15.2.2 调优隐藏节点数量 165 15.2.3 调优学习率 168 15.2.4 调优批量大小 170 15.3 最终测试 171 15.4 动手研究:实现99% 173 15.5 小结与展望 174 第三部分 深度学习 第16章 深度神经网络 178 16.1 针鼹数据集 179 16.2 使用Keras构建神经网络 180 16.2.1 计划与代码 181 16.2.2 加载数据 182 16.2.3 创建模型 183 16.2.4 编译模型 184 16.2.5 训练网络 184 16.2.6 描绘边界 185 16.2.7 实践中的Keras 185 16.3 更深一层 187 16.4 小结 188 16.5 动手研究:Keras游乐场 188 第17章 战胜过度拟合 190 17.1 详解过度拟合 190 17.1.1 过度拟合的成因 191 17.1.2 过度拟合与低度拟合 194 17.2 模型正则化 195 17.2.1 回顾深度网络 195 17.2.2 L1和L2 正则化法 198 17.3 正则化工具箱 202 17.4 小结 203 17.5 动手研究:保持简单 204 第18章 驯服深度网络 205 18.1 理解激活函数 205 18.1.1 激活函数存在的意义 206 18.1.2 S型函数及其运算结果 207 18.2 超越S型函数 211 18.2.1 初识ReLU 211 18.2.2 选择正确的函数 213 18.3 掌握更多的技巧 215 18.3.1 更好的权重初始化 215 18.3.2 加速梯度下降 216 18.3.3 高级正则化 217 18.3.4 最后一招:批处理标准化 219 18.4 小结 220 18.5 动手研究:10历元的挑战 220 第19章 超越香草神经网络 222 19.1 CIFAR-10数据集 223 19.1.1 初识CIFAR-10 223 19.1.2 难以分类的CIFAR数据 224 19.2 CNN的基本结构 225 19.2.1 图像就是图像 226 19.2.2 卷积 226 19.2.3 卷积层 229 19.3 运行卷积 230 19.4 小结 233 19.5 动手研究:大量的超参数 233 第20章 深度学习 235 20.1 深度学习的崛起 235 20.1.1 一场完美的革新风暴 236 20.1.2 临界点 237 20.1.3 未完待续 237 20.2 离谱的效率 238 20.3 路在何方 240 20.3.1 视觉之路 241 20.3.2 语言之路 241 20.3.3 图像生成之路 242 20.3.4 通天大道宽又阔 245 20.3.5 动手研究之路 246 20.4 你的旅程开始了 246 附录A Python语言入门 247 A.1 Python是什么样的 249 A.1.1 Python 是动态类型 250 A.1.2 Python中重要的缩进 250 A.2 Python语言的基本组成 251 A.2.1 数据类型和运算符 251 A.2.2 集合 252 A.2.3 字符串 253 A.2.4 循环 254 A.3 定义和调用函数 255 A.3.1 命名参数 256 A.3.2 默认参数 257 A.4 模块与包 257 A.4.1 定义与导入模块 257 A.4.2 主要习语 259 A.4.3 管理包 260 A.5 创建和使用对象 262 A.6 就这么多了 263 附录B 机器学习术语 264 ---------------------------8077116 - 机器学习:应用视角--------------------------- 译者序 前言 致谢 关于作者 第一部分 分类 第1章 学会分类2 1.1 分类的主要思想2 1.1.1 误差率及其他性能指标2 1.1.2 更详细的评估3 1.1.3 过拟合与交叉验证4 1.2 最近邻分类5 1.3 朴素贝叶斯7 1.3.1 利用交叉验证进行模型选择9 1.3.2 数据缺失11 编程练习11 第2章 支持向量机和随机森林14 2.1 支持向量机14 2.1.1 铰链损失15 2.1.2 正则化16 2.1.3 通过随机梯度下降来寻找分类器17 2.1.4 λ的搜索19 2.1.5 总结:用随机梯度下降训练20 2.1.6 例子:利用支持向量机分析成人收入21 2.1.7 利用支持向量机进行多类分类23 2.2 利用随机森林进行分类23 2.2.1 构造决策树25 2.2.2 用信息增益来选择划分27 2.2.3 森林29 2.2.4 构造并评估决策森林29 2.2.5 利用决策森林进行数据分类30 编程练习31 MNIST练习33 第3章 学习理论初步35 3.1 用留出损失预测测试损失35 3.1.1 样本均值和期望36 3.1.2 利用切比雪夫不等式37 3.1.3 一个泛化界37 3.2 有限分类器族的测试误差与训练误差38 3.2.1 霍夫丁不等式39 3.2.2 在有限预测器族上训练39 3.2.3 所需样例数量40 3.3 无限预测器集合41 3.3.1 预测器和二值函数41 3.3.2 对称化43 3.3.3 限制泛化误差44 第二部分 高维数据 第4章 高维数据48 4.1 概述及简单绘图48 4.1.1 均值48 4.1.2 杆图和散点图矩阵49 4.1.3 协方差51 4.1.4 协方差矩阵52 4.2 维数灾难53 4.2.1 灾难:数据不是你想象的那样53 4.2.2 维数的小困扰55 4.3 用均值和协方差理解高维数据55 4.3.1 仿射变换下的均值和协方差56 4.3.2 特征向量及矩阵对角化56 4.3.3 通过旋转数据堆来对角化协方差矩阵57 4.4 多元正态分布58 4.4.1 仿射变换与高斯模型59 4.4.2 绘制二维高斯模型:协方差椭圆59 4.4.3 描述统计与期望60 4.4.4 维数灾难的更多内容61 习题61 第5章 主成分分析64 5.1 在主成分上表示数据64 5.1.1 近似数据团块64 5.1.2 例子:变换身高体重堆65 5.1.3 在主成分上表示数据67 5.1.4 低维表示中的误差68 5.1.5 用NIPALS算法提取若干主成分69 5.1.6 主成分和缺失值70 5.1.7 PCA作为平滑方法71 5.2 例子:用主成分表示颜色72 5.3 例子:用主成分表示人脸75 习题77 编程练习78 第6章 低秩近似80 6.1 奇异值分解80 6.1.1 SVD和PCA81 6.1.2 SVD和低秩近似82 6.1.3 用SVD进行平滑82 6.2 多维缩放83 6.2.1 通过高维的距离选择低维的点83 6.2.2 使用低秩近似分解因子84 6.2.3 例子:利用多维缩放进行映射85 6.3 例子:文本模型和潜在语义分析87 6.3.1 余弦距离88 6.3.2 对单词计数进行平滑88 6.3.3 例子:对NIPS文档进行映射89 6.3.4 获得词的含义90 6.3.5 例子:对NIPS数据集的词进行映射92 6.3.6 TFIDF93 习题94 编程练习95 第7章 典型相关分析97 7.1 典型相关分析算法97 7.2 例子:在词和图片上进行CCA99 7.3 例子:在反射率和遮光上进行CCA102 编程练习105 第三部分 聚类 第8章 聚类108 8.1 聚合式聚类和拆分式聚类108 8.2 k均值算法及其变体111 8.2.1 如何选择k的值114 8.2.2 软分配115 8.2.3 高效聚类和层级式k均值117 8.2.4 k中心点算法117 8.2.5 例子:葡萄牙的杂货117 8.2.6 关于k均值算法的一些见解119 8.3 用向量量化描述重复性120 8.3.1 向量量化121 8.3.2 例子:基于加速度计数据的行为123 编程练习126 第9章 使用概率模型进行聚类130 9.1 混合模型与聚类130 9.1.1 数据团块的有限混合模型130 9.1.2 主题和主题模型132 9.2 EM算法133 9.2.1 例子——高斯混合:E步134 9.2.2 例子——高斯混合:M步136 9.2.3 例子——主题模型:E步136 9.2.4 例子——主题模型:M步137 9.2.5 EM算法的实践137 习题140 编程练习140 第四部分 回归 第10章 回归144 10.1 概述144 10.2 线性回归和最小二乘法146 10.2.1 线性回归146 10.2.2 选择β147 10.2.3 残差148 10.2.4 R2149 10.2.5 变量变换150 10.2.6 可以相信回归吗152 10.3 可视化回归以发现问题153 10.3.1 问题数据点具有显著影响153 10.3.2 帽子矩阵和杠杆155 10.3.3 库克距离156 10.3.4 标准化残差156 10.4 很多解释变量158 10.4.1 一个解释变量的函数158 10.4.2 正则化线性回归159 10.4.3 例子:体重与身体测量值162 附录 数据165 习题165 编程练习168 第11章 回归:选择和管理模型170 11.1 模型选择:哪种模型最好170 11.1.1 偏差与方差170 11.1.2 用惩罚机制选择模型:AIC和BIC172 11.1.3 使用交叉验证选择模型173 11.1.4 基于分阶段回归的贪心搜索174 11.1.5 哪些变量是重要的174 11.2 鲁棒回归175 11.2.1 M估计和迭代加权最小二乘176 11.2.2 M估计的尺度178 11.3 广义线性模型179 11.3.1 逻辑回归179 11.3.2 多类逻辑回归180 11.3.3 回归计数数据181 11.3.4 离差181 11.4 L1正则化和稀疏模型182 11.4.1 通过L1正则化删除变量182 11.4.2 宽数据集185 11.4.3 在其他模型上使用稀疏惩罚186 编程练习187 第12章 Boosting190 12.1 贪心法和分阶段回归法190 12.1.1 例子:贪心分阶段线性回归190 12.1.2 回归树192 12.1.3 基于树的贪心分阶段回归193 12.2 Boosting分类器196 12.2.1 损失196 12.2.2 分阶段降低损失的一般方法197 12.2.3 例子:Boosting决策树桩198 12.2.4 决策树桩的梯度提升199 12.2.5 其他预测器的梯度提升200 12.2.6 例子:医生会开阿片类药物吗201 12.2.7 用lasso修剪提升的预测器202 12.2.8 梯度提升软件204 习题206 编程练习207 第五部分 图模型 第13章 隐马尔可夫模型210 13.1 马尔可夫链210 13.1.1 转移概率矩阵212 13.1.2 稳态分布214 13.1.3 例子:文本的马尔可夫链模型216 13.2 隐马尔可夫模型与动态规划218 13.2.1 隐马尔可夫模型218 13.2.2 用网格图图解推断过程219 13.2.3 基于动态规划的推断过程222 13.2.4 例子:校正简单文本错误222 13.3 隐马尔可夫模型的学习过程224 13.3.1 当隐状态有明确语义信息时225 13.3.2 基于EM的隐马尔可夫模型学习过程225 习题228 编程练习229 第14章 学习序列模型的判别式方法232 14.1 图模型232 14.1.1 推断与图232 14.1.2 图模型234 14.1.3 在图模型中的学习235 14.2 用于序列的条件随机场模型235 14.2.1 MEMM和标签偏置236 14.2.2 条件随机场模型237 14.2.3 学习CRF时需要留心238 14.3 CRF的判别学习239 14.3.1 模型的表示239 14.3.2 例子:数字序列建模240 14.3.3 建立学习问题241 14.3.4 梯度计算241 习题243 编程练习243 第15章 平均场推断245 15.1 有用却难解的模型245 15.1.1 用玻尔兹曼机为二值图像去噪246 15.1.2 离散马尔可夫随机场246 15.1.3 基于离散马尔可夫随机场的去噪和分割247 15.1.4 离散马尔可夫场的MAP推断可能很难249 15.2 变分推断250 15.2.1 KL散度250 15.2.2 变分自由能251 15.3 例子:玻尔兹曼机的变分推断251 第六部分 深度网络 第16章 简单神经网络256 16.1 单元和分类256 16.1.1 用单元来构建一个分类器:代价函数256 16.1.2 用单元来构建一个分类器:决策 258 16.1.3 用单元来构建一个分类器:训练258 16.2 例子:信用卡账户分类260 16.3 层和网络264 16.3.1 堆叠层264 16.3.2 雅可比矩阵和梯度265 16.3.3 构建多层266 16.3.4 梯度和反向传播267 16.4 训练多层网络269 16.4.1 软件环境270 16.4.2 Dropout和冗余单元271 16.4.3 例子:再论信用卡账户271 16.4.4 高级技巧:梯度缩放273 习题276 编程练习277 第17章 简单图像分类器278 17.1 图像分类278 17.1.1 基于卷积的模式检测279 17.1.2 卷积层的堆叠283 17.2 两个实用的图像分类器284 17.2.1 例子:MNIST数据集分类285 17.2.2 例子:CIFAR10数据集分类288 17.2.3 异类:对抗样本292 编程练习293 第18章 图像分类与物体检测294 18.1 图像分类295 18.1.1 物体图像分类数据集295 18.1.2 场景图像分类数据集296 18.1.3 增广和集成297 18.1.4 AlexNet298 18.1.5 VGGNet299 18.1.6 批归一化301 18.1.7 计算图302 18.1.8 Inception网络302 18.1.9 残差网络303 18.2 物体检测305 18.2.1 物体检测如何工作305 18.2.2 选择性搜索306 18.2.3 RCNN、Fast RCNN和Faster RCNN307 18.2.4 YOLO309 18.2.5 评价检测器310 18.3 延伸阅读312 习题313 编程练习313 第19章 大信号的小码表示315 19.1 更好的低维映射315 19.1.1 萨蒙映射316 19.1.2 TSNE317 19.2 产生低维表示的映射319 19.2.1 编码器、解码器和自编码器319 19.2.2 令数据块变得更大320 19.2.3 去噪自编码器322 19.3 从例子中产生图像325 19.3.1 变分自编码器326 19.3.2 对抗损失:愚弄分类器327 19.3.3 利用测试函数来匹配分布328 19.3.4 通过查看距离来匹配分布329 编程练习330 |