温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
实战
深度
学习
算法
起点
通关
神经网络
模型
基于
Python
NumPy
实现
实战深度学习算法:零起点通关神经网络模型(基于 Python 和 NumPy 实现)徐彬 著内 容 简 介深度学习是机器学习的重要分支。本书系统地介绍了如何用 Python 和 NumPy 一步步地实现深度学习的基础模型,无须借助 TensorFlow、PyTorch 等深度学习框架,帮助读者更好地理解底层算法的脉络,进而进行模型的定制、优化和改进。全书由简到难地讲述感知机模型、多分类神经网络、深层全连接网络、卷积神经网络、批量规范化方法、循环神经网络、长短时记忆网络、双向结构的 BiGRU 模型等神经网络模型的必要算法推导、实现及其实例,读者可直接动手调试和观察整个训练过程,进一步理解模型及其算法原理。本书适合没有深度学习基础,希望进入此领域的在校学生、研究者阅读,也适合有一定基础但不满足于“调包”和“调参”的工程师学习,还可供想要深入了解底层算法的研究人员参考阅读。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据实战深度学习算法:零起点通关神经网络模型:基于 Python 和 NumPy 实现/徐彬著.北京:电子工业出版社,2019.9ISBN 987-7-121-37171-4I.x实 II.x徐 III.x机器学习算法研究 IV.xTP181中国版本图书馆 CIP 数据核字(2019)第 158449 号责任编辑:孙学瑛 印刷:装订:出版发行:电子工业出版社北京市海淀区万寿路 173 信箱邮编:100036开本:7201000 1/16 印张:14 字数:280 千字彩插:2版次:2019 年 9 月第 1 版印次:2019 年 9 月第 1 次印刷定价:79.00 元凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:(010)51260888-819,。前言以深度学习为代表的人工智能技术深刻地影响着我们的生活方式,从图像识别、语音识别、机器翻译到智能医诊、自动驾驶、智能风控 在多个应用领域不断地刷新纪录。深度学习近年来之所以能取得颠覆性突破,一方面,归功于“数字化”对社会的渗透使得大量数据得以积累;另一方面,受益于单位成本下硬件算力的提升,推动了复杂模型的商用;然而最根本的,还是来自深度学习背后基础算法的巧思妙想与厚积薄发。只有深入了解深度学习的算法原理,才能更灵活、高效地运用于实践当中。现有的深度学习框架将算法使用简化为“调包”和“调参”,降低了使用成本,然而却没有降低学习成本。对于算法,最有效的学习方式是理解原理并动手实践。从原始论文可以查阅算法的详解和推导,却不容易复现结果。主流的深度学习框架多采用计算图模型,不容易调试或观察,对希望深入了解算法的初学者并不友好。致力于用深度学习方法创造社会价值的从业者,也需要看清底层算法的脉络,来做模型的定制、优化和改进。内容组织逻辑本书的特点是“原理+实践”。按照“带着问题看算法”的逻辑来组织内容,所描述的每一种深度学习算法都围绕一个实际的目标问题展开,提供了基础算法的必要推导和实例,方便直观理解。1.提出问题。2.以问题为动机,引出模型。3.介绍模型原理、必要推导和实例。4.实现模型算法。5.解决问题与验证。第 1 章至第 3 章,从感知机模型开始,步步渐进,介绍多分类神经网络、深层全连接神经网络;第 4 章至第 6 章,描述卷积神经网络(CNN)的核心算法、学习策略优化方法,以及深度学习的批量规范化方法;第 7 章至第 9章,系统介绍了序列模型,基础的循环神经网络(Vanilla RNN)、长短时记忆网络(LSTM)和双向结构的 BiGRU 模型,以及序列模型适用的正则化方法。每章均以真实数据集作为目标问题,引出算法原理,不借助深度学习框架给予实现,最后完成数据集的验证。阅读和使用对于初学者,在阅读本书前,不需要具备机器学习基础,可以通过案例和模型概述等章节入门深度学习的概念;如果会使用 Python 语言简单编程,还可以结合书中的案例,动手了解各种模型所能解决的问题。对于已有深度学习框架使用经验、希望了解底层算法的读者,可以查阅重要算法的原理、前向计算和反向传播的推导步骤,并在各章节的算法实现部分了解全部算法的实现过程。附录部分包含了书中讨论的深度学习算法所涉及的数学基础,方便初学者速查和理解其直观意义。如需概念的严格定义和展开论证,可参考相关教材和专著。通过阅读本书,希望读者可以:理解深度学习主要的核心模型。灵活复现重要论文、验证新方法。自由替换模型中的底层算法,取得一手实验结果。针对自己工作的特定场景,对算法做定制和优化,实现工程应用。书中提供的算法实例基于 Python 和 NumPy 库实现,可以在 GitHub 公开代码库中获取https:/ 致谢感谢为此书提供支持和做出过贡献的每个人。感谢家人的支持,他们是我动力的源泉。重庆大学郭平教授拨冗审阅了部分内容,提出了宝贵意见,对本书质量的提高有很大帮助,在此向他表示衷心的感谢。感谢一起工作过的同事和旅途巧遇的伙伴给予的启发,打开了前沿技术新世界的大门。电子工业出版社的孙学瑛女士在本书写作和出版过程中给予了很多帮助,在此特向她致谢。由于作者水平有限,书中难免存在错误和不足,敬请专家和读者批评指正。如有意见或反馈,可以发邮件至。也欢迎在知乎上交流https:/ 年 7 月读者服务轻松注册成为博文视点社区用户(),扫码直达本书页面。下载资源:本书如提供示例代码及资源文件,均可在 下载资源 处下载。提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。页面入口:http:/ V 目录第 1 章基础分类模型11.1深度学习简介.21.2目标问题:空间中的二分类.21.3感知机模型.31.3.1感知机函数.31.3.2损失函数.41.3.3感知机学习算法.61.4算法实现.81.4.1环境搭建.81.4.2数据准备.91.4.3实现感知机算法.111.5小结.13参考文献.13第 2 章第一个神经网络142.1目标问题:MNIST 手写数字识别.152.1.1数据集.152.1.2图像数据和图向量.162.2挑战:从二分类到多分类.162.3Softmax 方法.192.4正确分类的独热编码.202.5损失函数交叉熵.212.6信息熵和交叉熵.21目录2.6.1信息熵.212.6.2交叉熵.222.7第一个神经网络的学习算法.232.8反向传播.262.9抽象泄漏.272.10 算法实现.282.10.1 数据准备.282.10.2 实现第一个神经网络.332.10.3 实现 MINIST 手写数字识别.362.11 小结.37参考文献.38第 3 章 多层全连接神经网络393.1第一个挑战:异或问题.403.2更深的神经网络隐藏层.403.3第二个挑战:参数拟合的两面性.423.4过拟合与正则化.443.4.1欠拟合与过拟合.443.4.2正则化.443.4.3正则化的效果.443.5第三个挑战:非线性可分问题.453.6激活函数.453.7算法和结构.473.8算法实现.503.8.1数据准备.503.8.2实现多层全连接神经网络.503.8.3在数据集上验证模型.533.9小结.54参考文献.54第 4 章 卷积神经网络(CNN)554.1挑战:参数量和训练成本.564.2卷积神经网络的结构.56 VIII 目录4.2.1卷积层.574.2.2池化层.624.2.3全连接层和 Softmax 处理.634.3卷积神经网络学习算法.634.3.1全连接层.634.3.2池化层反向传播.644.3.3卷积层反向传播.654.4算法实现.684.4.1数据准备.684.4.2卷积神经网络模型的原始实现.694.5小结.76参考文献.78第 5 章卷积神经网络算法提速和优化795.1第一个挑战:卷积神经网络的运算效率.805.2提速改进.805.2.1边缘填充提速.825.2.2池化层提速.835.2.3卷积层处理.855.3反向传播算法实现.885.3.1池化层反向传播.885.3.2卷积层反向传播.895.4第二个挑战:梯度下降的幅度和方向.915.5递减学习率参数.925.6学习策略的优化方法.925.6.1动量方法.935.6.2NAG 方法.935.6.3Adagrad 方法.945.6.4RMSprop 方法.955.6.5AdaDelta 方法.965.6.6Adam 方法.975.6.7各种优化方法的比较.98 IX 目录5.7总体模型结构.1005.8使用 CNN 实现 MNIST 手写数字识别验证.1015.9小结.102参考文献.103第 6 章 批量规范化(Batch Normalization)1046.1挑战:深度神经网络不易训练.1056.2批量规范化方法的初衷.1056.2.1数据集偏移.1066.2.2输入分布偏移.1066.2.3内部偏移.1076.3批量规范化的算法.1076.3.1训练时的前向计算.1076.3.2规范化与标准化变量.1086.3.3推理预测时的前向计算.1096.3.4全连接层和卷积层的批量规范化处理.1106.4批量规范化的效果.1116.4.1梯度传递问题.1116.4.2饱和非线性激活问题.1126.4.3正则化效果.1136.5批量规范化为何有效.1136.6批量规范化的反向传播算法.1146.7算法实现.1156.7.1训练时的前向传播.1166.7.2反向传播.1176.7.3推理预测.1186.8调整学习率和总体结构.1196.8.1模型结构.1196.8.2卷积层批量规范化的实现.1206.8.3引入批量规范化后的递减学习率.1216.9在 MNIST 数据集上验证结果.1226.10 小结.123 X 目录参考文献.123第 7 章循环神经网络(Vanilla RNN)1257.1第一个挑战:序列特征的捕捉.1267.2循环神经网络的结构.1267.2.1单层 RNN.1267.2.2双向 RNN.1287.2.3多层 RNN.1297.3RNN 前向传播算法.1307.4RNN 反向传播算法.1317.4.1误差的反向传播.1317.4.2激活函数的导函数和参数梯度.1327.5第二个挑战:循环神经网络的梯度传递问题.1337.6梯度裁剪.1347.7算法实现.1357.8目标问题:序列数据分析.1397.8.1数据准备.1397.8.2模型搭建.1447.8.3验证结果.1457.9小结.147参考文献.147第 8 章长短时记忆网络(LSTM)指数分析1498.1目标问题:投资市场的指数分析.1508.2挑战:梯度弥散问题.1508.3长短时记忆网络的结构.1508.4LSTM 前向传播算法.1528.5LSTM 反向传播算法.1538.5.1误差反向传播.1548.5.2激活函数的导函数和参数梯度.1558.6算法实现.1568.6.1实现 LSTM 单时间步的前向计算.1568.6.2实现 LSTM 多层多时间步的前向计算.157 XI 目录8.6.3实现 LSTM 单时间步的反向传播.1598.6.4实现 LSTM 多层多时间步的反向传播.1608.7实现沪深 300 指数分析.1618.7.1数据准备.1628.7.2模型构建.1668.7.3分析结果.1678.8小结.168参考文献.169第 9 章 双向门控循环单元(BiGRU)情感分析1709.1目标问题:情感分析.1719.2第一个挑战:模型的运算效率.1729.3GRU 模型的结构.1729.4GRU 前向传播算法.1739.5GRU 前向传播表达式的其他写法.1749.6GRU