Swift机器学习:面向iOS的人工智能实战作者: [乌]索诺夫出版时间: 2021年版内容简介 一本书理解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简介422.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 上一篇: Python游戏开发从入门到精通 张有菊 2021年版 下一篇: VEX机器人全攻略:玩转V5编程与竞赛 韩恭恩 2020年版