Python机器学习实践指南
内容提要
作者简介
审阅者简介
译者简介
译者序
第1章 Python机器学习的生态系统
1.1 数据科学/机器学习的工作流程
1.1.1 获取
1.1.2 检查和探索
1.1.3 清理和准备
1.1.4 建模
1.1.5 评估
1.1.6 部署
1.2 Python库和功能
1.2.1 获取
1.2.2 检查
1.2.3 准备
1.2.4 建模和评估
1.2.5 部署
1.3 设置机器学习的环境
1.4 小结
第2章 构建应用程序,发现低价的公寓
2.1 获取公寓房源数据
使用import.io抓取房源数据
2.2 检查和准备数据
2.2.1 分析数据
2.2.2 可视化数据
2.3 对数据建模
2.3.1 预测
2.3.2 扩展模型
2.4 小结
第3章 构建应用程序,发现低价的机票
3.1 获取机票价格数据
3.2 使用高级的网络爬虫技术检索票价数据
3.3 解析DOM以提取定价数据
通过聚类技术识别异常的票价
3.4 使用IFTTT发送实时提醒
3.5 整合在一起
3.6 小结
第4章 使用逻辑回归预测IPO市场
4.1 IPO市场
4.1.1 什么是IPO
4.1.2 近期IPO市场表现
4.1.3 基本的IPO策略
4.2 特征工程
4.3 二元分类
4.4 特征的重要性
4.5 小结
第5章 创建自定义的新闻源
5.1 使用Pocket应用程序,创建一个监督训练的集合
5.1.1 安装Pocket的Chrome扩展程序
5.1.2 使用Pocket API来检索故事
5.2 使用embed.ly API下载故事的内容
5.3 自然语言处理基础
5.4 支持向量机
5.5 IFTTT与文章源、Google表单和电子邮件的集成
通过IFTTT设置新闻源和Google表单
5.6 设置你的每日个性化新闻简报
5.7 小结
第6章 预测你的内容是否会广为流传
6.1 关于病毒性,研究告诉我们了些什么
6.2 获取分享的数量和内容
6.3 探索传播性的特征
6.3.1 探索图像数据
6.3.2 探索标题
6.3.3 探索故事的内容
6.4 构建内容评分的预测模型
6.5 小结
第7章 使用机器学习预测股票市场
7.1 市场分析的类型
7.2 关于股票市场,研究告诉我们些什么
7.3 如何开发一个交易策略
7.3.1 延长我们的分析周期
7.3.2 使用支持向量回归,构建我们的模型
7.3.3 建模与动态时间扭曲
7.4 小结
第8章 建立图像相似度的引擎
8.1 图像的机器学习
8.2 处理图像
8.3 查找相似的图像
8.4 了解深度学习
8.5 构建图像相似度的引擎
8.6 小结
第9章 打造聊天机器人
9.1 图灵测试
9.2 聊天机器人的历史
9.3 聊天机器人的设计
9.4 打造一个聊天机器人
9.5 小结
第10章 构建推荐引擎
10.1 协同过滤
10.1.1 基于用户的过滤
10.1.2 基于项目的过滤
10.2 基于内容的过滤
10.3 混合系统
10.4 构建推荐引擎
10.5 小结
欢迎来到异步社区!
TensorFlow机器学习项目实战
内容提要
作者简介
审稿人简介
第1章 探索和转换数据
1.1 TensorFlow的主要数据结构——张量
1.1.1 张量的属性——阶、形状和类型
1.张量的阶
2.张量的形状
3.张量的数据类型
1.1.2 创建新的张量
1.从numpy数组到TensorFlow张量和从TensorFlow张量到numpy数组
2.有用的方法
1.1.3 动手工作——与TensorFlow交互
1.2 处理计算工作流——TensorFlow的数据流图
1.2.1 建立计算图
1.2.2 数据供给
1.2.3 变量
1.2.4 保存数据流图
1.计算图序列化语言——协议缓存
2.数据流图构建示例
1.3 运行我们的程序——会话
1.4 基本张量方法
1.4.1 简单矩阵运算
1.约简
2.张量分割
1.4.2 序列
1.4.3 张量形状变换
1.4.4 数据流结构和结果可视化——TensorBoard
1.TensorBoard怎样工作
2.与TensorBoard的GUI交互
1.5 从磁盘读取信息
1.5.1 列表格式——CSV
1.5.2 读取图像数据
1.5.3 加载和处理图像
1.5.4 读取标准TensorFlow格式
1.6 小结
第2章 聚类
2.1 从数据中学习——无监督学习
2.2 聚类的概念
2.3 k均值
2.3.1 k均值的机制
2.3.2 算法迭代判据
2.3.3 k均值算法拆解
2.3.4 k均值的优缺点
2.4 k最近邻
2.4.1 k最近邻算法的机制
2.4.2 k-nn的优点和缺点
2.5 有用的库和使用示例
2.5.1 matplotlib绘图库
2.5.2 scikit-learn数据集模块
2.5.3 人工数据集类型
1.块状数据集
2.环形数据集
2.6 例1——对人工数据集的k均值聚类
2.6.1 数据集描述和加载
2.6.2 模型架构
2.6.3 损失函数描述和优化循环
2.6.4 停止条件
2.6.5 结果描述
2.6.6 每次迭代中的质心变化
2.6.7 完整源代码
2.6.8 k均值用于环状数据集
2.7 例2——对人工数据集使用最近邻算法
2.7.1 数据集生成
2.7.2 模型结构
2.7.3 损失函数描述
2.7.4 停止条件
2.7.5 结果描述
2.7.6 完整源代码
2.8 小结
第3章 线性回归
3.1 单变量线性模型方程
3.2 选择损失函数
3.3 最小化损失函数
3.3.1 最小方差的全局最小值
3.3.2 迭代方法:梯度下降
3.4 示例部分
3.4.1 TensorFlow中的优化方法——训练模块
3.4.2 tf.train.Optimizer类
3.4.3 其他Optimizer实例类型
3.5 例1——单变量线性回归
3.5.1 数据集描述
3.5.2 模型结构
3.5.3 损失函数描述和Optimizer
3.5.4 停止条件
3.5.5 结果描述
3.5.6 完整源代码
3.6 例2——多变量线性回归
3.6.1 有用的库和方法
3.6.2 Pandas库
3.6.3 数据集描述
3.6.4 模型结构
3.6.5 损失函数和Optimizer
3.6.6 停止条件
3.6.7 结果描述
3.6.8 完整源代码
3.7 小结
第4章 逻辑回归
4.1 问题描述
4.2 Logistic函数的逆函数——Logit函数
4.2.1 伯努利分布
4.2.2 联系函数
4.2.3 Logit函数
4.2.4 对数几率函数的逆函数——Logistic函数
1.Logistic函数作为线性模型的泛化
2.Logistic函数的属性
3.损失函数
4.2.5 多类分类应用——Softmax回归
1.损失函数
2.为迭代方法进行数据正则化
3.一位有效输出表示
4.3 例1——单变量逻辑回归
4.3.1 有用的库和方法
4.3.2 数据集描述和加载
1.CHDAGE数据集
2.CHDAGE数据集格式
3.数据集加载和预处理实现
4.3.3 模型结构
4.3.4 损失函数描述和优化器循环
4.3.5 停止条件
4.3.6 结果描述
4.3.7 完整源代码
4.3.8 图像化表示
4.4 例2——基于skflow单变量逻辑回归
4.4.1 有用的库和方法
4.4.2 数据集描述
4.4.3 模型结构
4.4.4 结果描述
4.4.5 完整源代码
4.5 小结
第5章 简单的前向神经网络
5.1 基本概念
5.1.1 人工神经元
1.最简单的人工神经元——感知器
2.感知器算法
5.1.2 神经网络层
1.神经网络激活函数
2.梯度和反向传播算法
3.最小化损失函数:梯度下降
4.神经网络的选择-分类vs回归
5.1.3 有用的库和方法
1.TensorFlow激活函数
2.TensorFlow中损失优化方法
3.Sklearn预处理函数
5.2 例1——非线性模拟数据回归
5.2.1 数据集描述和加载
5.2.2 数据集预处理
5.2.3 模型结构——损失函数描述
5.2.4 损失函数优化器
5.2.5 准确度和收敛测试
5.2.6 完整源代码
5.2.7 结果描述
5.3 例2——通过非线性回归,对汽车燃料效率建模
5.3.1 数据集描述和加载
5.3.2 数据预处理
5.3.3 模型架构
5.3.4 准确度测试
5.3.5 结果描述
5.3.6 完整源代码
5.4 例3——多类分类:葡萄酒分类
5.4.1 数据集描述和加载
5.4.2 数据集预处理
5.4.3 模型架构
5.4.4 损失函数描述
5.4.5 损失函数优化器
5.4.6 收敛性测试
5.4.7 结果描述
5.4.8 完整源代码
5.5 小结
第6章 卷积神经网络
6.1 卷积神经网络的起源
6.1.1 卷积初探
1.连续卷积
2.离散卷积
3.核与卷积
4.卷积操作的解释
5.在TensorFlow中使用卷积
6.其他的卷积操作
7.示例代码——对灰度图像采用卷积操作
8.卷积核对结果的影响
6.1.2 降采样操作——池化
1.降采样层的属性
2.不变性
3.降采样层的性能
4.在TensorFlow中使用池化操作
5.其他的池化操作
6.示例代码
6.1.3 提高效率——dropout操作
1.在TensorFlow中应用dropout
2.代码示例
6.1.4 卷积类型层构建办法
1.卷积层
2.降采样层
6.2 例1——MNIST数字分类
6.2.1 数据集描述和加载
6.2.2 数据预处理
6.2.3 模型结构
6.2.4 损失函数描述
6.2.5 损失函数优化器
6.2.6 准确性测试
6.2.7 结果描述
6.2.8 完整源代码
6.3 例2——CIFAR10数据集的图像分类
6.3.1 数据集描述和加载
6.3.2 数据集预处理
6.3.3 模型结构
6.3.4 损失函数描述和优化器
6.3.5 训练和准确性测试
6.3.6 结果描述
6.3.7 完整源代码
6.4 小结
第7章 循环神经网络和LSTM
7.1 循环神经网络
7.1.1 梯度爆炸和梯度消失
7.1.2 LSTM神经网络
1.门操作——一种基本组件
2.操作步骤
7.1.3 其他RNN结构
7.1.4 TensorFlow LSTM有用的类和方法
1.tf.nn.rnn_cell.BasicLSTMCell类
2.MultiRNNCell(RNNCell)类
3.learn.ops.split_squeeze(dim, num_split, tensor_in)
7.2 例1——能量消耗、单变量时间序列数据预测
7.2.1 数据集描述和加载
7.2.2 数据预处理
7.2.3 模型结构
7.2.4 损失函数描述
7.2.5 收敛检测
7.2.6 结果描述
7.2.7 完整源代码
7.3 例2——创作巴赫风格的曲目
7.3.1 字符级模型
7.3.2 字符串序列和概率表示
7.3.3 使用字符对音乐编码——ABC音乐格式
1.ABC格式的构成
2.哥德堡变奏曲
7.3.4 有用的库和方法
1.保存和恢复变量和模型
2.加载和保存数据的伪代码
7.3.5 数据集描述和加载
7.3.6 网络训练
7.3.7 数据集预处理
1.字典定义
2.模型架构
7.3.8 损失函数描述
7.3.9 停止条件
7.3.10 结果描述
7.3.11 完整源代码
7.4 小结
第8章 深度神经网络
8.1 深度神经网络的定义
8.2 深度网络结构的历史变迁
8.2.1 LeNet 5
8.2.2 Alexnet
8.2.3 VGG模型
8.2.4 第一代Inception模型
8.2.5 第二代Inception模型
8.2.6 第三代Inception模型
8.2.7 残差网络(ResNet)
8.2.8 其他的深度神经网络结构
8.3 例子——VGG艺术风格转移
8.3.1 有用的库和方法
8.3.2 数据集描述和加载
8.3.3 数据集预处理
8.3.4 模型结构
8.3.5 损失函数
1.内容损失函数
2.损失函数优化循环
8.3.6 收敛性测试
8.3.7 程序执行
8.3.8 完整源代码
8.4 小结
第9章 规模化运行模型——GPU和服务
9.1 TensorFlow中的GPU支持
9.2 打印可用资源和设备参数
9.2.1 计算能力查询
9.2.2 选择CPU用于计算
9.2.3 设备名称
9.3 例1——将一个操作指派给GPU
9.4 例2——并行计算Pi的数值
9.4.1 实现方法
9.4.2 源代码
9.5 分布式TensorFlow
9.5.1 分布式计算组件
1.作业
2.任务
3.服务器
4.综合回顾
9.5.2 创建TensorFlow集群
1.ClusterSpec定义格式
2.创建tf.train.Sever
9.5.3 集群操作——发送计算方法到任务
9.5.4 分布式编码结构示例
9.6 例3——分布式Pi计算
9.6.1 服务器端脚本
9.6.2 客户端脚本
9.7 例4——在集群上运行分布式模型
9.8 小结
第10章 库的安装和其他技巧
10.1 Linux安装
10.1.1 安装要求
10.1.2 Ubuntu安装准备(安装操作的前期操作)
2.测试安装是否成功
4.Virtualenv安装方法
5.环境测试
6.Docker安装方法
10.1.4 Linux下从源码安装TensorFlow
1.安装Git代码版本管理器
2.安装Bazel构建工具
4.安装CUDA系统包
6.配置TensorFlow的构建环境
7.构建TensorFlow
10.2 Windows安装
10.2.1 经典的Docker工具箱方法
10.2.2 安装步骤
1.下载Docker工具箱安装文件
2.创建Docker机器
10.3 MacOS X安装
10.4 小结
欢迎来到异步社区!
TensorFlow技术解析与实战
内容提要
序
第一篇 基础篇
第1章 人工智能概述
1.1 什么是人工智能
1.2 什么是深度学习
1.3 深度学习的入门方法
1.4 什么是TensorFlow
1.5 为什么要学TensorFlow
1.5.1 TensorFlow的特性
1.5.2 使用TensorFlow的公司
1.5.3 TensorFlow的发展
1.6 机器学习的相关赛事
1.6.2 Kaggle
1.6.3 天池大数据竞赛
1.7 国内的人工智能公司
1.8 小结
第2章 TensorFlow环境的准备
2.1 下载TensorFlow 1.1.0
2.2 基于pip的安装
2.2.1 Mac OS环境准备
2.2.2 Ubuntu/Linux环境准备
2.2.3 Windows环境准备
2.3 基于Java的安装
2.4 从源代码安装
2.5 依赖的其他模块
2.5.1 numpy
2.5.2 matplotlib
2.5.3 jupyter
2.5.5 librosa
2.5.6 nltk
2.5.7 keras
2.5.8 tflearn
2.6 小结
第3章 可视化TensorFlow
3.1 PlayGround
3.1.1 数据
3.1.2 特征
3.1.3 隐藏层
3.1.4 输出
3.2 TensorBoard[2]
3.2.1 SCALARS面板
3.2.3 AUDIO面板
3.2.4 GRAPHS面板
3.2.5 DISTRIBUTIONS面板
3.2.6 HISTOGRAMS面板
3.2.7 EMBEDDINGS面板
3.3 可视化的例子
3.3.1 降维分析
3.3.2 嵌入投影仪
3.4 小结
第4章 TensorFlow基础知识
4.1 系统架构
4.2 设计理念
4.3 编程模型[5]
4.3.1 边
4.3.2 节点
4.3.3 其他概念
4.4 常用API
4.4.1 图、操作和张量
4.4.2 可视化
4.5 变量作用域
4.5.1 variable_scope示例
4.5.2 name_scope示例
4.6 批标准化
4.6.1 方法
4.6.2 优点
4.6.3 示例
4.7 神经元函数及优化方法
4.7.1 激活函数
4.7.2 卷积函数
4.7.3 池化函数
4.7.4 分类函数
4.7.5 优化方法
4.8 模型的存储与加载
4.8.1 模型的存储与加载
4.8.2 图的存储与加载
4.9 队列和线程
4.9.1 队列
4.9.2 队列管理器
4.9.3 线程和协调器
4.10 加载数据
4.10.1 预加载数据
4.10.2 填充数据
4.10.3 从文件读取数据
4.11 实现一个自定义操作
4.11.1 步骤
4.11.2 最佳实践
4.12 小结
第5章 TensorFlow源代码解析
5.1.1 contirb
5.1.2 core
5.1.3 examples
5.1.4 g3doc
5.1.5 python
5.1.6 tensorboard
5.2 TensorFlow源代码的学习方法
5.3 小结
第6章 神经网络的发展及其TensorFlow实现
6.1 卷积神经网络
6.2 卷积神经网络发展
6.2.1 网络加深
6.2.2 增强卷积层的功能
6.2.3 从分类任务到检测任务
6.2.4 增加新的功能模块
6.3 MNIST的AlexNet实现
6.3.1 加载数据
6.3.2 构建网络模型
6.3.3 训练模型和评估模型
6.4 循环神经网络[15]
6.5 循环神经网络发展
6.5.1 增强隐藏层的功能
6.5.2 双向化及加深网络
6.6 TensorFlow Model Zoo
6.7 其他研究进展
6.7.1 强化学习
6.7.2 深度森林
6.7.3 深度学习与艺术
6.8 小结
第7章 TensorFlow的高级框架
7.1 TFLearn
7.1.1 加载数据
7.1.2 构建网络模型
7.1.3 训练模型
7.2 Keras
7.2.1 Keras的优点
7.2.2 Keras的模型[3]
7.2.3 Keras的使用
7.3 小结
第二篇 实战篇
第8章 第一个TensorFlow程序
8.1 TensorFlow的运行方式
8.1.1 生成及加载数据
8.1.2 构建网络模型
8.1.3 训练模型
8.2 超参数的设定
8.3 小结
第9章 TensorFlow在MNIST中的应用
9.1 MNIST数据集简介
9.1.1 训练集的标记文件
9.1.2 训练集的图片文件
9.1.3 测试集的标记文件
9.1.4 测试集的图片文件
9.2 MNIST的分类问题
9.2.1 加载数据
9.2.2 构建回归模型
9.2.3 训练模型
9.2.4 评估模型
9.3 训练过程的可视化
9.4 MNIST的卷积神经网络[4]
9.4.1 加载数据
9.4.2 构建模型
9.4.3 训练模型和评估模型
9.5 MNIST的循环神经网络[5]
9.5.1 加载数据
9.5.2 构建模型
9.5.3 训练数据及评估模型
9.6 MNIST的无监督学习
9.6.1 自编码网络[7]
9.6.2 TensorFlow的自编码网络实现[10]
9.7 小结
第10章 人脸识别
10.1 人脸识别简介
10.2 人脸识别的技术流程
10.2.1 人脸图像采集及检测
10.2.2 人脸图像预处理
10.2.3 人脸图像特征提取
10.2.4 人脸图像匹配与识别
10.3 人脸识别的分类
10.3.1 人脸检测
10.3.2 人脸关键点检测
10.3.3 人脸验证
10.3.4 人脸属性检测
10.4 人脸检测[2]
10.4.1 LFW数据集
10.4.2 数据预处理
10.4.3 进行检测
10.5 性别和年龄识别[8]
10.5.1 数据预处理
10.5.2 构建模型
10.5.3 训练模型
10.5.4 验证模型
10.6 小结
第11章 自然语言处理
11.1 模型的选择
11.2 英文数字语音识别[3]
11.2.1 定义输入数据并预处理数据
11.2.2 定义网络模型
11.2.3 训练模型
11.2.4 预测模型
11.3 智能聊天机器人
11.3.1 原理
11.3.2 最佳实践
11.4 小结
第12章 图像与语音的结合
12.1 看图说话模型
12.1.1 原理
12.1.2 最佳实践
12.2 小结
第13章 生成式对抗网络
13.1 生成式对抗网络的原理
13.2 生成式对抗网络的应用
13.3 生成式对抗网络的实现[4]
13.4 生成式对抗网络的改进
13.5 小结
第三篇 提高篇
第14章 分布式TensorFlow
14.1 分布式原理
14.1.1 单机多卡和分布式
14.1.2 分布式部署方式
14.2 分布式架构[3]
14.2.1 客户端、主节点和工作节点的关系
14.2.2 客户端、主节点和工作节点的交互过程
14.3 分布式模式
14.3.1 数据并行
14.3.2 同步更新和异步更新
14.3.3 模型并行
14.4 分布式API[12]
14.5 分布式训练代码框架
14.6 分布式最佳实践[13]
14.7 小结
第15章 TensorFlow线性代数编译框架XLA
15.1 XLA的优势
15.2 XLA的工作原理
15.3 JIT编译方式
15.3.1 打开JIT编译
15.3.2 将操作符放在XLA设备上
15.4 JIT编译在MNIST上的实现
15.5 小结
第16章 TensorFlow Debugger[1]
16.1 Debugger的使用示例
16.2 远程调试方法
16.3 小结
第17章 TensorFlow和Kubernetes结合
17.1 为什么需要Kubernetes
17.2 分布式TensorFlow在Kubernetes中的运行
17.2.1 部署及运行
17.2.2 其他应用
17.3 小结
第18章 TensorFlowOnSpark
18.1 TensorFlowOnSpark的架构[2]
18.2 TensorFlowOnSpark在MNIST上的实践[5]
18.3 小结
第19章 TensorFlow移动端应用
19.1 移动端应用原理
19.1.1 量化[2]
19.1.2 优化矩阵乘法运算
19.2 iOS系统实践
19.2.1 环境准备
19.2.2 编译演示程序并运行
19.2.3 自定义模型的编译及运行
19.3 Android系统实践[14]
19.3.1 环境准备
19.3.2 编译演示程序并运行
19.3.3 自定义模型的编译及运行
19.4 树莓派实践
19.5 小结
第20章 TensorFlow的其他特性
20.1 TensorFlow Serving[1]
20.2 TensorFlow Flod[7]
20.3 TensorFlow计算加速
20.3.1 CPU加速
20.3.2 TPU加速和FPGA加速
20.4 小结
第21章 机器学习的评测体系
21.1 人脸识别的性能指标
21.2 聊天机器人的性能指标
21.3 机器翻译的评价方法
21.3.1 BLEU
21.3.2 METEOR
21.4 常用的通用评价指标
21.4.1 ROC和AUC
21.4.2 AP和mAP
21.5 小结
附录A 公开数据集
A.1 图片数据集
A.2 人脸数据集
A.3 视频数据集
A.4 问答数据集
A.5 自动驾驶数据集
A.6 年龄、性别数据集
附录B 项目管理经验小谈
B.1 管理的激进与保守问题
B.1.1 激进派
B.1.2 保守派
B.1.3 保守派和激进派的区别
B.2 公司效率损失及规避
B.3 小结
欢迎来到异步社区!