读者评价
对初学者来说,这本书并不推荐,虽然是实战书籍,但只有代码,没有任何详细介绍,想要学习Keras还是要参考《深度学习实战》;对于拥有机器学习和深度学习基础的同学来说,可以作为参考书来看,有一些亮点,但作用有限;对于项目实践者来说,这本书可能会起到更大的作用,毕竟属于实战类,可以提供一些自己在实战中没有遇到或没注意到的问题。
深度学习为人工智能带来了巨大突破,也成为机器学习领域一颗闪耀的新星。虽然相关学习资料丰富,但大部分内容较为庞杂且难以理解,并对初学者的相关理论知识与实践能力有较高的要求,这使得大部分想进入这一领域的初学者望而却步。本书去繁化简地对深度学习的理论知识进行了梳理,并对算法实现做出了浅显易懂的讲解,适合初学者进行学习。结合本书的内容,读者可以快速对深度学习进行实践。通过启发式的自学模式,可以使读者由浅入深地学习并掌握常用的深度学习模型,为进一步使用开源的深度学习平台与工具提供理论与实践基础。 本书可作为高等院校计算机专业的本科生或研究生教材,也可供对深度学习感兴趣的研究人员和工程技术人员阅读参考。
目录
- 第1章 深度学习的发展介绍 1
- 1.1 如何阅读本书 3
- 1.2 深度学习沉浮史 3
- 1.2.1 模拟生物大脑的疯狂远古时代 4
- 1.2.2 联结主义近代 5
- 1.2.3 百花齐放,层次结构主导,模型巨大的当代 6
- 1.3 Python简易教程 7
- 1.3.1 Anaconda搭建 7
- 1.3.2 IPython Notebook使用 7
- 1.3.3 Python基本用法 8
- 1.3.4 NumPy 15
- 1.3.5 Matplotlib 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.6 Softmax编码实战 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.1 Sigmoid神经元 74
- 3.1.2 Tanh神经元 75
- 3.1.3 ReLU神经元 76
- 3.2 前馈神经网络 80
- 3.2.1 输出层单元 80
- 3.2.2 隐藏层单元 80
- 3.2.3 网络结构设计 81
- 3.3 BP算法 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.1 L2参数正则化 118
- 4.1.2 L1正则化 119
- 4.2 参数绑定与参数共享 120
- 4.3 噪声注入与数据扩充 120
- 4.4 稀疏表征 122
- 4.5 早停 123
- 4.6 Dropout 126
- 4.6.1 个体与集成 126
- 4.6.2 Dropout 127
- 4.7 深度学习编码实战中 129
- 4.7.1 Dropout传播 131
- 4.7.2 组合Dropout传播层 134
- 4.7.3 Dropout神经网络 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.4 AdaGrad和RMSProp 159
- 5.5 Adam 160
- 5.6 参数初始化策略 161
- 5.7 批量归一化 163
- 5.7.1 BN算法详解 163
- 5.7.2 BN传播详解 165
- 5.8 深度学习编码实战下 166
- 5.8.1 Momentum 167
- 5.8.2 RMSProp 171
- 5.8.3 Adam 172
- 5.8.4 更新规则比较 174
- 5.8.5 BN前向传播 176
- 5.8.6 BN反向传播 180
- 5.8.7 使用BN的全连接网络 182
- 5.8.8 BN算法与权重标准差比较 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
- 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.1 LSTM 246
- 7.3.2 门控循环单元 249
- 7.4 RNN编程练习 250
- 7.4.1 RNN单步传播 252
- 7.4.2 RNN时序传播 255
- 7.4.3 词嵌入 258
- 7.4.4 RNN输出层 261
- 7.4.5 时序Softmax损失 262
- 7.4.6 RNN图片说明任务 264
- 7.5 LSTM编程练习 269
- 7.5.1 LSTM单步传播 269
- 7.5.2 LSTM时序传播 273
- 7.5.3 LSTM实现图片说明任务 276
- 7.6 参考代码 278
- 7.6.1 RNN参考代码 278
- 7.6.2 LSTM参考代码 282
- 7.7 参考文献 285
- 第8章 TensorFlow快速入门 287
- 8.1 TensorFlow介绍 288
- 8.2 TensorFlow1.0安装指南 289
- 8.2.1 双版本切换Anaconda 289
- 8.2.2 安装CUDA 8.0 291
- 8.2.3 安装cuDNN 292
- 8.2.4 安装TensorFlow 293
- 8.2.5 验证安装 294
- 8.3 TensorFlow基础 295
- 8.3.1 Tensor 295
- 8.3.2 TensorFlow核心API教程 296
- 8.3.3 tf.train API 299
- 8.3.4 tf.contrib.learn 301
- 8.4 TensorFlow构造CNN 305
- 8.4.1 构建Softmax模型 305
- 8.4.2 使用TensorFlow训练模型 307
- 8.4.3 使用TensorFlow评估模型 308
- 8.4.4 使用TensorFlow构建卷积神经网络 308
- 8.5 TensorBoard快速入门 311
- 8.5.1 TensorBoard可视化学习 312
-
8.5.2 计算图可视化 316