《实战深度学习算法:零起点通关神经 *** 模型(基于Python和NumPy实现)》是一本深度学习领域的入门书籍,由徐彬撰写,电子工业出版社于2019年9月出版。该书适合对深度学习有一定了解,希望进一步深入理解神经 *** 工作原理和实现细节的读者。
该书的特点在于:
1. **从零开始**:书中从最基础的算法讲起,逐步深入,适合没有深度学习背景的读者。
2. **不依赖框架**:与常见的基于TensorFlow、PyTorch等框架的深度学习教程不同,该书完全基于Python和NumPy,让读者在不依赖高级框架的情况下,理解并实现神经 *** 模型。
3. **实践操作**:书中不仅提供了算法的推导,还包含了具体的实现代码和实例,读者可以通过动手实践来加深理解。
4. **内容全面**:覆盖了从感知机模型到长短时记忆 *** 等多样化的神经 *** 模型,帮助读者构建全面的深度学习知识体系。
5. **算法原理讲解**:每个模型都详细讲述了其算法推导过程,有助于读者理解模型的数学原理。
6. **训练过程可视化**:读者可以通过书中的示例代码观察整个训练过程,对模型的工作方式有更直观的了解。
该书共224页,定价79.00元,是电子工业出版社“博文视点AI系列”中的一本。ISBN号为9787121371714。
总体来说,这本书是一个适合自学者深入了解深度学习算法的不错选择,特别是对于那些希望在不使用框架的情况下理解深度学习内部工作机制的读者。通过直接使用Python和NumPy进行编程,读者能够获得对深度学习算法更为深入和全面的理解。
《实战深度学习算法:零起点通关神经 *** 模型(基于Python和NumPy实现)》作者简介
徐彬
重庆大学计算机科学系学士、BI挪威商学院硕士。曾任中国工商银行软件工程师、平安银行应用架构专家、银行间市场清算所创新衍生品及利率产品项目群负责人。研究方向包括信贷及清算风险管控、复杂项目群管理,机器学习在特定场景的应用。
《实战深度学习算法:零起点通关神经 *** 模型(基于Python和NumPy实现)》目录
第 1章基础分类模型 1
1.1深度学习简介 ............................ 2
1.2目标问题:空间中的二分类 .................... 2
1.3感知机模型 ............................. 3
1.3.1感知机函数 ......................... 3
1.3.2损失函数 .......................... 4
1.3.3感知机学习算法 ....................... 6
1.4算法实现 .............................. 8
1.4.1环境搭建 .......................... 8
1.4.2数据准备 .......................... 9
1.4.3实现感知机算法 ....................... 11
1.5小结 ................................. 13参考文献 ................................. 13
第 2章之一个神经 *** 14
2.1目标问题:MNIST手写数字识别 ................. 15
2.1.1数据集 ............................ 15
2.1.2图像数据和图向量 ..................... 16
2.2挑战:从二分类到多分类 ..................... 16
2.3 Softmax方法 ............................ 19
2.4正确分类的独热编码 ........................ 20
2.5损失函数——交叉熵 ........................ 21
2.6信息熵和交叉熵 ........................... 21
2.6.1信息熵 ............................ 21
2.6.2交叉熵 ............................ 22
2.7之一个神经 *** 的学习算法 .................... 23
2.8反向传播 .............................. 26
2.9抽象泄漏 .............................. 27
2.10算法实现 .............................. 28
2.10.1数据准备 .......................... 28
2.10.2实现之一个神经 *** .................... 33
2.10.3实现 MINIST手写数字识别 ................ 36
2.11小结 ................................. 37参考文献 ................................. 38
第 3章多层全连接神经 *** 39
3.1之一个挑战:异或问题 ....................... 40
3.2更深的神经 *** ——隐藏层 .................... 40
3.3第二个挑战:参数拟合的两面性 .................. 42
3.4过拟合与正则化 ........................... 44
3.4.1欠拟合与过拟合 ....................... 44
3.4.2正则化 ............................ 44
3.4.3正则化的效果 ........................ 44
3.5第三个挑战:非线性可分问题 ................... 45
3.6激活函数 .............................. 45
3.7算法和结构 ............................. 47
3.8算法实现 .............................. 50
3.8.1数据准备 .......................... 50
3.8.2实现多层全连接神经 *** ................. 50
3.8.3在数据集上验证模型 .................... 53
3.9小结 ................................. 54参考文献 ................................. 54
第 4章卷积神经 *** (CNN) 55
4.1挑战:参数量和训练成本 ..................... 56
4.2卷积神经 *** 的结构 ........................ 56
4.2.1卷积层 ............................ 57
4.2.2池化层 ............................ 62
4.2.3全连接层和 Softmax处理 ................. 63
4.3卷积神经 *** 学习算法 ....................... 63
4.3.1全连接层 .......................... 63
4.3.2池化层反向传播 ....................... 64
4.3.3卷积层反向传播 ....................... 65
4.4算法实现 .............................. 68
4.4.1数据准备 .......................... 68
4.4.2卷积神经 *** 模型的原始实现 ............... 69
4.5小结 ................................. 76参考文献 ................................. 78
第 5章卷积神经 *** ——算法提速和优化 79
5.1之一个挑战:卷积神经 *** 的运算效率 .............. 80
5.2提速改进 .............................. 80
5.2.1边缘填充提速 ........................ 82
5.2.2池化层提速 ......................... 83
5.2.3卷积层处理 ......................... 85
5.3反向传播算法实现 ......................... 88
5.3.1池化层反向传播 ....................... 88
5.3.2卷积层反向传播 ....................... 89
5.4第二个挑战:梯度下降的幅度和方向 ............... 91
5.5递减学习率参数 ........................... 92
5.6学习策略的优化方法 ........................ 92
5.6.1动量方法 .......................... 93
5.6.2 NAG方法 .......................... 93
5.6.3 Adagrad方法 ........................ 94
5.6.4 RMSprop方法 ....................... 95
5.6.5 AdaDelta方法 ....................... 96
5.6.6 Adam方法 ......................... 97
5.6.7各种优化方法的比较 .................... 98
目录
5.7总体模型结构 ............................ 100
5.8使用 CNN实现 MNIST手写数字识别验证 ........... 101
5.9小结 ................................. 102参考文献 ................................. 103
第 6章批量规范化(Batch Normalization) 104
6.1挑战:深度神经 *** 不易训练 ................... 105
6.2批量规范化方法的初衷 ....................... 105
6.2.1数据集偏移 ......................... 106
6.2.2输入分布偏移 ........................ 106
6.2.3内部偏移 .......................... 107
6.3批量规范化的算法 ......................... 107
6.3.1训练时的前向计算 ..................... 107
6.3.2规范化与标准化变量 .................... 108
6.3.3推理预测时的前向计算 ................... 109
6.3.4全连接层和卷积层的批量规范化处理 ........... 110
6.4批量规范化的效果 ......................... 111
6.4.1梯度传递问题 ........................ 111
6.4.2饱和非线性激活问题 .................... 112
6.4.3正则化效果 ......................... 113
6.5批量规范化为何有效 ........................ 113
6.6批量规范化的反向传播算法 .................... 114
6.7算法实现 .............................. 115
6.7.1训练时的前向传播 ..................... 116
6.7.2反向传播 .......................... 117
6.7.3推理预测 .......................... 118
6.8调整学习率和总体结构 ....................... 119
6.8.1模型结构 .......................... 119
6.8.2卷积层批量规范化的实现 ................. 120
6.8.3引入批量规范化后的递减学习率 .............. 121
6.9在 MNIST数据集上验证结果 ................... 122
6.10小结 ................................. 123
参考文献 ................................. 123
第 7章循环神经 *** (Vanilla RNN) 125
7.1之一个挑战:序列特征的捕捉 ................... 126
7.2循环神经 *** 的结构 ........................ 126
7.2.1单层 RNN.......................... 126
7.2.2双向 RNN.......................... 128
7.2.3多层 RNN.......................... 129
7.3 RNN前向传播算法 ......................... 130
7.4 RNN反向传播算法 ......................... 131
7.4.1误差的反向传播 ....................... 131
7.4.2激活函数的导函数和参数梯度 ............... 132
7.5第二个挑战:循环神经 *** 的梯度传递问题 ........... 133
7.6梯度裁剪 .............................. 134
7.7算法实现 .............................. 135
7.8目标问题:序列数据分析 ..................... 139
7.8.1数据准备 .......................... 139
7.8.2模型搭建 .......................... 144
7.8.3验证结果 .......................... 145
7.9小结 ................................. 147参考文献 ................................. 147
第 8章长短时记忆 *** (LSTM)——指数分析 149
8.1目标问题:投资市场的指数分析 .................. 150
8.2挑战:梯度弥散问题 ........................ 150
8.3长短时记忆 *** 的结构 ....................... 150
8.4 LSTM前向传播算法 ........................ 152
8.5 LSTM反向传播算法 ........................ 153
8.5.1误差反向传播 ........................ 154
8.5.2激活函数的导函数和参数梯度 ............... 155
8.6算法实现 .............................. 156
8.6.1实现 LSTM单时间步的前向计算 ............. 156
8.6.2实现 LSTM多层多时间步的前向计算 .......... 157
8.6.3实现 LSTM单时间步的反向传播 ............. 159
8.6.4实现 LSTM多层多时间步的反向传播 .......... 160
8.7实现沪深 300指数分析 ....................... 161
8.7.1数据准备 .......................... 162
8.7.2模型构建 .......................... 166
8.7.3分析结果 .......................... 167
8.8小结 ................................. 168参考文献 ................................. 169
第 9章双向门控循环单元(BiGRU)——情感分析 170
9.1目标问题:情感分析 ........................ 171
9.2之一个挑战:模型的运算效率 ................... 172
9.3 GRU模型的结构 .......................... 172
9.4 GRU前向传播算法 ......................... 173
9.5 GRU前向传播表达式的其他写法 ................. 174
9.6 GRU反向传播算法 ......................... 175
9.7 GRU算法实现 ........................... 177
9.7.1单时间步的前向计算 .................... 177
9.7.2实现单时间步的反向传播 ................. 178
9.8用 GRU模型进行情感分析 .................... 179
9.8.1数据预处理 ......................... 180
9.8.2构建情感分析模型 ..................... 181
9.9首次验证 .............................. 182
9.10第二个挑战:序列模型的过拟合 .................. 183
9.11 Dropout正则化 ........................... 183
9.11.1 Dropout前向传播算法 ................... 183
9.11.2 Dropout反向传播算法 ................... 184
9.11.3 Dropout Rate的选择 ................... 185
9.12再次验证:GRU+Dropout..................... 186
9.13第三个挑战:捕捉逆序信息 .................... 187
9.14双向门控循环单元(BiGRU) ................... 187
9.15第三次验证:BiGRU+Dropout .................. 188
9.16小结 ................................. 189
参考文献 ................................. 189
附录 A向量和矩阵运算 191
附录 B导数和微分 194
附录 C向量和矩阵导数 195
附录 D概率论和数理统计 201
索引 205
评论列表