科技
类型
可以朗读
语音朗读
330千字
字数
2023-04-01
发行日期
展开全部
主编推荐语
从初学者角度,带你全面了解现代机器学习技术。
内容简介
本书是一本在PyTorch环境下学习机器学习和深度学习的综合指南,可以作为初学者的入门教程,也可以作为读者开发机器学习项目时的参考书。
本书讲解清晰、示例生动,深入介绍了机器学习方法的基础知识,不仅提供了构建机器学习模型的说明,而且提供了构建机器学习模型和解决实际问题的基本准则。本书添加了基于PyTorch的深度学习内容,介绍了新版Scikit-Learn。本书涵盖了多种用于文本和图像分类的机器学习与深度学习方法,介绍了用于生成新数据的生成对抗网络(GAN)和用于训练智能体的强化学习。
本书还介绍了深度学习的新动态,包括图神经网络和用于自然语言处理(NLP)的大型transformer。
目录
- 版权信息
- 译者序
- 序
- 前言
- 作者简介
- 审校者简介
- CHAPTER 1 第1章 赋予计算机从数据中学习的能力
- 1.1 将数据转化为知识的智能系统
- 1.2 三种机器学习类型
- 1.2.1 用于预测未来的监督学习
- 1.2.2 解决交互问题的强化学习
- 1.2.3 发现数据中隐藏规律的无监督学习
- 1.3 基本术语与符号
- 1.3.1 本书中使用的符号和约定
- 1.3.2 机器学习术语
- 1.4 构建机器学习系统的路线图
- 1.4.1 数据预处理——让数据可用
- 1.4.2 训练和选择预测模型
- 1.4.3 使用未见过的数据对模型进行评估
- 1.5 使用Python实现机器学习算法
- 1.5.1 从Python Package Index中安装Python和其他软件包
- 1.5.2 使用Anaconda Python软件包管理器
- 1.5.3 科学计算、数据科学和机器学习软件包
- 1.6 本章小结
- CHAPTER 2 第2章 训练简单的机器学习分类算法
- 2.1 人工神经元
- 2.1.1 人工神经元的定义
- 2.1.2 感知机学习规则
- 2.2 使用Python实现感知机学习算法
- 2.2.1 面向对象的感知机API
- 2.2.2 使用鸢尾花数据集训练感知机
- 2.3 自适应线性神经元与算法收敛
- 2.3.1 使用梯度下降法最小化损失函数
- 2.3.2 在Python中实现Adaline
- 2.3.3 通过特征缩放改进梯度下降
- 2.3.4 大规模机器学习与随机梯度下降
- 2.4 本章小结
- CHAPTER 3 第3章 Scikit-Learn机器学习分类算法之旅
- 3.1 分类算法的选择
- 3.2 学习Scikit-Learn的第一步
- 3.3 用逻辑回归算法建模分类概率
- 3.3.1 逻辑回归与条件概率
- 3.3.2 用逻辑损失函数更新模型权重
- 3.3.3 从Adaline的代码实现到逻辑回归的代码实现
- 3.3.4 用Scikit-Learn训练逻辑回归模型
- 3.3.5 使用正则化避免模型过拟合
- 3.4 基于最大分类间隔的支持向量机
- 3.4.1 理解最大分类间隔
- 3.4.2 使用松弛变量解决非线性可分问题
- 3.4.3 Scikit-Learn中另外一种实现
- 3.5 使用核支持向量机求解非线性问题
- 3.5.1 处理线性不可分数据的核方法
- 3.5.2 使用核方法在高维空间中寻找分离超平面
- 3.6 决策树学习
- 3.6.1 最大化信息增益
- 3.6.2 构建决策树
- 3.6.3 多棵决策树组成随机森林
- 3.7 基于惰性学习策略的k近邻算法
- 3.8 本章小结
- CHAPTER 4 第4章 构建良好的训练数据集
- 4.1 处理缺失值
- 4.1.1 识别表格数据中的缺失值
- 4.1.2 删除含有缺失值的样本或特征
- 4.1.3 填补缺失值
- 4.1.4 Scikit-Learn的估计器
- 4.2 处理类别数据
- 4.2.1 用pandas实现类别数据编码
- 4.2.2 映射有序特征
- 4.2.3 类别标签编码
- 4.2.4 标称特征的独热编码
- 4.3 将数据集划分为训练数据集和测试数据集
- 4.4 使特征具有相同的尺度
- 4.5 选择有意义的特征
- 4.5.1 用L1和L2正则化对模型复杂度进行惩罚
- 4.5.2 L2正则化的几何解释
- 4.5.3 L1正则化与稀疏解
- 4.5.4 序贯特征选择算法
- 4.6 用随机森林评估特征重要性
- 4.7 本章小结
- CHAPTER 5 第5章 通过降维方法压缩数据
- 5.1 无监督降维的主成分分析方法
- 5.1.1 主成分分析的主要步骤
- 5.1.2 提取主成分的步骤
- 5.1.3 总方差和被解释的方差
- 5.1.4 特征变换
- 5.1.5 用Scikit-Learn实现主成分分析
- 5.1.6 评估特征的贡献
- 5.2 监督数据压缩的线性判别分析方法
- 5.2.1 主成分分析与线性判别分析
- 5.2.2 线性判别分析基本原理
- 5.2.3 计算散布矩阵
- 5.2.4 为新特征子空间选择线性判别式
- 5.2.5 将样本投影到新的特征空间
- 5.2.6 用Scikit-Learn实现线性判别分析
- 5.3 非线性降维和可视化
- 5.3.1 非线性降维的不足
- 5.3.2 使用t-SNE可视化数据
- 5.4 本章小结
- CHAPTER 6 第6章 模型评估和超参数调优的最佳实践
- 6.1 使用pipeline方法简化工作流程
- 6.1.1 加载威斯康星乳腺癌数据集
- 6.1.2 在pipeline中集成转换器和估计器
- 6.2 使用k折交叉验证评估模型性能
- 6.2.1 holdout交叉验证
- 6.2.2 k折交叉验证
- 6.3 用学习曲线和验证曲线调试算法
- 6.3.1 使用学习曲线解决偏差和方差问题
- 6.3.2 使用验证曲线解决过拟合和欠拟合问题
- 6.4 通过网格搜索微调机器学习模型
- 6.4.1 通过网格搜索调整超参数
- 6.4.2 通过随机搜索更广泛地探索超参数的配置
- 6.4.3 连续减半超参数的搜索算法
- 6.4.4 嵌套交叉验证
- 6.5 模型性能评估指标
- 6.5.1 混淆矩阵
- 6.5.2 精确率和召回率
- 6.5.3 绘制ROC曲线
- 6.5.4 多分类器评价指标
- 6.5.5 处理类别不均衡问题
- 6.6 本章小结
- CHAPTER 7 第7章 组合不同模型的集成学习
- 7.1 集成学习
- 7.2 通过绝对多数投票组合分类器
- 7.2.1 实现一个简单的基于绝对多数投票的集成分类器
- 7.2.2 使用绝对多数投票原则进行预测
- 7.2.3 评估和调整集成分类器
- 7.3 bagging
- 7.3.1 bagging简介
- 7.3.2 使用bagging对葡萄酒数据集中的样本进行分类
- 7.4 通过自适应boosting提高弱学习器的性能
- 7.4.1 boosting的工作原理
- 7.4.2 用Scikit-Learn实现AdaBoost
- 7.5 梯度boosting
- 7.5.1 比较AdaBoost与梯度boosting
- 7.5.2 通用的梯度boosting算法概述
- 7.5.3 解释用于分类的梯度boosting算法
- 7.5.4 用梯度boosting分类的例子
- 7.5.5 使用XGBoost
- 7.6 本章小结
- CHAPTER 8 第8章 用机器学习进行情感分析
- 8.1 对IMDb影评数据进行文本处理
- 8.1.1 获取影评数据集
- 8.1.2 将影评数据集预处理成更易使用的格式
- 8.2 词袋模型
- 8.2.1 将单词转换为特征向量
- 8.2.2 通过词频-逆文档频率评估单词的相关性
- 8.2.3 文本数据清洗
- 8.2.4 将文档处理成token
- 8.3 训练用于文档分类的逻辑回归模型
- 8.4 处理更大的数据
- 8.5 用潜在狄利克雷分配实现主题建模
- 8.5.1 使用LDA分解文本文档
- 8.5.2 用Scikit-Learn实现LDA
- 8.6 本章小结
- CHAPTER 9 第9章 预测连续目标变量的回归分析
- 9.1 线性回归简介
- 9.1.1 简单线性回归
- 9.1.2 多元线性回归
- 9.2 探索艾姆斯住房数据集
- 9.2.1 将艾姆斯住房数据集加载到DataFrame中
- 9.2.2 可视化数据集的重要特征
- 9.2.3 使用相关矩阵查看相关性
- 9.3 最小二乘线性回归模型的实现
- 9.3.1 用梯度下降法求解回归参数
- 9.3.2 用Scikit-Learn估计回归模型的系数
- 9.4 使用RANSAC拟合稳健回归模型
- 9.5 评估线性回归模型的性能
- 9.6 使用正则化方法进行回归
- 9.7 将线性回归模型转化为曲线
- 9.7.1 使用Scikit-Learn添加多项式项
- 9.7.2 建模艾姆斯住房数据集中的非线性关系
- 9.8 使用随机森林处理非线性关系
- 9.8.1 决策树回归
- 9.8.2 随机森林回归
- 9.9 本章小结
- CHAPTER 10 第10章 处理无标签数据的聚类分析
- 10.1 使用k均值算法对样本分组
- 10.1.1 用Scikit-Learn实现k均值聚类
- 10.1.2 k均值++——更聪明的簇初始化方法
- 10.1.3 硬聚类与软聚类
- 10.1.4 用肘方法求解最优簇的数量
- 10.1.5 通过轮廓图量化聚类质量
- 10.2 把簇组织成层次树
- 10.2.1 自底向上的聚类
- 10.2.2 在距离矩阵上进行分层聚类
- 10.2.3 热度图与树状图结合
- 10.2.4 通过Scikit-Learn进行凝聚聚类
- 10.3 通过DBSCAN定位高密度区域
- 10.4 本章小结
- CHAPTER 11 第11章 从零开始实现多层人工神经网络
- 11.1 用人工神经网络建立复杂函数模型
- 11.1.1 单层神经网络
- 11.1.2 多层神经网络结构
- 11.1.3 利用前向传播激活神经网络
- 11.2 识别手写数字
- 11.2.1 获取并准备MNIST数据集
- 11.2.2 实现多层感知机
- 11.2.3 神经网络训练代码
- 11.2.4 评估神经网络的性能
- 11.3 训练人工神经网络
- 11.3.1 损失函数的计算
- 11.3.2 理解反向传播
- 11.3.3 通过反向传播训练神经网络
- 11.4 关于神经网络的收敛性
- 11.5 关于神经网络实现的最后几句话
- 11.6 本章小结
- CHAPTER 12 第12章 用PyTorch并行训练神经网络
- 12.1 PyTorch和模型的训练性能
- 12.1.1 性能挑战
- 12.1.2 什么是PyTorch
- 12.1.3 如何学习PyTorch
- 12.2 学习PyTorch的第一步
- 12.2.1 安装PyTorch
- 12.2.2 在PyTorch中创建张量
- 12.2.3 对张量形状和数据类型进行操作
- 12.2.4 张量数学运算
- 12.2.5 拆分、堆叠和连接张量
- 12.3 在PyTorch中构建输入pipeline
- 12.3.1 使用已有张量创建PyTorch DataLoader
- 12.3.2 将两个张量组合成一个联合数据集
- 12.3.3 乱序、批处理和重复
- 12.3.4 用存储在本地硬盘的文件创建数据集
- 12.3.5 从torchvision.datasets库中获取数据集
- 12.4 在PyTorch中构建神经网络模型
- 12.4.1 PyTorch神经网络模块
- 12.4.2 构建线性回归模型
- 12.4.3 使用torch.nn和torch.optim模块训练模型
- 12.4.4 构建多层感知机对鸢尾花数据集分类
- 12.4.5 在测试数据集上评估训练好的模型
- 12.4.6 保存和重新加载训练好的模型
- 12.5 为多层神经网络选择激活函数
- 12.5.1 回顾逻辑函数
- 12.5.2 使用softmax函数估计多分类中的类别概率
- 12.5.3 使用双曲正切函数拓宽输出范围
- 12.5.4 整流线性单元
- 12.6 本章小结
- CHAPTER 13 第13章 深入探讨PyTorch的工作原理
- 13.1 PyTorch的主要功能
- 13.2 PyTorch的计算图
- 13.2.1 理解计算图
- 13.2.2 在PyTorch中创建计算图
- 13.3 用于存储和更新模型参数的PyTorch张量
- 13.4 通过自动微分计算梯度
- 13.4.1 计算损失函数关于可微变量的梯度
- 13.4.2 自动微分
- 13.4.3 对抗样本
- 13.5 使用torch.nn模块简化常见结构
- 13.5.1 使用nn.Sequential实现模型
- 13.5.2 选择损失函数
- 13.5.3 解决XOR分类问题
- 13.5.4 使用nn.Module灵活构建模型
- 13.5.5 使用PyTorch编写自定义层
- 13.6 项目1:预测汽车的燃油效率
- 13.6.1 使用特征列
- 13.6.2 训练DNN回归模型
- 13.7 项目2:分类MNIST手写数字
- 13.8 高级PyTorch API:PyTorch Lightning简介
- 13.8.1 构建PyTorch Lightning模型
- 13.8.2 为Lightning设置数据加载器
- 13.8.3 使用PyTorch Lightning Trainer类训练模型
- 13.8.4 使用TensorBoard评估模型
- 13.9 本章小结
- CHAPTER 14 第14章 使用深度卷积神经网络对图像进行分类
- 14.1 卷积神经网络的组成模块
- 14.1.1 了解卷积神经网络和层次特征
- 14.1.2 离散卷积
- 14.1.3 下采样层
- 14.2 构建卷积神经网络
- 14.2.1 处理多个输入通道
- 14.2.2 使用L2范数和dropout对神经网络正则化
- 14.2.3 分类任务的损失函数
- 14.3 使用PyTorch实现深度卷积神经网络
- 14.3.1 多层卷积神经网络结构
- 14.3.2 数据加载和预处理
- 14.3.3 使用torch.nn模块实现卷积神经网络
- 14.4 使用卷积神经网络对人脸图像进行微笑分类
- 14.4.1 加载CelebA数据集
- 14.4.2 图像转换和数据增广
- 14.4.3 训练卷积神经网络微笑分类器
- 14.5 本章小结
- CHAPTER 15 第15章 用循环神经网络对序列数据建模
- 15.1 序列数据
- 15.1.1 序列数据建模
- 15.1.2 序列数据与时间序列数据
- 15.1.3 序列数据的表示
- 15.1.4 序列建模方法
- 15.2 用于序列数据建模的循环神经网络
- 15.2.1 循环神经网络的循环机制
- 15.2.2 循环神经网络激活值计算
- 15.2.3 隐藏层循环与输出层循环
- 15.2.4 远距离学习面临的问题
- 15.2.5 长短期记忆网络
- 15.3 在PyTorch中实现循环神经网络
- 15.3.1 项目1:基于IMDb影评进行情感分析
- 15.3.2 项目2:在PyTorch中实现字符级语言建模
- 15.4 本章小结
- CHAPTER 16 第16章 transformer:利用注意力机制改善自然语言处理效果
- 16.1 带有注意力机制的循环神经网络
- 16.1.1 帮助循环神经网络获取信息的注意力机制
- 16.1.2 循环神经网络中最初的注意力机制
- 16.1.3 用双向循环神经网络模型处理输入数据
- 16.1.4 根据上下文向量得到输出
- 16.1.5 计算注意力权重
- 16.2 自注意力机制
- 16.2.1 自注意力机制的基本形式
- 16.2.2 自注意力机制的参数化:缩放点积注意力
- 16.3 注意力是唯一需要的:最初的transformer
- 16.3.1 通过多头注意力编码上下文嵌入向量
- 16.3.2 学习语言模型:解码器和掩码多头注意力
- 16.3.3 实现细节:位置编码和层归一化
- 16.4 利用未标注的数据构建大型语言模型
- 16.4.1 预训练和微调transformer模型
- 16.4.2 使用未标注数据的GPT模型
- 16.4.3 使用GPT-2生成新文本
- 16.4.4 双向预训练的BERT模型
- 16.4.5 两全其美的模型:BART
- 16.5 用PyTorch微调BERT模型
- 16.5.1 加载IMDb影评数据集
- 16.5.2 数据集分词
- 16.5.3 加载和微调预训练BERT模型
- 16.5.4 使用Trainer API微调transformer
- 16.6 本章小结
- CHAPTER 17 第17章 用于合成新数据的生成对抗网络
- 17.1 生成对抗网络
- 17.1.1 自编码器
- 17.1.2 用于合成新数据的生成模型
- 17.1.3 用生成对抗网络生成新样本
- 17.1.4 理解生成对抗网络模型中生成器和判别器网络的损失函数
- 17.2 从零开始实现生成对抗网络
- 17.2.1 用谷歌Colab训练生成对抗网络模型
- 17.2.2 实现生成器和判别器网络
- 17.2.3 定义训练数据集
- 17.2.4 训练生成对抗网络模型
- 17.3 用卷积GAN和Wasserstein GAN提高生成图像的质量
- 17.3.1 转置卷积
- 17.3.2 批归一化
- 17.3.3 实现生成器和判别器
- 17.3.4 两个分布之间的差异度度量
- 17.3.5 在生成对抗网络实践中使用EM距离
- 17.3.6 梯度惩罚
- 17.3.7 使用WGAN-GP实现深度卷积生成对抗网络
- 17.3.8 模式坍塌
- 17.4 其他生成对抗网络应用
- 17.5 本章小结
- CHAPTER 18 第18章 用于捕获图数据关系的图神经网络
- 18.1 图数据简介
- 18.1.1 无向图
- 18.1.2 有向图
- 18.1.3 标签图
- 18.1.4 将分子结构表示为图
- 18.2 理解图卷积
- 18.2.1 图卷积的基本原理
- 18.2.2 实现一个基本的图卷积函数
- 18.3 用PyTorch从零开始实现图神经网络
- 18.3.1 定义NodeNetwork模型
- 18.3.2 NodeNetwork图卷积层编码
- 18.3.3 添加一个全局池化层处理大小不同的图
- 18.3.4 准备数据加载工具
- 18.3.5 使用NodeNetwork进行预测
- 18.3.6 使用PyTorch Geometric库实现图神经网络
- 18.4 其他图神经网络层和最新的进展
- 18.4.1 谱图卷积
- 18.4.2 池化
- 18.4.3 数据归一化
- 18.4.4 图神经网络文献
- 18.5 本章小结
- CHAPTER 19 第19章 在复杂环境中做决策的强化学习
- 19.1 从经验中学习概述
- 19.1.1 了解强化学习
- 19.1.2 智能体与环境
- 19.2 强化学习的理论基础
- 19.2.1 马尔可夫决策过程
- 19.2.2 阶段性任务与持续性任务
- 19.2.3 强化学习术语
- 19.2.4 使用贝尔曼方程的动态规划
- 19.3 强化学习算法
- 19.3.1 动态规划
- 19.3.2 蒙特卡罗强化学习
- 19.3.3 时序差分学习
- 19.4 实现第一个强化学习算法
- 19.4.1 OpenAI Gym工具包介绍
- 19.4.2 用Q学习解决网格世界问题
- 19.5 深度Q学习概览
- 19.5.1 训练深度Q学习网络模型
- 19.5.2 实现深度Q学习算法
- 19.6 本章小结及本书总结
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。