Python深度学习入门:从零构建CNN和RNN
书籍作者:塞思·韦德曼 |
ISBN:9787115555649 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:2473 |
创建日期:2021-10-07 |
发布日期:2021-10-07 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
本书全面介绍了深度学习知识,借助数学公式、示意图和代码,旨在帮助读者从数学层面、概念层面和应用层面理解神经网络。读者可以跟随本书构建和训练神经网络模型,从而解决实际问题。另外,本书着重介绍卷积神经网络和循环神经网络,并提供PyTorch开源神经网络库的使用方法,有助于学习构建更高级的神经网络架构。
作者简介
作者介绍
塞思.韦德曼(Seth Weidman),SentiLink公司数据科学家。他曾在Facebook公司从事数据科学工作,并为多家企业开发了深度学习培训课程。塞思善于通过简单明了的方式解释复杂的概念。除了讲授课程,他还热衷于技术写作,并撰写了大量PyTorch教程。
译者介绍
郑天民,日本足利工业大学信息工程学硕士,研究方向为人工智能在大规模调度系统中的应用,在国际三大索引上发表多篇论文。拥有十余年软件行业从业经验,前后经历过多家大型上市公司、互联网电商、健康类独角兽公司,担任CTO、系统分析架构师和技术总监等职务。阿里云MVP、腾讯云TVP、TGO鲲鹏会会员。著有《Spring响应式微服务》《系统架构设计》《向技术管理者转型》《微服务设计原理与架构》《微服务架构实战》等。
编辑推荐
1.前Facebook数据科学家带你领略深度学习领域的全貌;
2.从数学、示意图、Python三个维度立体地认识深度学习;
3.提供PyTorch开源神经网络库的使用方法;
4.提供示例代码。
深度学习技术的发展如火如荼,这些知识正迅速成为机器学习从业者甚至许多软件开发工程师的“加分项”。深度学习是一个立体的领域,仅从数学层面或代码层面学习,难免以偏概全,无法融会贯通。
本书作者认为,理解深度学习和神经网络需要多种思维模型。因此,本书从数学、示意图、Python代码三个维度帮助你立体地理解每一个概念,带你领略深度学习领域的全貌,从内到外地理解构建神经网络的每一步。你将学到以下内容。
- 为理解深度学习的概念和原理构建多种思维模型。
- 掌握嵌套函数、链式法则等数学概念。
- 掌握学习率衰减、权重初始化、dropout等优化技巧。
- 从零构建CNN和RNN等常见的神经网络架构。
- 使用PyTorch实现神经网络。
目录
第 1章 基本概念 1
1.1 函数 2
1.2 导数 6
1.3 嵌套函数 8
1.4 链式法则 9
1.5 示例介绍 12
1.6 多输入函数 15
1.7 多输入函数的导数 16
1.8 多向量输入函数 17
1.9 基于已有特征创建新特征 18
1.10 多向量输入函数的导数 20
1.11 向量函数及其导数:再进一步 22
1.12 包含两个二维矩阵输入的计算图 25
1.13 有趣的部分:后向传递 28
1.14 小结 34
第 2章 基本原理 35
2.1 监督学习概述 36
2.2 监督学习模型 38
2.3 线性回归 38
2.3.1 线性回归:示意图 39
2.3.2 线性回归:更有用的示意图和数学 41
2.3.3 加入截距项 41
2.3.4 线性回归:代码 42
2.4 训练模型 42
2.4.1 计算梯度:示意图 43
2.4.2 计算梯度:数学和一些代码 43
2.4.3 计算梯度:完整的代码 44
2.4.4 使用梯度训练模型 45
2.5 评估模型:训练集与测试集 46
2.6 评估模型:代码 46
2.7 从零开始构建神经网络 49
2.7.1 步骤1:一系列线性回归 49
2.7.2 步骤2:一个非线性函数 50
2.7.3 步骤3:另一个线性回归 50
2.7.4 示意图 51
2.7.5 代码 52
2.7.6 神经网络:后向传递 53
2.8 训练和评估第 一个神经网络 55
2.9 小结 57
第3章 从零开始深度学习 58
3.1 定义深度学习 58
3.2 神经网络的构成要素:运算 59
3.2.1 示意图 60
3.2.2 代码 61
3.3 神经网络的构成要素:层 62
3.4 在构成要素之上构建新的要素 64
3.4.1 层的蓝图 66
3.4.2 稠密层 68
3.5 NeuralNetwork类和其他类 69
3.5.1 示意图 70
3.5.2 代码 70
3.5.3 Loss类 71
3.6 从零开始构建深度学习模型 72
3.6.1 实现批量训练 73
3.6.2 NeuralNetwork: 代码 73
3.7 优化器和训练器 75
3.7.1 优化器 76
3.7.2 训练器 77
3.8 整合 79
3.9 小结与展望 80
第4章 扩展 81
4.1 关于神经网络的一些直觉 82
4.2 softmax交叉熵损失函数 84
4.2.1 组件1:softmax函数 84
4.2.2 组件2:交叉熵损失 85
4.2.3 关于激活函数的注意事项 87
4.3 实验 90
4.3.1 数据预处理 90
4.3.2 模型 91
4.3.3 实验:softmax交叉熵损失函数 92
4.4 动量 92
4.4.1 理解动量 93
4.4.2 在Optimizer类中实现动量 93
4.4.3 实验:带有动量的随机梯度下降 94
4.5 学习率衰减 95
4.5.1 学习率衰减的类型 95
4.5.2 实验:学习率衰减 97
4.6 权重初始化 97
4.6.1 数学和代码 99
4.6.2 实验:权重初始化 100
4.7 dropout 100
4.7.1 定义 100
4.7.2 实现 101
4.7.3 实验:dropout 102
4.8 小结 104
第5章 CNN 105
5.1 神经网络与表征学习 105
5.1.1 针对图像数据的不同架构 106
5.1.2 卷积运算 107
5.1.3 多通道卷积运算 108
5.2 卷积层 109
5.2.1 实现意义 110
5.2.2 卷积层与全连接层的区别 111
5.2.3 利用卷积层进行预测:Flatten层 111
5.2.4 池化层 112
5.3 实现多通道卷积运算 114
5.3.1 前向传递 114
5.3.2 后向传递 117
5.3.3 批处理 120
5.3.4 二维卷积 121
5.3.5 最后一个元素:通道 123
5.4 使用多通道卷积运算训练CNN 126
5.4.1 Flatten运算 126
5.4.2 完整的Conv2D层 127
5.4.3 实验 128
5.5 小结 129
第6章 RNN 130
6.1 关键限制:处理分支 131
6.2 自动微分 132
6.3 RNN的动机 137
6.4 RNN简介 138
6.4.1 RNN的第 一个类:RNNLayer 139
6.4.2 RNN的第二个类:RNNNode 140
6.4.3 整合RNNNode类和RNNLayer类 140
6.4.4 后向传递 142
6.5 RNN:代码 143
6.5.1 RNNLayer类 144
6.5.2 RNNNode类的基本元素 147
6.5.3 vanilla RNNNode类 148
6.5.4 vanilla RNNNode类的局限性 150
6.5.5 GRUNode类 151
6.5.6 LSTMNode类 154
6.5.7 基于字符级RNN语言模型的数据表示 156
6.5.8 其他语言建模任务 157
6.5.9 组合RNNLayer类的变体 158
6.5.10 将全部内容整合在一起 158
6.6 小结 159
第7章 PyTorch 160
7.1 PyTorch Tensor 160
7.2 使用PyTorch进行深度学习 161
7.2.1 PyTorch元素:Model类及其Layer类 162
7.2.2 使用PyTorch实现神经网络基本要素:DenseLayer类 163
7.2.3 示例:基于PyTorch的波士顿房价模型 164
7.2.4 PyTorch元素:Optimizer类和Loss类 165
7.2.5 PyTorch元素:Trainer类 165
7.2.6 PyTorch优化学习技术 168
7.3 PyTorch中的CNN 168
7.4 PyTorch中的LSTM 173
7.5 后记:通过自编码器进行无监督学习 175
7.5.1 表征学习 175
7.5.2 应对无标签场景的方法 176
7.5.3 在PyTorch中实现自编码器 176
7.5.4 更强大的无监督学习测试及解决方案 181
7.6 小结 182
附录 深入探讨 183
关于作者 192
关于封面 192