商品详情
《Python神经网络入门与实战》
定价:69.00元
作者:王凯 编著
ISBN 978-7-301-31629-0
装帧:平装
出版日期:2020.11
出版社:北京大学出版社
开本:16开
页码:248
内容简介
本书从神经网络的基础知识讲起,逐步深入到Python进阶实战,通过对各种实用的第三方库进行详细讲解与实战运用,让读者不但能够更加深入地了解神经网络,而且能够简单高效地搭建自己的神经网络,即使没有专业背景知识也能轻松入门神经网络。
本书分为 11章,涵盖的主要内容有神经网络概述,神经网络基础知识,计算机程序的特点,神经网络优化算法,搭 建Python环境,Python基础知识,深度学习框架PyTorch基础知识,NumPy简介与使用,OpenCV简介与使用,OS遍历文件夹,Python中Matplotlib可视化绘图,Lenet-5、AlexNet、VGG16网络模型,回归问题和分类问题,猫狗识别程序开发,验证码识别程序开发,过拟合问题与解决方法,梯度消失与爆炸,加速神经网络训练的方法,人工智能的未来发展趋势等。
本书内容通俗易懂,案例丰富,实用性强,特别适合神经网络的零基础入门读者阅读,也适合 Python 程序员、PyTorch爱好者等阅读。
作者简介
王凯,西安电子科技大学人工智能学院计算机专业研究生,曾参加过全国大学生验证码识别大赛并获得三等奖,长期从事神经网络的研究,具有丰富的开发实践经验。
目 录
第1章 神经网络概述 1
1.1 神经网络简介 2
1.1.1 神经网络的定义 2
1.1.2 神经网络可解决的问题 3
1.2 神经网络的灵感来源 3
1.2.1 对人类认知过程的传统认知 3
1.2.2 对人类认知过程的现代认知 4
1.2.3 神经元连接的灵感 4
1.3 为什么要学习神经网络 4
1.3.1 神经网络的发展 4
1.3.2 学习神经网络有什么用 5
1.4 怎样学习神经网络 6
1.4.1 选择一门编程语言 6
1.4.2 对算法的理解 8
1.4.3 写博客 8
1.5 小结 9
第2章 神经网络基础知识 10
2.1 感知器模型 11
2.1.1 神经元细胞的本质 11
2.1.2 感知器模型的构建 11
2.2 训练感知器 13
2.2.1 计算误差 13
2.2.2 误差反向传播 13
2.2.3 训练示例 14
2.3 激活函数 15
2.3.1 激活函数的定义 16
2.3.2 Sigmoid函数 16
2.3.3 Tanh函数 17
2.3.4 ReLU函数 18
2.4 损失函数 20
2.4.1 损失函数的定义及作用 20
2.4.2 绝对值损失函数 20
2.4.3 均方差损失函数 21
2.4.4 交叉熵损失函数 23
2.5 单层神经网络 23
2.5.1 单层神经网络的结构 23
2.5.2 单层神经网络的参数 25
2.5.3 单层神经网络的前向传播过程 25
2.6 训练单层神经网络 26
2.6.1 梯度下降算法 26
2.6.2 反向传播算法 29
2.6.3 理解反向传播 31
2.7 多层神经网络 32
2.7.1 多层神经网络的结构 33
2.7.2 参数向量化 33
2.8 卷积神经网络 36
2.8.1 卷积神经网络简介 36
2.8.2 卷积核 37
2.8.3 卷积操作 38
2.8.4 池化操作 41
2.8.5 卷积层 42
2.8.6 池化层 43
2.8.7 全连接层 44
2.9 小结 44
第3章 实战前的预备知识 46
3.1 计算机程序 47
3.1.1 计算机程序简介 47
3.1.2 计算机程序的执行过程 48
3.1.3 计算机程序的开发流程 49
3.1.4 计算机程序的特点 50
3.2 加速训练 51
3.2.1 CPU与GPU 51
3.2.2 归一化 52
3.2.3 其他学习算法 53
3.2.4 Mini-Batch 54
3.3 构建样本集 55
3.3.1 Tensor类型 55
3.3.2 训练集 56
3.3.3 测试集 57
3.3.4 交叉验证集 58
3.4 小结 59
第4章 Python入门与实战 60
4.1 Python简介 61
4.1.1 什么是Python 61
4.1.2 Python的特点 61
4.1.3 为什么要用Python搭建神经网络 62
4.2 搭建Python环境 63
4.2.1 安装Python 3.7(Anaconda) 63
4.2.2 安装CUDA 10.0 66
4.2.3 安装PyCharm 68
4.2.4 PyCharm新建项目 70
4.2.5 PyCharm的一些基本设置 71
4.2.6 PyCharm运行程序 73
4.3 Python基础 74
4.3.1 输入语句与输出语句 74
4.3.2 变量的作用与定义 76
4.3.3 变量的命名规则和习惯 78
4.3.4 运算符 79
4.3.5 数据类型 81
4.3.6 if语句 82
4.3.7 循环语句 83
4.3.8 函数 85
4.3.9 类 85
4.3.10 列表和元组 87
4.3.11 引入模块 87
4.3.12 注释 88
4.4 编写第一个感知器程序 88
4.4.1 需求分析 88
4.4.2 主程序 89
4.4.3 感知器前向传播程序 90
4.4.4 误差计算程序 91
4.4.5 运行结果 91
4.5 小结 92
第5章 深度学习框架PyTorch入门与实战 93
5.1 PyTorch简介 94
5.1.1 什么是PyTorch 94
5.1.2 PyTorch的特点 94
5.1.3 为什么要选择PyTorch搭建神经网络 95
5.2 安装PyTorch框架 95
5.2.1 conda命令 96
5.2.2 选择PyTorch版本进行安装 97
5.3 PyTorch基础 99
5.3.1 构建输入/输出 99
5.3.2 构建网络结构 100
5.3.3 定义优化器与损失函数 102
5.3.4 保存和加载网络 103
5.4 小实战:用PyTorch搭建一个神经网络以学习异或运算 104
5.4.1 需求分析 104
5.4.2 训练程序 105
5.4.3 测试程序 107
5.5 小结 109
第6章 Python搭建神经网络进阶 110
6.1 NumPy简介 111
6.1.1 NumPy的基本功能 111
6.1.2 NumPy的数据类型 111
6.2 NumPy的使用 112
6.2.1 安装NumPy 112
6.2.2 创建数组 112
6.2.3 存储和读取数组 114
6.2.4 索引和切片 115
6.2.5 重塑数组 116
6.2.6 数组的运算 117
6.3 OpenCV简介 119
6.3.1 OpenCV概述 119
6.3.2 OpenCV的基本功能 120
6.4 OpenCV的使用 120
6.4.1 安装OpenCV 121
6.4.2 图像读取与显示 121
6.4.3 图像缩放 122
6.4.4 色彩空间转换 123
6.4.5 直方图均衡化 125
6.4.6 图像保存 126
6.5 文件夹中文件的遍历 127
6.5.1 OS模块简介 128
6.5.2 path模块 128
6.5.3 删除文件 129
6.5.4 创建文件夹 129
6.5.5 文件遍历 130
6.6 构建和读取数据集 132
6.6.1 构建数据集 132
6.6.2 读取数据集 135
6.7 PyTorch中卷积神经网络有关的接口 136
6.7.1 卷积层接口 136
6.7.2 反卷积层接口 137
6.8 小结 137
第7章 实战1:回归问题和分类问题 139
7.1 Python中绘图方法简介 140
7.1.1 Matplotlib简介 140
7.1.2 安装Matplotlib 140
7.1.3 散点图绘制 141
7.1.4 绘图显示的小设置 144
7.1.5 曲线绘制 145
7.1.6 设置坐标轴 146
7.1.7 动态绘图 148
7.2 回归问题 149
7.3 用Python搭建一个解决回归问题的神经网络 151
7.3.1 准备工作 151
7.3.2 构建网络 152
7.3.3 训练网络 153
7.3.4 完整程序 154
7.4 分类问题 155
7.5 用Python搭建一个解决分类问题的神经网络 156
7.5.1 准备工作 156
7.5.2 构建网络 159
7.5.3 训练网络 160
7.5.4 可视化 161
7.5.5 完整程序 162
7.6 小结 164
第8章 实战2:猫狗识别问题 165
8.1 实战目标 166
8.1.1 目标分析 166
8.1.2 样本集 167
8.2 实现思路 167
8.2.1 构建样本集 168
8.2.2 测试样本集 169
8.2.3 构建网络 170
8.2.4 训练网络 171
8.2.5 测试网络 172
8.3 完整程序及运行结果 172
8.3.1 构建样本集程序 172
8.3.2 测试样本集程序 174
8.3.3 构建网络程序 175
8.3.4 训练网络程序 177
8.3.5 可视化训练过程 179
8.3.6 测试网络程序 180
8.3.7 模拟实际运用 181
8.4 对结果的思考 182
8.4.1 训练集和测试集准确率的对比 182
8.4.2 准确率低的原因 183
8.4.3 训练过程的启示 184
8.5 小结 184
第9章 一些经典的网络 185
9.1 LeNet-5网络模型 186
9.1.1 LeNet-5网络简介 186
9.1.2 LeNet-5网络结构 186
9.1.3 三维卷积 188
9.1.4 多维卷积 190
9.1.5 LeNet-5代码实现 191
9.2 AlexNet网络模型 192
9.2.1 AlexNet网络简介 193
9.2.2 AlexNet网络结构 193
9.2.3 Same卷积 194
9.2.4 Softmax分类器 196
9.2.5 AlexNet代码实现 197
9.3 VGG16网络模型 198
9.3.1 VGG16网络简介 198
9.3.2 VGG16网络结构 198
9.4 小结 200
第10章 实战3:验证码识别问题 201
10.1 实战目标 202
10.1.1 目标分析 202
10.1.2 生成样本集 203
10.2 实现思路 205
10.2.1 构建样本集 206
10.2.2 构建网络 207
10.2.3 训练网络 208
10.2.4 测试网络 209
10.3 完整程序及运行结果 209
10.3.1 验证码分割程序 209
10.3.2 构建训练集程序 211
10.3.3 构建网络程序 212
10.3.4 训练网络程序 213
10.3.5 测试网络程序 215
10.3.6 模拟实际运用 216
10.4 对结果的思考 217
10.4.1 训练集和测试集准确率的对比 217
10.4.2 识别错误的原因 218
10.5 小结 219
第11章 优化网络 220
11.1 神经网络现存的几个问题 221
11.1.1 无法真正模拟人脑 221
11.1.2 大样本训练缓慢 222
11.1.3 深度网络训练困难 222
11.1.4 梯度消失和爆炸 224
11.1.5 白盒问题 225
11.2 过拟合问题 226
11.2.1 什么是过拟合 226
11.2.2 解决过拟合问题的几种方法 227
11.2.3 正则化 228
11.3 怎样选择每一层的节点数目 230
11.3.1 输入层和输出层的节点数目 230
11.3.2 隐含层的节点数目 230
11.4 如何加速训练 231
11.4.1 采用其他优化算法 231
11.4.2 采用GPU训练 232
11.4.3 设置合适的学习率 232
11.4.4 在合适的时间停止训练 233
11.5 人工智能的未来发展趋势 233
11.5.1 人工智能的发展现状 233
11.5.2 人工智能的发展趋势 234
11.6 小结 234
- 北京大学出版社旗舰店 (微信公众号认证)
- 【发票】在订单留言电子邮箱、发票抬头、税号、(统一开电子发票,缺一项都不能开票,自行下载打印)
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...