深度学习为人工智能带来了巨大突破,也成为机器学习领域一颗闪耀的新星。虽然相关学习资料丰富,但大部分内容较为庞杂且难以理解,并对初学者的相关理论知识与实践能力有较高的要求,这使得大部分想进入这一领域的初学者望而却步。本书去繁化简地对深度学习的理论知识进行了梳理,并对算法实现做出了浅显易懂的讲解,适合初学者进行学习。
第1章深度学习的发展介绍 1
1.1如何阅读本书 3
1.2深度学习沉浮史 3
1.2.1模拟生物大脑的疯狂远古时代 4
1.2.2联结主义近代 5
1.2.3百花齐放,层次结构主导,模型巨大的当代 6
1.3Python简易教程 7
1.3.1Anaconda搭建 7
1.3.2IPythonNotebook使用 7
1.3.3Python基本用法 8
1.3.4NumPy 15
1.3.5Matplotlib 23
1.4参考文献 25
第2章机器学习快速入门 27
2.1学习算法 28
2.1.1学习任务 29
2.1.2性能度量 30
2.1.3学习经验 32
2.2代价函数 33
2.2.1均方误差函数 33
2.2.2极大似然估计 34
2.3梯度下降法 36
2.3.1批量梯度下降法 38
2.3.2随机梯度下降法 39
2.4过拟合与欠拟合 40
2.4.1没免费午餐理论 42
2.4.2正则化 43
2.5超参数与验证集 44
2.6Softmax编码实战 46
2.6.1编码说明 49
2.6.2熟练使用CIFAR-10数据集 50
2.6.3显式循环计算损失函数及其梯度 53
2.6.4向量化表达式计算损失函数及其梯度 56
2.6.5最小批量梯度下降算法训练Softmax分类器 57
2.6.6使用验证数据选择超参数 61
2.7参考代码 68
2.8参考文献 70
第3章前馈神经网络 72
3.1神经元 73
3.1.1Sigmoid神经元 74
3.1.2Tanh神经元 75
3.1.3ReLU神经元 76
3.2前馈神经网络 80
3.2.1输出层单元 80
3.2.2隐藏层单元 80
3.2.3网络结构设计 81
3.3BP算法 82
3.4深度学习编码实战上 86
3.4.1实现仿射传播 88
3.4.2实现ReLU传播 91
3.4.3组合单层神经元 93
3.4.4实现浅层神经网络 96
3.4.5实现深层全连接网络 101
3.5参考代码 109
3.6参考文献 113
第4章深度学习正则化 115
4.1参数范数惩罚 116
4.1.1L2参数正则化 118 [2]
4.1.2L1正则化 119
4.2参数绑定与参数共享 120
4.3噪声注入与数据扩充 120
4.4稀疏表征 122
4.5早停 123
4.6Dropout 126
4.6.1个体与集成 126
4.6.2Dropout 127
4.7深度学习编码实战中 129
4.7.1Dropout传播 131
4.7.2组合Dropout传播层 134
4.7.3Dropout神经网络 136
4.7.4解耦训练器trainer 138
4.7.5解耦更新器updater 143
4.7.6正则化实验 145
4.8参考代码 148
4.9参考文献 150
第5章深度学习优化 152
5.1神经网络优化困难 153
5.1.1局部最优 153
5.1.2鞍点 154
5.1.3梯度悬崖 154
5.1.4梯度消失或梯度爆炸 155
5.1.5梯度不精确 156
5.1.6优化理论的局限性 156
5.2随机梯度下降 156
5.3动量学习法 158
5.4AdaGrad和RMSProp 159
5.5Adam 160
5.6参数初始化策略 161
5.7批量归一化 163
5.7.1BN算法详解 163
5.7.2BN传播详解 165
5.8深度学习编码实战下 166
5.8.1Momentum 167
5.8.2RMSProp 171
5.8.3Adam 172
5.8.4更新规则比较 174
5.8.5BN前向传播 176
5.8.6BN反向传播 180
5.8.7使用BN的全连接网络 182
5.8.8BN算法与权重标准差比较 188
5.9参考代码 191
5.10参考文献 195
第6章卷积神经网络 196
6.1卷积操作 197
6.2卷积的意义 198
6.2.1稀疏连接 199
6.2.2参数共享 200
6.3池化操作 201
6.4设计卷积神经网络 204
6.4.1跨步卷积 204
6.4.2零填充 205
6.4.3非共享卷积 206
6.4.4平铺卷积 207
6.5卷积网络编码练习 208
6.5.1卷积前向传播 209
6.5.2卷积反向传播 212
6.5.3最大池化前向传播 215
6.5.4最大池化反向传播 218 [2]
6.5.5向量化执行 220
6.5.6组合完整卷积层 223
6.5.7浅层卷积网络 224
6.5.8空间批量归一化 229
6.6参考代码 233
6.7参考文献 237
第7章循环神经网络 238
7.1循环神经网络 239
7.1.1循环神经元展开 239
7.1.2循环网络训练 240
7.2循环神经网络设计 242
7.2.1双向循环网络结构 242
7.2.2编码-解码网络结构 243
7.2.3深度循环网络结构 244
7.3门控循环神经网络 245
7.3.1LSTM 246
7.3.2门控循环单元 249
7.4RNN编程练习 250
7.4.1RNN单步传播 252
7.4.2RNN时序传播 255
7.4.3词嵌入 258
7.4.4RNN输出层 261
7.4.5时序Softmax损失 262
7.4.6RNN图片说明任务 264
7.5LSTM编程练习 269
7.5.1LSTM单步传播 269
7.5.2LSTM时序传播 273
7.5.3LSTM实现图片说明任务 276
7.6参考代码 278
7.6.1RNN参考代码 278
7.6.2LSTM参考代码 282
7.7参考文献 285
第8章TensorFlow快速入门 287
8.1TensorFlow介绍 288
8.2TensorFlow1.0安装指南 289
8.2.1双版本切换Anaconda 289
8.2.2安装CUDA8.0 291
8.2.3安装cuDNN 292
8.2.4安装TensorFlow 293
8.2.5验证安装 294
8.3TensorFlow基础 295
8.3.1Tensor 295
8.3.2TensorFlow核心API教程 296
8.3.3tf.trainAPI 299
8.3.4tf.contrib.learn 301
8.4TensorFlow构造CNN 305
8.4.1构建Softmax模型 305
8.4.2使用TensorFlow训练模型 307
8.4.3使用TensorFlow评估模型 308
8.4.4使用TensorFlow构建卷积神经网络 308
8.5TensorBoard快速入门 311
8.5.1TensorBoard可视化学习 312
8.5.2计算图可视化 316