编辑推荐
本书是使用Python 进行深度学习实践的一本初学指南,将带领读者学习使用Python构建深度神经网络模型。本书不要求读者具有深度神经网络的相关经验,也没有罗列大量的公式,而是通过一些实际案例,以简单直白的方式介绍深度神经网络的两项任务——分类和回归,解析深度学习模型中的一些核心问题,以期让读者对深度学习的全貌有一个清晰的认识。通过简单易学的步骤,读者将学会如何使用Python构建深度神经网络模型。一旦掌握了这些步骤,读者就能够把这些知识转换为强大的数据科学应用程序。本书包括以下精彩内容:★ 释放深度神经网络的有效预测能力;★ 动手开发二元分类的解决方案;★ 为多元问题设计成功的应用;★ 掌握有效模型构建的技术;★ 调节深度神经网络,以改善其性能。
内容简介
本书是使用Python进行深度学习实践的一本初学指南。本书并未罗列大量的公式,而是通过一些实用的实际案例,以简单直白的方式介绍深度神经网络的两项任务——分类和回归,解析深度学习模型中的一些核心问题,以期让读者对深度学习的全貌有一个清晰的认识。本书共9章,分别介绍了深度学习基础理论、神经网络基础知识、构建定制化深度预测模型、性能提升技术、二元分类的神经网络应用等内容,并借助Python语言对基本算法和实现模型进行了探索。本书适合期望用较短时间在深度神经网络领域初试牛刀的读者,也适合深度学习的初学者以及业内人士参考。
作者简介
尼格尔·刘易斯(N.D.Lewis)是一位数据科学和预测领域的讲师、作者和研究者。他在华尔街和伦敦从事投资管理工作多年,编著了统计、数据科学和量化模型方面的数本图书,并且在大学里开设深度学习、机器学习和数据分析应用等方面的课程。
目录
- 第1章如何阅读本书1
- 1.1获取Python2
- 1.1.1学习Python3
- 1.1.2软件包3
- 1.2不需要等待3
- 1.3小结4
- 附注5
- 第2章深度学习入门6
- 2.1为什么要学习深度学习7
- 2.1.1最后一子8
- 2.1.2一件怪事8
- 2.1.3两类人9
- 2.2什么是深度学习10
- 2.2.1成功的蓝图10
- 2.2.2有监督学习和无监督学习11
- 2.2.3深度学习的流程11
- 2.3深度学习能解决什么问题12
- 2.4哪些领域使用深度学习14
- 2.4.1深度学习能揭开永葆青春的秘密吗15
- 2.4.2衰老的挑战15
- 2.4.3众多的理论16
- 2.4.4数据科学家的答案16
- 2.5想使用深度学习——却不知如何开始17
- 2.6小结18
- 附注18
- 第3章神经网络基础27
- 3.1历史备忘录28
- 3.2神经网络的拓扑结构29
- 3.3神经元的作用30
- 人工神经元31
- 3.4理解激活函数31
- 3.4.1数学计算32
- 3.4.2sigmoid函数34
- 3.4.3运算成本34
- 3.5神经网络如何进行学习35
- 基本算法36
- 3.6解释梯度下降算法37
- 3.6.1误差曲面38
- 3.6.2随机梯度下降39
- 3.7小结39
- 附注40
- 第4章深度神经网络简介42
- 4.1深度神经网络简析43
- 4.2怎样在一分钟内解释深度神经网络44
- 4.2.1如何看待DNN44
- 4.2.2统计学家的视角45
- 4.2.3一个关键的观点45
- 4.3深度神经网络的3种使用方式45
- 4.3.1增强雾天的可视性46
- 4.3.2打击黑客犯罪50
- 4.3.3不可思议的缩略图51
- 4.4如何快速地近似任何函数54
- 4.4.1一个用Python构建深度神经网络的极简方法55
- 4.4.2生成示例56
- 4.4.3检查样本57
- 4.4.4格式化数据58
- 4.4.5拟合模型60
- 4.4.6性能表现评估61
- 4.5有监督学习概述62
- 4.5.1有监督学习的目标63
- 4.5.2无监督学习63
- 4.5.3半监督学习64
- 4.6小结65
- 附注65
- 第5章如何构建可定制的深度预测模型70
- 5.1一个深度神经网络预测的实际应用71
- 5.1.1样本数据和神经网络71
- 5.1.2可靠的性能表现72
- 5.2明确预测目标72
- 5.3获取数据的拷贝74
- 5.4标准化的重要性75
- 5.5使用训练样本和测试样本76
- 5.6创建深度神经网络回归模型的极简方式78
- 5.7学习速率详解79
- 5.7.1选择最佳值80
- 5.7.2如果将模型拟合到数据81
- 5.8评估模型在训练集性能表现的几种方式81
- 5.8.1均方差82
- 5.8.2获取预测和度量性能83
- 5.9小结83
- 附注84
- 第6章提高性能的一些技巧85
- 6.1sigmoid激活函数的局限86
- 6.2选择最佳层数的原则89
- 6.3如何快速改进模型92
- 6.4避免过度拟合93
- 6.5应该包含多少个神经元95
- 6.6评估测试数据集上的性能96
- 6.7冻结网络权重97
- 6.8保存网络以供将来使用98
- 6.9小结99
- 附注99
- 第7章二元分类神经网络的奥秘101
- 7.1感人至深——创造奇迹102
- 7.1.1一项二元分类任务103
- 7.1.2有用的结果103
- 7.2了解分类目标104
- 7.3使用Python从网络下载数据105
- 7.4处理缺失的观测值107
- 7.5保存数据111
- 7.6冲量简单入门112
- 7.7留出法的秘密113
- 7.8如何用Python快速构建一个深度神经网络二元分类器115
- 7.8.1生成训练集和测试集117
- 7.8.2指定模型117
- 7.8.3拟合模型118
- 7.8.4混淆矩阵119
- 7.9小结120
- 附注120
- 第8章构建优秀模型之道123
- 8.1尝试最简单的想法提高成功率124
- 8.2辍学的威力124
- 8.3相似性126
- 8.4共适应126
- 8.5一个教训127
- 8.6双曲正切激活函数的威力以及如何有效地使用127
- 8.7如何从小批量方法中获益128
- 8.8重建模型129
- 8.9关于不平衡样本你应该知道的事131
- 8.9.1核心问题131
- 8.9.2查看测试集上的表现133
- 8.10小结134
- 附注134
- 第9章深度神经网络在多元分类问题的简单应用136
- 9.1分类问题描述138
- 9.1.1查看样本139
- 9.1.2检查目标对象140
- 9.2关于softmax激活函数的说明140
- 9.3使用rmsprop算法构建多项式模型141
- 9.3.1关于rmsprop算法的说明143
- 9.3.2模型性能表现144
- 9.4Adagrad学习算法概述144
- 9.5如何尝试其他学习算法146
- 9.5.1Nesterov的加速梯度下降算法146
- 9.5.2尝试冲量法147
- 9.5.3常规随机梯度下降法148
- 9.5.4在模型中使用Adadelta算法149
- 9.5.5测试集性能表现150
- 9.6小结152
- 9.7结束语152
- 附注152