人工智能
类型
可以朗读
语音朗读
190千字
字数
2021-12-01
发行日期
展开全部
主编推荐语
本书是“AI精研社”规划的“人工智能与大数据技术大讲堂”丛书,书中给出完整的解决方案,帮助读者循序渐进、平滑而高效地成长为合格的人工智能算法实践者。
内容简介
本书从体验手写数字识别(k近邻算法)开始,循序渐进地加深读者对神经网络模型的理解,进而可以设计并实现自己的模型。
本书通过Python+NumPy从零开始构建神经网络模型,强化读者对算法思想的理解,然后通过TensorFlow重新构建这些模型,进一步加深读者对模型的理解。前馈神经网络是深度学习的重要知识,其核心思想是反向传播与梯度下降。
本书从极易理解的示例开始,然后逐渐深入,从而帮助读者充分理解并熟练掌握反向传播与梯度下降算法,为后续学习深度学习技术打下坚实的基础。
本书采用理论与实践并重的风格,先以图文方式讲解算法思想,再用Python+NumPy实现算法,然后给出TensorFlow实现,帮助读者不断地加深对核心算法的理解,提高实际动手能力,从而锻炼将算法思想转化为程序代码的能力。
目录
- 版权信息
- 作者简介
- 前言
- 第1章 环境搭建
- 1.1 下载并安装Python
- 1.2 Python软件环境管理工具Anaconda
- 1.2.1 下载Anaconda
- 1.2.2 安装Anaconda
- 1.2.3 验证Anaconda的安装
- 1.3 通过TUNA加速Anaconda
- 1.3.1 清华大学开源软件镜像站TUNA
- 1.3.2 在Windows中设置Anaconda镜像通道
- 1.3.3 在类UNIX中设置Anaconda镜像通道
- 1.4 使用Jupyter Notebook
- 1.4.1 通过“开始”菜单启动Jupyter Notebook
- 1.4.2 通过命令行启动Jupyter Notebook
- 1.4.3 新建并重命名Notebook
- 1.4.4 安装Jupyter Notebook插件
- 1.5 安装TensorFlow 2.6
- 1.5.1 通过Notebook cell安装TensorFlow 2.6
- 1.5.2 通过pip install命令离线安装TensorFlow
- 1.6 小结与补充说明
- 第2章 使用k近邻算法识别手写数字图像
- 2.1 手写数字图像数据集MNIST
- 2.1.1 使用TensorFlow加载MNIST
- 2.1.2 使用scikit-learn加载MNIST
- 2.2 分类器与准确率
- 2.3 k近邻算法的基本思想
- 2.4 利用k-NN识别MNIST
- 2.4.1 划分数据集
- 2.4.2 识别MNIST与模型评估
- 2.4.3 数据探查
- 2.4.4 性能优化
- 2.4.5 调参
- 2.4.6 最近邻再探查
- 2.5 k-NN中的距离度量
- 2.6 小结与补充说明
- 第3章 感知机算法思想与实现
- 3.1 机器学习的基本分类
- 3.2 鸢尾花数据集iris
- 3.2.1 样本特征
- 3.2.2 样本分类
- 3.2.3 构造简化版iris数据集
- 3.3 感知机分类精简版iris
- 3.3.1 极简体验感知机
- 3.3.2 感知机模型的数学表达
- 3.3.3 极简体验感知机学习算法
- 3.3.4 感知机学习算法的Python实现
- 3.3.5 损失函数与梯度(选修)
- 3.3.6 感知机代码合并
- 3.4 感知机的实现类
- 3.4.1 构造器__init__()
- 3.4.2 预测方法predict()
- 3.4.3 更新模型参数update_params()
- 3.4.4 启动训练fit()
- 3.4.5 重构Perceptron类
- 3.5 小结与补充说明
- 第4章 对数几率回归算法思想与实现
- 4.1 神经网络结构示意图
- 4.2 对数几率回归的数学表达
- 4.3 对数几率函数的Python实现
- 4.4 对数几率回归模型的损失函数
- 4.5 梯度下降法的数学表达(选修)
- 4.6 梯度下降法的Python实现
- 4.7 对数几率回归模型的Python实现
- 4.8 使用对数几率回归模型分类鸢尾花
- 4.8.1 使用LR分类精简版iris数据集
- 4.8.2 统计准确率
- 4.8.3 构造简化版iris数据集
- 4.8.4 划分函数train_test_split()
- 4.8.5 划分iris数据集
- 4.8.6 使用对数几率回归模型分类iris数据集
- 4.9 小结与补充说明
- 第5章 使用TensorFlow实现对数几率回归
- 5.1 深入LR参数更新
- 5.1.1 改进LogisticRegression类的update_weights()方法
- 5.1.2 改进LogisticRegression类的fit()方法
- 5.1.3 使用LR分类鸢尾花数据集并查看日志
- 5.2 使用TensorFlow自动求梯度
- 5.2.1 极简体验TensorFlow自动求梯度
- 5.2.2 NumPy数组的形状与维数
- 5.2.3 使用TensorFlow计算矩阵乘积
- 5.2.4 使用TensorFlow计算LR模型的激活值
- 5.2.5 使用代码定义LR模型的损失函数
- 5.2.6 使用TensorFlow求LR模型的损失函数对激活值的梯度
- 5.2.7 手动计算LR模型的损失函数对权值的梯度
- 5.2.8 使用TensorFlow求LR模型的损失函数对参数的梯度
- 5.3 使用自动求梯度实现LR
- 5.3.1 更新TensorFlow变量
- 5.3.2 实现LogisticRegressionV2类
- 5.3.3 使用LogisticRegressionV2分类精简版iris
- 5.3.4 极简体验模型调参
- 5.4 使用Sequential实现LR
- 5.5 小结与补充说明
- 第6章 LR图像分类
- 6.1 简化版MNIST数据集
- 6.1.1 生成索引数组
- 6.1.2 NumPy数组切片(取元素)
- 6.1.3 数据探查
- 6.1.4 使用np.concatenate()合并数组
- 6.1.5 构建简化版MNIST数据集
- 6.2 LR分类简化版MNIST
- 6.2.1 数据预处理之归一化
- 6.2.2 数据预处理之扁平化
- 6.2.3 LR分类简化版MNIST
- 6.2.4 修复LogisticRegression类
- 6.2.5 测试修复
- 6.3 小批量梯度下降
- 6.3.1 向量化编程
- 6.3.2 构造小批量样本
- 6.3.3 计算LR损失函数关于线性模型的导数dz
- 6.3.4 计算LR损失函数关于权值向量的导数dw
- 6.3.5 计算LR损失函数关于偏置量的导数db
- 6.3.6 小批量模型训练
- 6.3.7 小批量LR分类简化版MNIST
- 6.3.8 查看模型预测失误的样本
- 6.4 新问题与修复
- 6.4.1 发现问题与复现问题
- 6.4.2 原因分析及解决方法
- 6.4.3 向量化predict()方法
- 6.4.4 修复LogisticRegression类
- 6.4.5 评估模型方法evaluate()
- 6.4.6 提前终止控制开关
- 6.4.7 提前终止策略方法(选修)
- 6.4.8 重构LogisticRegression类
- 6.5 小结与补充说明
- 第7章 代码重构与计算图简介
- 7.1 构建神经网络的基本流程
- 7.1.1 模型架构及超参数
- 7.1.2 初始化模型参数
- 7.1.3 前向传播、反向传播与计算图
- 7.2 重构LogisticRegression类
- 7.2.1 重新构造简化版MNIST数据集
- 7.2.2 探查简化版MNIST数据集
- 7.2.3 LR分类简化版MNIST
- 7.2.4 重构LogisticRegression类
- 7.2.5 测试重构版LogisticRegression类
- 7.3 使用TensorFlow定义并训练模型
- 7.4 体验TensorBoard
- 7.5 随机化
- 7.5.1 使用np.random.random()生成随机数
- 7.5.2 随机初始化权值向量
- 7.5.3 使用np.random.shuffle()混淆数组
- 7.5.4 随机访问样本
- 7.5.5 随机梯度下降
- 7.5.6 小批量随机梯度下降
- 7.6 小结与补充说明
- 第8章 两层神经网络
- 8.1 单层神经网络之局限性
- 8.1.1 线性可分
- 8.1.2 线性不可分
- 8.2 两层神经网络前向传播
- 8.2.1 部分记号说明
- 8.2.2 矩阵乘积的代码实现
- 8.2.3 隐层前向传播的数学表达
- 8.2.4 隐层前向传播的代码实现
- 8.2.5 输出层前向传播的数学表达
- 8.2.6 输出层前向传播的代码实现
- 8.3 两层神经网络反向传播
- 8.3.1 输出层反向传播的数学表达
- 8.3.2 输出层反向传播的代码实现
- 8.3.3 隐层反向传播的数学表达
- 8.3.4 隐层反向传播的代码实现
- 8.4 两层神经网络实现异或运算
- 8.5 实现MLPClassifier类
- 8.5.1 构造器__init__()
- 8.5.2 参数初始化initialize_params()
- 8.5.3 前向传播forward_propagation()
- 8.5.4 反向传播backward_propagation()
- 8.5.5 参数更新update_params()
- 8.5.6 模型输出
- 8.5.7 模型启动训练fit()
- 8.5.8 测试MLPClassifier类
- 8.6 小结与补充说明
- 第9章 多层神经网络
- 9.1 多层感知机部分记号说明
- 9.2 重构多层神经网络
- 9.2.1 参数初始化
- 9.2.2 前向传播
- 9.2.3 反向传播参数更新
- 9.2.4 测试新版本
- 9.3 重构MLPClassifier类
- 9.3.1 构造器__init__()
- 9.3.2 参数初始化initialize_params()
- 9.3.3 前向传播forward_propagation()
- 9.3.4 反向传播参数更新
- 9.3.5 模型输出
- 9.3.6 模型启动训练fit()
- 9.3.7 测试MLPClassifier类
- 9.3.8 修复MLPClassifier类
- 9.3.9 测试修复
- 9.4 使用TensorFlow实现多层神经网络
- 9.4.1 使用TensorFlow解决异或问题
- 9.4.2 使用TensorFlow验证MLPClassifier类
- 9.5 使用MLPClassifier类实现对数几率回归
- 9.5.1 使用LR实现逻辑与函数
- 9.5.2 使用MLPClassifier类实现对数几率回归
- 9.5.3 使用TensorFlow验证代码实现
- 9.6 小结与补充说明
- 附录 标量、向量与矩阵简介
- 后记
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。