内容简介
计算机视觉、自然语言处理和语音识别是目前深度学习领域很热门的三大应用方向,本书旨在帮助零基础或基础较为薄弱的读者入门深度学习,达到能够独立使用深度学习知识处理计算机视觉问题的水平。通过阅读本书,读者将学到人工智能的基础概念及Python编程技能,掌握PyTorch的使用方法,学到深度学习相关的理论知识,比如卷积神经网络、循环神经网络、自动编码器,等等。在掌握深度学习理论和编程技能之后,读者还会学到如何基于PyTorch深度学习框架实战计算机视觉。本书中的大量实例可让读者在循序渐进地学习的同时,不断地获得成就感。本书面向对深度学习技术感兴趣、但是相关基础知识较为薄弱或者零基础的读者。作者简介:
唐进民深入理解深度学习与计算机视觉知识体系,有扎实的PyTorch、Python和数学功底。长期活跃于Github、知乎等平台并分享与深度学习相关的文章,具有一定的阅读量和人气。此前还在某AI网络教育平台兼职Mentor,辅导新学员入门机器学习和深度学习。
目 录:
第1章 浅谈人工智能、神经网络和计算机视觉 11.1 人工还是智能 1
1.2 人工智能的三起两落 2
1.2.1 两起两落 2
1.2.2 卷土重来 3
1.3 神经网络简史 5
1.3.1 生物神经网络和人工神经网络 5
1.3.2 M-P模型 6
1.3.3 感知机的诞生 9
1.3.4 你好,深度学习 10
1.4 计算机视觉 11
1.5 深度学习 12
1.5.1 图片分类 12
1.5.2 图像的目标识别和语义分割 13
1.5.3 自动驾驶 13
1.5.4 图像风格迁移 14
第2章 相关的数学知识 15
2.1 矩阵运算入门 15
2.1.1 标量、向量、矩阵和张量 15
2.1.2 矩阵的转置 17
2.1.3 矩阵的基本运算 18
2.2 导数求解 22
2.2.1 一阶导数的几何意义 23
2.2.2 初等函数的求导公式 24
2.2.3 初等函数的和、差、积、商求导 26
2.2.4 复合函数的链式法则 27
第3章 深度神经网络基础 29
3.1 监督学习和无监督学习 29
3.1.1 监督学习 30
3.1.2 无监督学习 32
3.1.3 小结 33
3.2 欠拟合和过拟合 34
3.2.1 欠拟合 34
3.2.2 过拟合 35
3.3 后向传播 36
3.4 损失和优化 38
3.4.1 损失函数 38
3.4.2 优化函数 39
3.5 激活函数 42
3.5.1 Sigmoid 44
3.5.2 tanh 45
3.5.3 ReLU 46
3.6 本地深度学习工作站 47
3.6.1 GPU和CPU 47
3.6.2 配置建议 49
第4章 卷积神经网络 51
4.1 卷积神经网络基础 51
4.1.1 卷积层 51
4.1.2 池化层 54
4.1.3 全连接层 56
4.2 LeNet模型 57
4.3 AlexNet模型 59
4.4 VGGNet模型 61
4.5 GoogleNet 65
4.6 ResNet 69
第5章 Python基础 72
5.1 Python简介 72
5.2 Jupyter Notebook 73
5.2.1 Anaconda的安装与使用 73
5.2.2 环境管理 76
5.2.3 环境包管理 77
5.2.4 Jupyter Notebook的安装 79
5.2.5 Jupyter Notebook的使用 80
5.2.6 Jupyter Notebook常用的快捷键 86
5.3 Python入门 88
5.3.1 Python的基本语法 88
5.3.2 Python变量 92
5.3.3 常用的数据类型 94
5.3.4 Python运算 99
5.3.5 Python条件判断语句 107
5.3.6 Python循环语句 109
5.3.7 Python中的函数 113
5.3.8 Python中的类 116
5.4 Python中的NumPy 119
5.4.1 NumPy的安装 119
5.4.2 多维数组 119
5.4.3 多维数组的基本操作 125
5.5 Python中的Matplotlib 133
5.5.1 Matplotlib的安装 133
5.5.2 创建图 133
第6章 PyTorch基础 142
6.1 PyTorch中的Tensor 142
6.1.1 Tensor的数据类型 143
6.1.2 Tensor的运算 146
6.1.3 搭建一个简易神经网络 153
6.2 自动梯度 156
6.2.1 torch.autograd和Variable 156
6.2.2 自定义传播函数 159
6.3 模型搭建和参数优化 162
6.3.1 PyTorch之torch.nn 162
6.3.2 PyTorch之torch.optim 167
6.4 实战手写数字识别 169
6.4.1 torch和torchvision 170
6.4.2 PyTorch之torch.transforms 171
6.4.3 数据预览和数据装载 173
6.4.4 模型搭建和参数优化 174
第7章 迁移学习 180
7.1 迁移学习入门 180
7.2 数据集处理 181
7.2.1 验证数据集和测试数据集 182
7.2.2 数据预览 182
7.3 模型搭建和参数优化 185
7.3.1 自定义VGGNet 185
7.3.2 迁移VGG16 196
7.3.3 迁移ResNet50 203
7.4 小结 219
第8章 图像风格迁移实战 220
8.1 风格迁移入门 220
8.2 PyTorch图像风格迁移实战 222
8.2.1 图像的内容损失 222
8.2.2 图像的风格损失 223
8.2.3 模型搭建和参数优化 224
8.2.4 训练新定义的卷积神经网络 226
8.3 小结 232
第9章 多模型融合 233
9.1 多模型融合入门 233
9.1.1 结果多数表决 234
9.1.2 结果直接平均 236
9.1.3 结果加权平均 237
9.2 PyTorch之多模型融合实战 239
9.3 小结 246
第10章 循环神经网络 247
10.1 循环神经网络入门 247
10.2 PyTorch之循环神经网络实战 249
10.3 小结 257
第11章 自动编码器 258
11.1 自动编码器入门 258
11.2 PyTorch之自动编码实战 259
11.2.1 通过线性变换实现自动编码器模型 260
11.2.2 通过卷积变换实现自动编码器模型 267
11.3 小结 273