作者 |
奥雷利安·杰龙(Aurélien Géron) [美] 杜威·奥辛格(Douwe Osinga) [以] 汤姆·奥普 |
丛书名 |
出版社 |
机械工业出版社* |
ISBN |
28515500 |
简要 |
简介 |
内容简介书籍计算机书籍 《机器学习实战:基于Scikit-Learn和TensorFlow》 本书主要分为两部分,*部分(第1~8章)涵盖机器学习的基础理论知识和基本算法,从线性回归到随机森林等,可以帮助你掌握Scikit-Learn的常用方法;第二部份(第9~16章)探讨深度学习和常用框架TensorFlow,手把手教你使用TensorFlow搭建和训练深度神经网络,以及卷积神经网络。 《深度学习实战》 深度学习并没有那么可怕。直到*近,这项机器学习方法还要经过数年的学习才能掌握,但是有了如Keras和TensorFlow这样的框架后,没有机器学习背景的软件工程师也可以快速进入这个领域。通过本书中的技巧,你将学会解决深度学习在生成和分类文本、图像和音乐方面的问题。 本书每章包括完成独立项目所需的几个技巧,如训练一个音乐推荐系统。如果你陷入了困境,作者还在第2章提供了6个技巧来帮助你。本书中的例子用Python语言编写,代码在GitHub上以Python notebook集合的方式提供。 通过本书,你将学会: ■ 创建为真实用户服务的应用 ■ 使用词嵌入计算文本的相似性 ■ 基于维基百科链接建立电影推荐系统 ■ 通过可视化的内部状态了解AI看待世界的原理 ■ 建立一个为文本片段推荐表情符号的模型 ■ 重用预训练的神经网络构建反向图像搜索服务 ■ 比较GAN、自动编码器和LSTM如何生成图标 ■ 检测音乐的风格并检索歌曲集 《TensorFlow学习指南:深度学习系统构建详解》 本书主要介绍如何使用 TensorFlow 框架进行深度学习系统的构建。从基础知识入手,将使用TensorFlow 的各种方式贯穿于整本书的讲解之中,并结合实际的深度学习任务展示终深度学习系统的效果。本书涉及卷积神经网络、循环神经网络等核心的技术,并介绍了用于图像数据和文本序列数据的模型。在后半部分,本书介绍了更加高级的使用 TensorFlow 的技巧,并给出了分布式深度学习系统在TensorFlow 下的构建过程以及如何将训练后的模型导出和部署的方法。通过学习本书,你将能够使用 TensorFlow 完成从简单到高级应用系统构建的技术。 本书适合计算机相关专业的学生、软件工程师、深度学习开发者、架构师、CTO 等技术人员阅读。 . |
目录 |
《机器学习实战:基于Scikit-Learn和TensorFlow》 前言1 部分 机器学习基础 第1章 机器学习概览11 什么是机器学习12 为什么要使用机器学习12 机器学习系统的种类15 监督式/无监督式学习16 批量学习和在线学习21 基于实例与基于模型的学习24 机器学习的主要挑战29 训练数据的数量不足29 训练数据不具代表性30 质量差的数据32 无关特征32 训练数据过度拟合33 训练数据拟合不足34 退后一步35 测试与验证35 练习37 第2章 端到端的机器学习项目39 使用真实数据39 观察大局40 框架问题41 选择性能指标42 检查假设45 获取数据45 创建工作区45 下载数据48 快速查看数据结构49 创建测试集52 从数据探索和可视化中获得洞见56 将地理数据可视化57 寻找相关性59 试验不同属性的组合61 机器学习算法的数据准备62 数据清理63 处理文本和分类属性65 自定义转换器67 特征缩放68 转换流水线68 选择和训练模型70 培训和评估训练集70 使用交叉验证来更好地进行评估72 微调模型74 网格搜索74 随机搜索76 集成方法76 分析模型及其错误76 通过测试集评估系统77 启动、监控和维护系统78 试试看79 练习79 第3章 分类80 MNIST80 训练一个二元分类器82 性能考核83 使用交叉验证测量精度83 混淆矩阵84 精度和召回率86 精度/召回率权衡87 ROC曲线90 多类别分类器93 错误分析95 多标签分类98 多输出分类99 练习100 第4章 训练模型102 线性回归103 标准方程104 计算复杂度106 梯度下降107 批量梯度下降110 随机梯度下降112 小批量梯度下降114 多项式回归115 学习曲线117 正则线性模型121 岭回归121 套索回归123 弹性网络125 早期停止法126 逻辑回归127 概率估算127 训练和成本函数128 决策边界129 Softmax回归131 练习134 第5章 支持向量机136 线性SVM分类136 软间隔分类137 非线性SVM分类139 多项式核140 添加相似特征141 高斯RBF核函数142 计算复杂度143 SVM回归144 工作原理145 决策函数和预测146 训练目标146 二次规划148 对偶问题149 核化SVM149 在线SVM151 练习152 第6章 决策树154 决策树训练和可视化154 做出预测155 估算类别概率157 CART训练算法158 计算复杂度158 基尼不纯度还是信息熵159 正则化超参数159 回归161 不稳定性162 练习163 第7章 集成学习和随机森林165 投票分类器165 bagging和pasting168 Scikit-Learn的bagging和pasting169 包外评估170 Random Patches和随机子空间171 随机森林172 随机树173 特征重要性173 提升法174 AdaBoost175 梯度提升177 堆叠法181 练习184 第8章 降维185 维度的诅咒186 数据降维的主要方法187 投影187 流形学习189 PCA190 保留差异性190 主成分191 低维度投影192 使用Scikit-Learn192 方差解释率193 选择正确数量的维度193 PCA压缩194 增量PCA195 随机PCA195 核主成分分析196 选择核函数和调整超参数197 局部线性嵌入199 其他降维技巧200 练习201 第二部分 神经网络和深度学习 第9章 运行TensorFlow205 安装207 创建一个计算图并在会话中执行208 管理图209 节点值的生命周期210 TensorFlow中的线性回归211 实现梯度下降211 手工计算梯度212 使用自动微分212 使用优化器214 给训练算法提供数据214 保存和恢复模型215 用TensorBoard来可视化图和训练曲线216 命名作用域219 模块化220 共享变量222 练习225 第10章 人工神经网络简介227 从生物神经元到人工神经元227 生物神经元228 具有神经元的逻辑计算229 感知器230 多层感知器和反向传播233 用TensorFlow的高级API来训练MLP236 使用纯TensorFlow训练DNN237 构建阶段237 执行阶段240 使用神经网络241 微调神经网络的超参数242 隐藏层的个数242 每个隐藏层中的神经元数243 激活函数243 练习244 第11章 训练深度神经网络245 梯度消失/爆炸问题245 Xavier初始化和He初始化246 非饱和激活函数248 批量归一化250 梯度剪裁254 重用预训练图层255 重用TensorFlow模型255 重用其他框架的模型256 冻结低层257 缓存冻结层257 调整、丢弃或替换高层258 模型动物园258 无监督的预训练259 辅助任务中的预训练260 快速优化器261 Momentum优化261 Nesterov梯度加速262 AdaGrad263 RMSProp265 Adam优化265 学习速率调度267 通过正则化避免过度拟合269 提前停止269 1和2正则化269 dropout270 范数正则化273 数据扩充274 实用指南275 练习276 第12章 跨设备和服务器的分布式TensorFlow279 一台机器上的多个运算资源280 安装280 管理GPU RAM282 在设备上操作284 并行执行287 控制依赖288 多设备跨多服务器288 开启一个会话290 master和worker服务290 分配跨任务操作291 跨多参数服务器分片变量291 用资源容器跨会话共享状态292 使用TensorFlow队列进行异步通信294 直接从图中加载数据299 在TensorFlow集群上并行化神经网络305 一台设备一个神经网络305 图内与图间复制306 模型并行化308 数据并行化309 练习314 第13章 卷积神经网络315 视觉皮层的组织结构315 卷积层317 过滤器318 多个特征图的叠加319 TensorFlow实现321 内存需求323 池化层323 CNN架构325 LeNet-5326 AlexNet327 GoogLeNet328 ResNet331 练习334 第14章 循环神经网络337 循环神经元337 记忆单元339 输入和输出序列340 TensorFlow中的基本RNN341 通过时间静态展开342 通过时间动态展开344 处理长度可变输入序列344 处理长度可变输出序列345 训练RNN346 训练序列分类器346 训练预测时间序列348 创造性的RNN352 深层RNN353 在多个GPU中分配一个深层RNN354 应用丢弃机制355 多个时间迭代训练的难点356 LSTM单元357 窥视孔连接359 GRU单元359 自然语言处理361 单词嵌入361 用于机器翻译的编码器-解码器网络362 练习364 第15章 自动编码器366 高效的数据表示366 使用不完整的线性自动编码器实现PCA368 栈式自动编码器369 TensorFlow实现370 权重绑定371 一次训练一个自动编码器372 重建可视化374 特征可视化375 使用堆叠的自动编码器进行无监控的预训练376 去噪自动编码器377 TensorFlow 实现378 稀疏自动编码器379 TensorFlow 实现380 变分自动编码器381 生成数字384 其他自动编码器385 练习386 第16章 强化学习388 学习奖励化389 策略搜索390 OpenAI gym 介绍391 神经网络策略394 评估行为:信用分配问题396 策略梯度397 马尔可夫决策过程401 时间差分学习与Q学习405 探索策略406 逼近Q学习407 使用深度Q学习玩吃豆人游戏407 练习414 致谢415 附录A 练习答案416 附录B 机器学习项目清单438 附录C SVM对偶问题444 附录D 自动微分447 附录E 其他流行的ANN架构453 《深度学习实战》 前言1 第1章 工具与技术9 1.1 神经网络的类型9 1.2 数据获取19 1.3 数据预处理27 第2章 摆脱困境34 2.1 确定我们遇到的问题34 2.2 解决运行过程中的错误36 2.3 检查中间结果38 2.4 为后一层选择正确的激活函数39 2.5 正则化和Dropout40 2.6 网络结构、批尺寸和学习率42 第3章 使用词嵌入计算文本相似性44 3.1 使用预训练的词嵌入发现词的相似性45 3.2 Word2vec数学特性47 3.3 可视化词嵌入49 3.4 在词嵌入中发现实体类51 3.5 计算类内部的语义距离55 3.6 在地图上可视化国家数据57 第4章 基于维基百科外部链接构建推荐系统58 4.1 收集数据58 4.2 训练电影嵌入62 4.3 构建电影推荐系统66 4.4 预测简单的电影属性67 第5章 按照示例文本的风格生成文本69 5.1 获取公开领域书籍文本69 5.2 生成类似莎士比亚的文本70 5.3 使用RNN编写代码74 5.4 控制输出温度76 5.5 可视化循环神经网络的活跃程度78 第6章 问题匹配80 6.1 从Stack Exchange网站获取数据80 6.2 使用Pandas探索数据82 6.3 使用Keras对文本进行特征化83 6.4 构建问答模型84 6.5 用Pandas训练模型86 6.6 检查相似性88 第7章 推荐表情符号90 7.1 构建一个简单的情感分类器90 7.2 检验一个简单的分类器93 7.3 使用卷积网络进行情感分析95 7.4 收集Twitter数据97 7.5 一个简单的表情符号预测器99 7.6 Dropout和多层窗口100 7.7 构建单词级模型102 7.8 构建你自己的嵌入104 7.9 使用循环神经网络进行分类106 7.10 可视化一致性/不一致性108 7.11 组合模型111 第8章 Sequence-to-Sequence映射113 8.1 训练一个简单的Sequence-to-Sequence模型113 8.2 从文本中提取对话115 8.3 处理开放词汇表117 8.4 训练seq2seq 聊天机器人119 第9章 复用预训练的图像识别网络123 9.1 加载预训练网络124 9.2 图像预处理124 9.3 推测图像内容126 9.4 使用Flickr API收集一组带标签的图像128 9.5 构建一个分辨猫狗的分类器129 9.6 改进搜索结果131 9.7 复训图像识别网络133 第10章 构建反向图像搜索服务137 10.1 从维基百科中获取图像137 10.2 向N维空间投影图像140 10.3 在高维空间中寻找近邻141 10.4 探索嵌入中的局部邻域143 第11章 检测多幅图像145 11.1 使用预训练的分类器检测多个图像145 11.2 使用Faster RCNN进行目标检测149 11.3 在自己的图像上运行Faster RCNN152 第12章 图像风格155 12.1 可视化卷积神经网络激活值156 12.2 尺度和缩放159 12.3 可视化神经网络所见161 12.4 捕捉图像风格164 12.5 改进损失函数以提升图像相干性168 12.6 将风格迁移至不同图像169 12.7 风格内插171 第13章 用自编码器生成图像173 13.1 从Google Quick Draw中导入绘图174 13.2 为图像创建自编码器176 13.3 可视化自编码器结果178 13.4 从正确的分布中采样图像180 13.5 可视化变分自编码器空间183 13.6 条件变分编码器185 第14章 使用深度网络生成图标189 14.1 获得训练用的图标190 14.2 将图标转换为张量表示193 14.3 使用变分自编码器生成图标194 14.4 使用数据扩充提升自编码器的性能196 14.5 构建生成式对抗网络198 14.6 训练生成式对抗网络200 14.7 显示GAN生成的图标202 14.8 将图标编码成绘图指令204 14.9 训练RNN绘制图标205 14.10 使用RNN生成图标207 第15章 音乐与深度学习210 15.1 为音乐分类器创建训练数据集211 15.2 训练音乐风格检测器213 15.3 对混淆情况进行可视化215 15.4 为已有的音乐编制索引217 15.5 设置Spotify API219 15.6 从Spotify中收集播放列表和歌曲221 15.7 训练音乐推荐系统224 15.8 使用Word2vec模型推荐歌曲225 第16章 生产化部署机器学习系统228 16.1 使用scikit-learn近邻计算嵌入229 16.2 使用Postgres存储嵌入230 16.3 填充和查询Postgres存储的嵌入231 16.4 在Postgres中存储高维模型233 16.5 使用Python编写微服务234 16.6 使用微服务部署Keras模型236 16.7 从Web框架中调用微服务237 16.8 Tensorflow seq2seq模型238 16.9 在浏览器中执行深度学习模型240 16.10 使用TensorFlow服务执行Keras模型243 16.11 在iOS中使用Keras模型245 《TensorFlow学习指南:深度学习系统构建详解》 前言1 第1章 引言5 1.1 走入深度学习5 1.2 TensorFlow:名字中的含义8 1.3 高层次概览9 1.4 本章总结11 第2章 随之流”动:启动与运行TensorFlow12 2.1 安装TensorFlow12 2.2 Hello World14 2.3 MNIST16 2.4 softmax回归17 2.5 本章总结24 第3章 理解TensorFlow基础知识25 3.1 计算图25 3.2 图、会话和提取数据26 3.3 流动的张量32 3.4 变量、占位符和简单的优化41 3.5 本章总结52 第4章 卷积神经网络53 4.1 卷积神经网络简介53 4.2 MNIST:第二轮55 4.3 CIFAR1063 4.4 本章总结71 第5章 文本I:文本及序列的处理,以及TensorBoard可视化72 5.1 序列数据的重要性72 5.2 循环神经网络简介73 5.3 处理RNN的文本序列87 5.4 本章总结97 第6章 文本II:词向量、高级RNN和词嵌入可视化99 6.1 词嵌入介绍99 6.2 word2vec101 6.3 预训练词嵌入,高级RNN110 6.4 本章总结116 第7章 TensorFlow抽象与简化117 7.1 本章概述117 7.2 contrib.learn121 7.3 TFLearn136 7.4 本章总结156 第8章 队列、线程和数据读取158 8.1 输入管道158 8.2 TFRecord159 8.3 队列162 8.4 完全多线程的输入管道168 8.5 本章总结172 第9章 分布式 TensorFlow173 9.1 分布式计算173 9.2 TensorFlow 元素175 9.3 分布式示例180 9.4 本章总结187 第10章 用TensorFlow导出和提供服务模型188 10.1 保存和导出模型188 10.2 TensorFlow Serving简介199 10.3 本章总结209 附录A 模型构建和使用TensorFlow Serving的建议210 |