| 作者 |
| 卢誉声何龙 |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781912181638 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------移动平台深度神经网络实战:原理、架构与优化--------------------------- 整体思路是: 1、最初介绍深度学习必备的知识点,做好基础知识铺垫 2、讲解数据收集、清洗和预处理过程 3、讲解深度学习训练 4、移动端实践:性能优化、指令集优化、移动端预测框架开发(基于caffe2、mxnet或ncnn,还未定),开发App使用预测。 ---------------------------深入理解XGBoost:高效机器学习算法与进阶--------------------------- 本书主要介绍:XGBoost相关的机器学习基础算法;XGBoost安装编译与简单使用;XGBoost的实现原理与理论证明;XGBoost基于CPU多线程的实现以及分布式训练方法;剖析XGBoost源码,从代码层面洞彻XGBoost的实现原理,以及XGBoost的应用与调优,通过典型示例为读者提供使用参考,掌握实战技能。 通过阅读本书,不仅能使读者理解XGBoost的原理,将XGBoost应用到业务场景中,更能从源码的角度深入学习XGBoost的并行化和分布式实现等优化技术,以更短的时间训练出高准确度的模型,使XGBoost成为学习和工作中的一把利剑。 |
| 目录 |
---------------------------移动平台深度神经网络实战:原理、架构与优化--------------------------- 序一 序二 前言 第一篇 深度学习基础 第1章 向未来问好 2 1.1 机器学习即正义 2 1.1.1 照本宣科 3 1.1.2 关键概念概述 4 1.1.3 数学之美 5 1.2 机器学习的场景和任务 6 1.3 机器学习算法 8 1.3.1 分类算法 8 1.3.2 回归算法 8 1.3.3 聚类算法 8 1.3.4 关联分析算法 9 1.3.5 集成算法 9 1.3.6 强化算法 10 1.4 如何掌握机器学习 10 1.4.1 学习曲线 10 1.4.2 技术栈 11 1.5 深度学习 12 1.5.1 深度学习的贡献 12 1.5.2 深度学习框架简介 13 1.5.3 安装使用深度学习框架 16 1.5.4 深度学习进展 22 1.6 走进移动世界的深度学习 25 1.6.1 移动平台机器学习概述 25 1.6.2 难度和挑战 26 1.7 本书框架 26 1.8 本章小结 27 第2章 机器学习基础 28 2.1 机器学习的主要任务 28 2.2 贝叶斯模型 29 2.3 Logistic回归 33 2.3.1 线性回归 33 2.3.2 几率与Logit 35 2.3.3 Logistic回归 38 2.3.4 背景溯源 39 2.3.5 实现Logistic回归 42 2.4 本章小结 44 第3章 人工神经网络 45 3.1 人工神经网络简介 45 3.2 基本结构与前向传播 46 3.2.1 神经元 46 3.2.2 连接与网络 47 3.2.3 神经网络向量化 48 3.2.4 前向传播 50 3.3 反向传播算法 50 3.4 实现前向神经网络 53 3.4.1 神经网络与前向传播实现 53 3.4.2 Softmax回归 60 3.5 稀疏自编码器 61 3.5.1 引子 61 3.5.2 自编码器简介 61 3.5.3 稀疏自编码算法 63 3.6 神经网络数据预处理 64 3.6.1 去均值 64 3.6.2 归一化 65 3.7 本章小结 65 第4章 深度网络与卷积神经网络 66 4.1 深度网络 66 4.1.1 自我学习 66 4.1.2 特征学习 67 4.1.3 深度神经网络 68 4.1.4 逐层贪婪训练方法 69 4.2 卷积神经网络 70 4.2.1 全连接与部分连接网络 70 4.2.2 卷积 70 4.2.3 池化 72 4.2.4 卷积神经网络 73 4.3 卷积神经网络实现 73 4.3.1 Layer实现 74 4.3.2 Net实现 79 4.3.3 InnerProduct实现 92 4.3.4 Convolution实现 95 4.3.5 Pooling实现 101 4.3.6 定义注册头文件 109 4.4 本章小结 110 第二篇 移动平台深度学习基础 第5章 移动平台深度学习框架设计与实现 112 5.1 移动平台深度学习系统开发简介 112 5.2 ARM Linux基础开发环境 113 5.2.1 通用ARM工具链安装 114 5.2.2 Android NDK安装 114 5.2.3 树莓派工具链安装 115 5.3 TensorFlow Lite介绍 115 5.3.1 TensorFlow Lite特性 115 5.3.2 TensorFlow Lite架构 116 5.3.3 TensorFlow Lite代码结构 117 5.4 移动平台性能优化基础 118 5.4.1 ARM v8体系结构 119 5.4.2 ARM v8数据类型与寄存器 120 5.4.3 Neon指令集介绍 122 5.4.4 ARM v8内存模型 124 5.4.5 Neon指令集加速实例 127 5.5 本章小结 140 第6章 移动平台轻量级网络实战 141 6.1 适用于移动平台的轻量级网络 141 6.2 SqueezeNet 142 6.2.1 微观结构 142 6.2.2 宏观结构 142 6.2.3 核心思路 143 6.2.4 实战:用PyTorch实现SqueezeNet 144 6.3 MobileNet 153 6.4 ShuffleNet 154 6.5 MobileNet V2 155 6.5.1 MobileNet的缺陷 155 6.5.2 MobileNet V2的改进 155 6.5.3 网络结构 156 6.5.4 实战:用PyTorch实现MobileNet V2 157 6.6 本章小结 161 第三篇 深入理解深度学习 第7章 高性能数据预处理实战 164 7.1 数据预处理任务 164 7.1.1 数据清理 165 7.1.2 数据集成 165 7.1.3 数据归约 165 7.1.4 数据变换 166 7.2 数据标准化 166 7.3 PCA 167 7.3.1 PCA的现实问题 167 7.3.2 PCA的计算方法 167 7.3.3 PCA的数学理论基础 169 7.4 在Hurricane之上实现PCA 170 7.4.1 Hurricane实时处理系统 171 7.4.2 实现Hurricane Topology 172 7.4.3 实现PCA 178 7.5 本章小结 192 第8章 基于深度神经网络的物体检测与识别 193 8.1 模式识别与物体识别 193 8.1.1 模式识别 193 8.1.2 模式识别系统 194 8.1.3 传统模式识别方法 194 8.1.4 深度学习模式识别方法 197 8.2 图像分类 197 8.2.1 LeNet 197 8.2.2 AlexNet 200 8.2.3 数据抓取整理 203 8.2.4 数据预处理 204 8.2.5 数据训练 206 8.3 目标识别与物体检测 207 8.3.1 目标识别简介 207 8.3.2 R-CNN 208 8.3.3 SPP-Net 209 8.3.4 Fast R-CNN 211 8.3.5 Faster R-CNN 211 8.3.6 RetinaNet 213 8.4 检测识别实战 213 8.4.1 Faster R-CNN 214 8.4.2 RetinaNet 230 8.5 移动平台检测识别实战 237 8.5.1 移动平台系统开发思路 237 8.5.2 基于RetinaNet的检测定位实现 237 8.5.3 基于AlexNet的识别分类实现 244 8.5.4 接口设计封装 247 8.6 本章小结 258 第四篇 深入理解移动平台深度学习 第9章 深入移动平台性能优化 260 9.1 模型压缩 260 9.2 权重稀疏化 262 9.2.1 Structured Sparsity Learning 262 9.2.2 Dynamic Network Surgery 262 9.2.3 Dynamic Network Surgery实现 264 9.3 模型加速 275 9.3.1 半精度与权重量化 275 9.3.2 深度压缩 276 9.3.3 二值化网络 278 9.3.4 三值化网络 280 9.3.5 DoReFa-Net 282 9.3.6 编程实战 283 9.4 嵌入式优化 287 9.4.1 算法局限与改进 287 9.4.2 理论改进 287 9.4.3 编程实战 288 9.5 嵌入式优化代码实现 290 9.5.1 量化分析实现 290 9.5.2 层实现 302 9.5.3 量化矩阵计算 309 9.6 本章小结 313 第10章 数据采集与模型训练实战 314 10.1 收集海量数据 314 10.1.1 搜索引擎工作原理 315 10.1.2 HTTP会话 316 10.1.3 解决JavaScript渲染问题 316 10.2 图片数据爬虫实现 317 10.2.1 获取任务 318 10.2.2 解析图片 320 10.2.3 图片存储 326 10.2.4 图片去重 327 10.2.5 完成Topology 328 10.3 训练与测试 330 10.3.1 模型定义 330 10.3.2 训练 334 10.3.3 测试 342 10.3.4 封装 344 10.4 本章小结 345 第11章 移动和嵌入式平台引擎与工具实战 346 11.1 TensorFlow Lite构建 346 11.2 集成TensorFlow Lite 357 11.3 核心实现分析 358 11.3.1 解释器代码分析 358 11.3.2 图代码分析 373 11.3.3 操作符注册 381 11.3.4 操作符扩展实现 384 11.3.5 计算与优化模块 399 11.4 模型处理工具 407 11.5 本章小结 425 第12章 移动平台框架与接口实战 426 12.1 Core ML 426 12.1.1 准备数据和生成模型 427 12.1.2 App实战:引入Core ML实现 430 12.2 Android Neural Networks API 437 12.2.1 等等,Google还有一个ML Kit 437 12.2.2 NNAPI编程模型 437 12.2.3 创建网络与计算 439 12.2.4 JNI封装与调用 451 12.2.5 App实战:集成NNAPI 454 12.3 实战:实现Android图像分类器App 459 12.3.1 JNI封装 459 12.3.2 Java调用 474 12.4 未来之路 479 12.5 本章小结 480 ---------------------------深入理解XGBoost:高效机器学习算法与进阶--------------------------- 前言 第1章 机器学习概述1 1.1 何谓机器学习1 1.1.1 机器学习常用基本概念2 1.1.2 机器学习类型3 1.1.3 机器学习应用开发步骤4 1.2 集成学习发展与XGBoost提出5 1.2.1 集成学习5 1.2.2 XGBoost6 1.3 小结7 第2章 XGBoost骊珠初探9 2.1 搭建Python机器学习环境9 2.1.1 Jupyter Notebook10 2.1.2 NumPy11 2.1.3 Pandas18 2.1.4 Matplotlib32 2.1.5 scikit-learn39 2.2 搭建XGBoost运行环境39 2.3 示例:XGBoost告诉你蘑菇是否有毒42 2.4 小结44 第3章 机器学习算法基础45 3.1 KNN45 3.1.1 KNN关键因素46 3.1.2 用KNN预测鸢尾花品种47 3.2 线性回归52 3.2.1 梯度下降法53 3.2.2 模型评估55 3.2.3 通过线性回归预测波士顿房屋价格55 3.3 逻辑回归57 3.3.1 模型参数估计59 3.3.2 模型评估60 3.3.3 良性/恶性乳腺肿瘤预测61 3.3.4 softmax64 3.4 决策树65 3.4.1 构造决策树66 3.4.2 特征选择67 3.4.3 决策树剪枝71 3.4.4 决策树解决肿瘤分类问题71 3.5 正则化75 3.6 排序78 3.6.1 排序学习算法80 3.6.2 排序评价指标81 3.7 人工神经网络85 3.7.1 感知器85 3.7.2 人工神经网络的实现原理87 3.7.3 神经网络识别手写体数字90 3.8 支持向量机92 3.8.1 核函数95 3.8.2 松弛变量97 3.8.3 通过SVM识别手写体数字98 3.9 小结99 第4章 XGBoost小试牛刀100 4.1 XGBoost实现原理100 4.2 二分类问题101 4.3 多分类问题109 4.4 回归问题113 4.5 排序问题117 4.6 其他常用功能121 4.7 小结145 第5章 XGBoost原理与理论证明146 5.1 CART146 5.1.1 CART生成147 5.1.2 剪枝算法150 5.2 Boosting算法思想与实现151 5.2.1 AdaBoost151 5.2.2 Gradient Boosting151 5.2.3 缩减153 5.2.4 Gradient Tree Boosting153 5.3 XGBoost中的Tree Boosting154 5.3.1 模型定义155 5.3.2 XGBoost中的Gradient Tree Boosting156 5.4 切分点查找算法161 5.4.1 精确贪心算法161 5.4.2 基于直方图的近似算法163 5.4.3 快速直方图算法165 5.4.4 加权分位数概要算法167 5.4.5 稀疏感知切分点查找算法167 5.5 排序学习169 5.6 DART174 5.7 树模型的可解释性177 5.7.1 Saabas177 5.7.2 SHAP179 5.8 线性模型原理183 5.8.1 Elastic Net回归183 5.8.2 并行坐标下降法184 5.8.3 XGBoost线性模型的实现185 5.9 系统优化187 5.9.1 基于列存储数据块的并行学习188 5.9.2 缓存感知访问190 5.9.3 外存块计算191 5.10 小结192 第6章 分布式XGBoost193 6.1 分布式机器学习框架Rabit 193 6.1.1 AllReduce193 6.1.2 Rabit195 6.1.3 Rabit应用197 6.2 资源管理系统YARN 200 6.2.1 YARN的基本架构201 6.2.2 YARN的工作流程202 6.2.3 XGBoost on YARN203 6.3 可移植分布式XGBoost4J205 6.4 基于Spark平台的实现208 6.4.1 Spark架构208 6.4.2 RDD210 6.4.3 XGBoost4J-Spark211 6.5 基于Flink平台的实现223 6.5.1 Flink原理简介224 6.5.2 XGBoost4J-Flink227 6.6 基于GPU加速的实现229 6.6.1 GPU及其编程语言简介229 6.6.2 XGBoost GPU加速原理230 6.6.3 XGBoost GPU应用236 6.7 小结239 第7章 XGBoost进阶240 7.1 模型训练、预测及解析240 7.1.1 树模型训练240 7.1.2 线性模型训练256 7.1.3 模型预测258 7.1.4 模型解析261 7.2 树模型更新264 7.2.1 updater_colmaker264 7.2.2 updater_histmaker264 7.2.3 updater_fast_hist271 7.2.4 其他更新器276 7.3 目标函数278 7.3.1 二分类279 7.3.2 回归280 7.3.3 多分类282 7.3.4 排序学习284 7.4 评估函数288 7.4.1 概述289 7.4.2 二分类291 7.4.3 多分类295 7.4.4 回归296 7.4.5 排序297 7.5 小结299 第8章 模型选择与优化300 8.1 偏差与方差300 8.2 模型选择303 8.2.1 交叉验证304 8.2.2 Bootstrap306 8.3 超参数优化307 8.3.1 网格搜索308 8.3.2 随机搜索310 8.3.3 贝叶斯优化313 8.4 XGBoost超参数优化315 8.4.1 XGBoost参数介绍315 8.4.2 XGBoost调参示例319 8.5 小结334 第9章 通过XGBoost实现广告分类器335 9.1 PCA335 9.1.1 PCA的实现原理335 9.1.2 通过PCA对人脸识别数据降维338 9.1.3 利用PCA实现数据可视化341 9.2 通过XGBoost实现广告分类器343 9.3 小结357 第10章 基于树模型的其他研究与应用358 10.1 GBDT、LR融合提升广告点击率358 10.2 mGBDT360 10.3 DEF362 10.4 一种基于树模型的强化学习方法366 10.5 小结370 |