商品详情
书名:Swift机器学习:面向iOS的人工智能实战
定价:89.0
ISBN:9787111664994
作者:[乌]亚历山大•索诺夫琴科(Alexander Sosnovshchenko)
一本书理解Swift和机器学习,掌握构建智能iOS应用方法
利用Swift与Core ML构建和部署机器学习模型,开发出用于NLP和CV的神经网络
1.学会如何使用Python和Swift快速进行模型原型开发
2.学会如何使用Core ML将预训练的模型部署到iOS
3.学会通过无监督学习发现数据中隐藏的模式
4.学会深入掌握聚类技术
5.学会如何在iOS设备上应用紧凑架构的神经网络
6.学会如何训练神经网络进行图像处理和自然语言处理
本书是机器学习和Swift的完美指南,通过学习对机器学习原理和Swift实现方法、实际案例的详细讲解后,你将能够掌握如何开发使用Swift编写的可自学习的智能iOS应用程序。
本书适合想要开发iOS智能应用程序的iOS技术人员,以及从事基于Swift开展机器学习工作的开发人员阅读。
目录
译者序
原书前言
关于作者
关于评审者
第1章 机器学习入门1
1.1 什么是人工智能1
1.2 机器学习的动机2
1.3 什么是机器学习3
1.4 机器学习的应用3
1.4.1 数字信号处理4
1.4.2 计算机视觉4
1.4.3 自然语言处理4
1.4.4 机器学习的其他应用5
1.5 利用机器学习构建iOS智能应用程序5
1.6 了解数据6
1.6.1 特征7
1.6.2 特征类型7
1.6.3 选择适当的特征集8
1.6.4 获取数据集9
1.6.5 数据预处理10
1.7 模型选择10
1.7.1 机器学习算法类型10
1.7.2 监督学习11
1.7.3 无监督学习12
1.7.4 强化学习13
1.7.5 数学优化-学习的工作原理13
1.7.6 移动端与服务器端的机器学习14
1.7.7 了解移动平台的局限性15
1.8 小结16
参考文献16
第2章 分类-决策树学习17
2.1 机器学习工具箱17
2.2 第一个机器学习应用程序原型18
2.2.1 工具19
2.2.2 设置机器学习环境19
2.3 IPython notebook速成21
2.4 实践练习22
2.5 用于“外星生命探索器”的机器学习23
2.6 加载数据集24
2.7 探索性数据分析25
2.8 数据预处理28
2.8.1 转换分类变量28
2.8.2 从标签提取特征29
2.8.3 独热编码29
2.8.4 数据拆分30
2.9 无处不在的决策树30
2.10 训练决策树分类器30
2.10.1 决策树可视化31
2.10.2 预测33
2.10.3 预测准确率评估33
2.10.4 超参数调节35
2.10.5 理解模型容量的权衡35
2.11 决策树学习的工作原理36
2.11.1 由数据自动生成决策树37
2.11.2 组合熵37
2.11.3 根据数据评估模型性能38
2.12 在Swift中实现第一个机器学习应用程序42
2.13 CoreML简介42
2.13.1 CoreML特征42
2.13.2 导出iOS模型42
2.13.3 集成学习随机森林44
2.13.4 训练随机森林44
2.13.5 随机森林准确率评估44
2.13.6 将CoreML模型导入iOS项目45
2.13.7 iOS模型性能评估47
2.13.8 决策树学习的优缺点50
2.14 小结50
第3章 k近邻分类器52
3.1 距离计算52
3.1.1 动态时间规整54
3.1.2 在Swift中实现DTW 56
3.2 利用基于实例的模型进行分类和聚类58
3.3 基于惯性传感器的人体运动识别59
3.4 理解KNN算法59
3.4.1 在Swift中实现KNN 61
3.5 基于KNN识别人体运动62
3.5.1 冷启动问题63
3.5.2 平衡数据集65
3.5.3 选择适当的k值65
3.6 高维空间中的推理66
3.7 KNN的优点67
3.8 KNN的缺点67
3.9 改进的解决方案67
3.9.1 概率解释67
3.9.2 更多数据源68
3.9.3 更智能的时间序列块68
3.9.4 硬件加速68
3.9.5 加速推理的决策树68
3.9.6 利用状态迁移68
3.10 小结68
参考文献69
第4章 k-均值聚类70
4.1 无监督学习70
4.2 k-均值聚类算法概述71
4.3 在Swift中实现k-均值72
4.3.1 更新步骤74
4.3.2 分配步骤74
4.4 聚类地图中的对象75
4.5 聚类个数选择77
4.6 k-均值聚类-问题78
4.7 k-均值++ 79
4.8 基于k-均值算法的图像分割82
4.9 小结83
第5章 关联规则学习84
5.1 查看关联规则84
5.2 定义数据结构85
5.3 利用关联测度进行规则评估86
5.3.1 支持度关联测度87
5.3.2 置信度关联测度88
5.3.3 提升度关联测度89
5.3.4 确信度关联测度90
5.4 问题分解90
5.5 生成所有可能的规则90
5.6 查找频繁项集91
5.7 Apriori算法92
5.8 Swift中的Apriori算法实现93
5.9 运行Apriori算法94
5.10 在实际数据上运行Apriori算法95
5.11 Apriori算法的优缺点96
5.12 建立适应性强的用户体验96
5.13 小结97
参考文献98
第6章 线性回归和梯度下降99
6.1 了解回归任务99
6.2 简单线性回归简介100
6.2.1 利用最小二乘法拟合回归线102
6.2.2 利用简单线性回归预测未来105
6.3 特征缩放106
6.4 特征标准化107
6.4.1 多元线性回归109
6.5 在Swift中实现多元线性回归109
6.5.1 多元线性回归的梯度下降111
6.5.2 特征标准化115
6.5.3 理解并改善线性回归的局限性117
6.6 利用正则化解决线性回归问题120
6.6.1 岭回归和Tikhonov正则化120
6.6.2 弹性网回归121
6.7 小结121
参考文献122
第7章 线性分类器和逻辑回归123
7.1 回顾分类任务123
7.1.1 线性分类器123
7.1.2 逻辑回归124
7.2 Swift中的逻辑回归实现125
7.2.1 逻辑回归中的预测部分126
7.2.2 训练逻辑回归127
7.2.3 成本函数128
7.3 预测用户意图130
7.3.1 处理日期130
7.4 针对具体问题选择回归模型131
7.5 偏差-方差权衡131
7.6 小结132
第8章 神经网络133
8.1 究竟什么是人工神经网络134
8.2 构建神经元134
8.2.1 非线性函数135
8.3 构建神经网络138
8.4 在Swift中构建一个神经网络层138
8.5 利用神经元构建逻辑函数139
8.6 在Swift中实现层140
8.7 训练神经网络141
8.7.1 梯度消失问题141
8.7.2 与生物类比141
8.8 基本神经网络子程序142
8.8.1 BNNS示例143
8.9 小结145
第9章 卷积神经网络146
9.1 理解用户情感146
9.2 计算机视觉问题概述147
9.3 卷积神经网络概述149
9.4 池化操作149
9.5 卷积运算150
9.5.1 CNN中的卷积运算152
9.6 构建网络153
9.6.1 输入层155
9.6.2 卷积层155
9.6.3 全连接层156
9.6.4 非线性层156
9.6.5 池化层156
9.6.6 正则化层156
9.7 损失函数157
9.8 批量训练网络157
9.9 训练用于面部表情识别的CNN 158
9.10 环境设置158
9.11 深度学习框架159
9.11.1 Keras 159
9.12 加载数据160
9.13 拆分数据161
9.14 数据扩充162
9.15 创建网络163
9.16 绘制网络结构165
9.17 训练网络167
9.18 绘制损失值167
9.19 预测168
9.20 以HDF5格式保存模型169
9.21 转换为CoreML格式169
9.22 可视化卷积滤波器170
9.23 在iOS上部署CNN 171
9.24 小结173
参考文献174
第10章 自然语言处理175
10.1 移动开发领域中的NLP 175
10.2 文字联想游戏176
10.3 Python NLP库178
10.4 文本语料178
10.5 常用NLP方法和子任务179
10.5.1 标记分割179
10.5.2 词干提取181
10.5.3 词形还原182
10.5.4 词性标注182
10.5.5 命名实体识别184
10.5.6 删除停止词和标点符号185
10.6 分布式语义假设186
10.7 词向量表示186
10.8 自编码器神经网络187
10.9 Word2Vec 187
10.10 Gensim中的Word2Vec 190
10.11 向量空间特性190
10.12 iOS应用程序191
10.12.1 聊天机器人剖析191
10.12.2 语音输入192
10.12.3 NSLinguisticTagger及其相关193
10.12.4 iOS上的Word2Vec 195
10.12.5 文本-语音输出196
10.12.6 UIReferenceLibraryViewController 197
10.12.7 集成197
10.13 Word2Vec的各种相关算法199
10.14 发展趋势200
10.15 小结200
第11章 机器学习库201
11.1 机器学习和人工智能API 201
11.2 库202
11.3 通用机器学习库202
11.3.1 AIToolbox 204
11.3.2 BrainCore 205
11.3.3 Caffe 205
11.3.4 Caffe2 205
11.3.5 dlib 206
11.3.6 FANN 206
11.3.7 LearnKit 206
11.3.8 MLKit 206
11.3.9 Multilinear-math 207
11.3.10 MXNet 207
11.3.11 Shark 207
11.3.12 TensorFlow 207
11.3.13 tiny-dnn 208
11.3.14 Torch 208
11.3.15 YCML 209
11.4 仅用于推理的库209
11.4.1 Keras 210
11.4.2 LibSVM 210
11.4.3 Scikit-learn 210
11.4.4 XGBoost 210
11.5 NLP库211
11.5.1 Word2Vec 211
11.5.2 Twitter文本211
11.6 语音识别211
11.6.1 TLSphinx 211
11.6.2 OpenEars 211
11.7 计算机视觉212
11.7.1 OpenCV 212
11.7.2 ccv 212
11.7.3 OpenFace 212
11.7.4 Tesseract213
11.8 底层子程序库213
11.8.1 Eigen 213
11.8.2 fmincg-c 213
11.8.3 IntuneFeatures 214
11.8.4 SigmaSwiftStatistics 214
11.8.5 STEM 214
11.8.6 Swix 214
11.8.7 LibXtract 214
11.8.8 libLBFGS 215
11.8.9 NNPACK 215
11.8.10 Upsurge 215
11.8.11 YCMatrix 215
11.9 选择深度学习框架216
11.10 小结216
第12章 优化移动设备上的神经网络217
12.1 提供完美的用户体验217
12.2 计算卷积神经网络规模218
12.3 无损压缩220
12.4 紧凑型CNN架构221
12.4.1 SqueezeNet 221
12.4.2 MobileNet 221
12.4.3 ShuffleNet 222
12.4.4 CondenseNet 222
12.5 防止神经网络扩大222
12.6 有损压缩223
12.6.1 推理优化224
12.7 网络压缩示例226
12.8 小结226
参考文献226
第13章 最佳实践227
13.1 移动平台机器学习项目的生命周期227
13.1.1 准备阶段227
13.1.2 创建原型230
13.1.3 移植或部署到移动平台233
13.1.4 实际应用234
13.2 最佳实践指南234
13.2.1 基准测试234
13.2.2 隐私和差异化隐私235
13.2.3 调试和可视化236
13.2.4 归档236
13.3 机器学习问题237
13.3.1 数据怪物237
13.3.2 训练问题238
13.3.3 产品设计噩梦238
13.4 学习资源推荐240
13.4.1 数学基本知识241
13.5 小结242
原书前言
机器学习相关领域技术是通过有效学习和分析信息并揭示人类无法获取的某些模式,为应用软件提供更多智能。本书首先从机器学习的基础知识开始,帮助你建立对机器学习基本概念的直观认识。然后探讨各种监督学习和无监督学习方法。再后通过常见的实际案例来深入讲解深度学习技术。在最后深入讨论模型压缩、GPU加速等核心主题,并提供一些建议,以避免在使用机器学习开发应用程序的过程中出现常见错误。
通过本书的学习,你将能够开发由Swift编写的可自学习的智能应用程序。
本书读者
本书是面向使用Swift开发智能应用程序的技术人员,以及从事机器学习研究的研发人员。阅读本书只需熟悉一些基本的Swift编程即可。
本书主要内容
第1章 机器学习入门,介绍机器学习的主要概念,建立直观认识。
第2章 分类—决策树学习,构建第一个机器学习应用程序。
第3章 k近邻分类器,探索分类算法,学习基于实例的学习算法。
第4章 k-均值聚类,介绍基于实例的算法,重点是无监督的聚类任务。
第5章 关联规则学习,更深入地探讨无监督学习。
第6章 线性回归和梯度下降,又返回到监督学习,不过讲解的重点是从KNN、k-均值等非参数模型到参数线性化模型。
第7章 线性分类器和逻辑回归,继续在线性回归的基础上建立更复杂的不同模型,如多项式回归、正则回归和逻辑回归。
第8章 神经网络,实现第一个神经网络。
第9章 卷积神经网络,继续学习神经网络,讲解重点是在计算机视觉领域特别流行的卷积神经网络。
第10章 自然语言处理,探索人类自然语言世界,还将利用神经网络构建几个具有不同个性的聊天机器人。
第11章 机器学习库,概述了现有的与iOS兼容的机器学习库。
第12章 优化移动设备上的神经网络,讨论在移动平台上部署深度神经网络。
第13章 最佳实践,讨论机器学习应用程序的生命周期、人工智能项目中的常见问题以及如何解决这些问题。
充分利用本书所需环境
要顺利学习本书,需安装以下软件:
Homebrew 1.3.8 +
Python 2.7.x
pip 9.0.1+
Virtualenv 15.1.0+
IPython 5.4.1+
Jupyter 1.0.0+
SciPy 0.19.1+
NumPy 1.13.3+
Pandas 0.20.2+
Matplotlib 2.0.2+
Graphviz 0.8.2+
pydotplus 2.0.2+
scikit-learn 0.18.1+
coremltools 0.6.3+
Ruby (default macOS version)
Xcode 9.2+
Keras 2.0.6+ with TensorFlow 1.1.0+ backend
keras-vis 0.4.1+
NumPy 1.13.3+
NLTK 3.2.4+
Gensim 2.1.0+
所需的操作系统:
macOS High Sierra 10.13.3+
iOS 11+或模拟器
- 机械工业出版社旗舰店 (微信公众号认证)
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...