| 作者 |
| 卢誉声[印度] 卡西克·拉玛苏布兰马尼安(Karthik Ramasubramanian)[印度] 阿布舍克·辛格(Abhishek Singh) |
| 丛书名 |
| 智能系统与技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781912181636 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------移动平台深度神经网络实战:原理、架构与优化--------------------------- 整体思路是: 1、最初介绍深度学习必备的知识点,做好基础知识铺垫 2、讲解数据收集、清洗和预处理过程 3、讲解深度学习训练 4、移动端实践:性能优化、指令集优化、移动端预测框架开发(基于caffe2、mxnet或ncnn,还未定),开发App使用预测。 ---------------------------R语言机器学习(原书第2版)--------------------------- 本书是介绍机器学习技术的综合指南,从基础的统计学原理和R语言编程知识,到核心的机器学习理论和算法分析,以及机器学习模型的评估和改进方法,再到机器学习技术在大数据平台上的应用,书中都有详细介绍。 |
| 目录 |
---------------------------移动平台深度神经网络实战:原理、架构与优化--------------------------- 序一 序二 前言 第一篇 深度学习基础 第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 ---------------------------R语言机器学习(原书第2版)--------------------------- 译者序 前言 第1章 机器学习和R语言入门1 1.1 了解发展历程1 1.1.1 统计学习2 1.1.2 机器学习2 1.1.3 人工智能3 1.1.4 数据挖掘3 1.1.5 数据科学4 1.2 概率与统计5 1.2.1 计数和概率的定义5 1.2.2 事件和关系7 1.2.3 随机性、概率和分布9 1.2.4 置信区间和假设检验9 1.3 R语言入门13 1.3.1 基本组成部分13 1.3.2 R语言的数据结构14 1.3.3 子集处理15 1.3.4 函数和Apply系列17 1.4 机器学习过程工作流19 1.4.1 计划20 1.4.2 探索20 1.4.3 构建20 1.4.4 评估20 1.5 其他技术21 1.6 小结21 第2章 数据准备和探索22 2.1 规划数据收集23 2.1.1 变量类型23 2.1.2 数据格式24 2.1.3 数据源的类型29 2.2 初始数据分析30 2.2.1 初步印象30 2.2.2 把多个数据源组织到一起32 2.2.3 整理数据34 2.2.4 补充更多信息37 2.2.5 重塑38 2.3 探索性数据分析38 2.3.1 摘要统计量39 2.3.2 矩42 2.4 案例研究:信用卡欺诈46 2.4.1 数据导入46 2.4.2 数据变换47 2.4.3 数据探索48 2.5 小结50 第3章 抽样与重抽样技术51 3.1 介绍抽样技术51 3.2 抽样的术语52 3.2.1 样本52 3.2.2 抽样分布52 3.2.3 总群体的均值和方差53 3.2.4 样本均值和方差53 3.2.5 汇总的均值和方差53 3.2.6 抽样点53 3.2.7 抽样误差54 3.2.8 抽样率54 3.2.9 抽样偏误54 3.2.10 无放回的抽样54 3.2.11 有放回的抽样55 3.3 信用卡欺诈:总群体的统计量55 3.3.1 数据描述55 3.3.2 总群体的均值56 3.3.3 总群体的方差56 3.3.4 汇总的均值和方差56 3.4 抽样在业务上的意义59 3.5 概率和非概率抽样60 3.6 关于抽样分布的统计理论61 3.6.1 大数定律62 3.6.2 中心极限定理64 3.7 概率抽样技术67 3.7.1 总群体的统计量67 3.7.2 简单随机抽样70 3.7.3 系统性随机抽样75 3.7.4 分层随机抽样78 3.7.5 聚类抽样83 3.7.6 自助抽样88 3.8 蒙特卡罗方法:接受-拒绝93 3.9 小结95 第4章 R语言里的数据可视化96 4.1 ggplot2组件包简介97 4.2 世界经济发展指标97 4.3 折线图97 4.4 堆叠柱状图102 4.5 散点图106 4.6 箱形图107 4.7 直方图和密度图109 4.8 饼图113 4.9 相关图114 4.10 热点图116 4.11 气泡图117 4.12 瀑布图120 4.13 系统树图122 4.14 关键字云124 4.15 桑基图126 4.16 时间序列图127 4.17 队列图129 4.18 空间图130 4.19 小结133 第5章 特征工程135 5.1 特征工程简介135 5.2 了解工作数据136 5.2.1 数据摘要137 5.2.2 因变量的属性137 5.2.3 特征的可用性:连续型或 分类型140 5.2.4 设置数据的假设141 5.3 特征排名141 5.4 变量子集的选择144 5.4.1 过滤器方法145 5.4.2 包装器方法148 5.4.3 嵌入式方法154 5.5 主成分分析158 5.6 小结161 第6章 机器学习理论和实践162 6.1 机器学习的类型163 6.1.1 有监督学习164 6.1.2 无监督学习164 6.1.3 半监督学习165 6.1.4 强化学习165 6.2 机器学习算法的类别165 6.3 实际环境的数据集168 6.3.1 房产售价168 6.3.2 购买偏好169 6.3.3 Twitter订阅和文章169 6.3.4 乳腺癌170 6.3.5 购物篮170 6.3.6 亚马逊美食评论170 6.4 回归分析171 6.5 相关分析172 6.5.1 线性回归174 6.5.2 简单线性回归175 6.5.3 多元线性回归177 6.5.4 模型诊断:线性回归180 6.5.5 多项回归190 6.5.6 逻辑回归193 6.5.7 logit变换194 6.5.8 几率比194 6.5.9 模型诊断:逻辑回归200 6.5.10 多项逻辑回归208 6.5.11 广义线性模型211 6.5.12 结论212 6.6 支持向量机213 6.6.1 线性SVM214 6.6.2 二元SVM分类模型214 6.6.3 多类别SVM216 6.6.4 结论217 6.7 决策树217 6.7.1 决策树的类型218 6.7.2 决策指标219 6.7.3 决策树学习方法221 6.7.4 集成树235 6.7.5 结论241 6.8 朴素贝叶斯方法241 6.8.1 条件概率241 6.8.2 贝叶斯定理241 6.8.3 先验概率242 6.8.4 后验概率242 6.8.5 似然和边际似然242 6.8.6 朴素贝叶斯方法243 6.8.7 结论247 6.9 聚类分析247 6.9.1 聚类方法简介248 6.9.2 聚类算法248 6.9.3 内部评估256 6.9.4 外部评估257 6.9.5 结论259 6.10 关联规则挖掘259 6.10.1 关联概念简介259 6.10.2 规则挖掘算法261 6.10.3 推荐算法267 6.10.4 结论273 6.11 人工神经网络273 6.11.1 人类认知学习273 6.11.2 感知器275 6.11.3 Sigmoid神经元276 6.11.4 神经网络的体系架构277 6.11.5 有监督与无监督的神经网络278 6.11.6 神经网络的学习算法279 6.11.7 前馈反向传播281 6.11.8 结论286 6.12 文本挖掘方法286 6.12.1 文本挖掘简介287 6.12.2 文本摘要288 6.12.3 TF-IDF289 6.12.4 词性标注291 6.12.5 关键字云295 6.12.6 文本分析:Microsoft Cognitive Services295 6.12.7 结论304 6.13 在线机器学习算法304 6.13.1 模糊C均值聚类305 6.13.2 结论308 6.14 构建模型的核对清单308 6.15 小结308 第7章 机器学习模型的评估309 7.1 数据集309 7.1.1 房产售价309 7.1.2 购买偏好311 7.2 模型性能和评估入门312 7.3 模型性能评估的目标313 7.4 总群体的稳定性指数314 7.5 连续型输出的模型评估318 7.5.1 平均绝对误差320 7.5.2 均方根误差321 7.5.3 R2322 7.6 离散型输出的模型评估325 7.6.1 分类矩阵325 7.6.2 灵敏度和特异性329 7.6.3 ROC曲线下的面积330 7.7 概率技术333 7.7.1 K折交叉验证333 7.7.2 自助抽样335 7.8 Kappa误差指标336 7.9 小结339 第8章 模型性能改进340 8.1 Caret组件包概述341 8.2 超参数简介343 8.3 超参数优化345 8.3.1 人工搜索346 8.3.2 人工网格搜索348 8.3.3 自动网格搜索349 8.3.4 最优搜索351 8.3.5 随机搜索353 8.3.6 自定义搜索354 8.4 偏误和方差权衡357 8.5 集成学习简介360 8.5.1 投票集成360 8.5.2 集成学习中的高级方法361 8.6 在R语言里演示集成技术364 8.6.1 装袋树364 8.6.2 决策树的梯度增强366 8.6.3 混合knn和rpart369 8.6.4 利用caretEnsemble进行堆叠370 8.7 高级主题:机器学习模型的贝叶斯优化374 8.8 小结379 第9章 时间序列模型380 9.1 时间序列的组成部分380 9.2 平稳性检验383 9.3 ACF和AR模型386 9.4 PACF和MA模型388 9.5 ARIMA模型391 9.6 具有AR误差的线性回归397 9.7 小结400 第10章 可扩展机器学习和相关技术402 10.1 分布式处理和存储402 10.1.1 GFS403 10.1.2 MapReduce404 10.1.3 R语言里的并行执行404 10.2 Hadoop生态系统407 10.2.1 MapReduce408 10.2.2 Hive411 10.2.3 Apache Pig414 10.2.4 HBase417 10.2.5 Spark418 10.3 在R语言环境下用Spark进行机器学习419 10.3.1 设置环境变量419 10.3.2 初始化Spark会话420 10.3.3 加载数据并运行预处理420 10.3.4 创建SparkDataFrame421 10.3.5 构建机器学习模型421 10.3.6 对测试数据进行预测422 10.3.7 终止SparkR会话423 10.4 在R语言里利用H2O进行机器学习423 10.4.1 安装组件包424 10.4.2 H2O集群的初始化424 10.5 小结425 第11章 用Keras和TensorFlow进行深度学习427 11.1 深度学习简介427 11.2 深度学习架构428 11.2.1 卷积神经网络428 11.2.2 递归神经网络429 11.2.3 生成对抗网络430 11.3 深度学习的工具集431 11.3.1 高级库431 11.3.2 后端引擎或框架431 11.3.3 硬件能力432 11.3.4 编程语言的选择432 11.3.5 云基础架构432 11.4 用例:识别Quora中的重复问题432 11.4.1 环境设置432 11.4.2 数据预处理433 11.4.3 基准模型434 11.4.4 Siamese递归架构435 11.4.5 Keras模型437 11.4.6 模型的摘要437 11.4.7 验证样本438 11.4.8 训练模型438 11.4.9 保存模型439 11.4.10 模型性能439 11.4.11 进行预测440 11.4.12 预测示例440 11.5 小结441 |