图书前言

前言

深度学习是机器学习中最激动人心的领域,深度学习算法工程师、图像视觉工程师和自然语言处理工程师逐渐成为报酬较高的新兴职业,各行各业都在寻求具备深度学习理论知识和实际编程技能的人才。只有具备深度学习相关理论和实践技能才更有可能在上述新兴职业中获得成功,但是学习和掌握神经网络、卷积神经网络、循环神经网络等深度学习理论具有一定的难度,而掌握PyTorch等深度学习工具更显得困难,因此拥有一本容易上手的深度学习入门书籍肯定会对初学者有很大的帮助,本书就是专门为初学者精心编写的。

初学者探究深度学习理论与PyTorch编程技术一般都会面临两大障碍。第一大障碍是深度学习理论基础,深度学习包含了很多需要掌握的基本概念,如神经元、全连接、Dropout、权重初始化、优化算法、卷积神经网络、卷积层和池化层、残差网络、Inception网络、迁移学习、知识蒸馏、循环神经网络、LSTM、GRU、双向循环神经网络、词嵌入、Word2Vec、GloVe、注意力机制、Transformer等,学习和理解这些概念需要花费大量的时间和精力,学习周期漫长。第二大障碍是编程实践,PyTorch是一个非常庞大的开源平台,拥有一个包含各种工具、库和社区资源的良好生态系统,要在短时间内掌握这些编程技能较为困难,并且由于人工智能领域发展异常迅猛,新技术、新方法层出不穷,PyTorch的API也在不断进化发展,这使得PyTorch开发人员在应用中总会遇到新问题,需要与时俱进,不断学习。

本书就是为了让初学者顺利入门而设计的。首先,本书讲述深度学习的基本原理,让读者了解基本的深度学习算法之后,通过实践来解决经典问题,逐步过渡到解决实际问题。其次,本书精心设计了一些构建深度网络的案例,读者能亲身体会如何将深度学习理论应用到实际中,加深对深度学习算法的理解和编程能力的提高,逐步掌握深度学习的原理和编程技能,拉近理论与实践的距离。

本书共分9章。第1章介绍深度学习和PyTorch的基本概念、PyTorch的安装和常用数据集;第2章为PyTorch基础编程,主要内容包括张量数据操作、自动求导、数据集API、torchvision工具示例和torchtext工具示例;第3章为深度学习快速入门,主要内容包括线性回归、使用nn模块构建线性回归模型、逻辑回归、Softmax回归、神经网络的基本概念以及PyTorch实现;第4章为神经网络训练与优化,主要内容包括神经网络迭代概念、正则化方法、优化算法和PyTorch的初始化函数;第5章为卷积神经网络原理,主要内容包括CNN的基本概念、简单的CNN网络和PyTorch实现LeNet-5网络;第6章为卷积神经网络示例,主要内容包括经典CNN网络、使用预训练的CNN、知识蒸馏,以及CNN可视化;第7章为词嵌入模型,主要内容包括词嵌入模型介绍、词嵌入学习,以及Word2Vec算法实现;第8章为循环神经网络原理,主要内容包括RNN介绍、基本RNN模型、LSTM、GRU、注意力机制、Transformer模型原理及PyTorch实现;第9章为NLP示例,主要内容包括情感分析、语言模型,以及文本序列数据生成。

由于深度学习软件更新很快,新开发的代码在旧版本环境下不一定能够兼容运行,为便于读者参考,在此列出本书代码的开发调试环境,即Python 3.7.4、PyTorch 1.9.0、conda 4.10.3、numpy 1.19.2、torchvision 0.10.0、torchtext 0.10.0、gensim 4.0.1、spacy 2.3.7。此外,本书配套源代码读者可通过扫描右侧的二维码下载使用。

作者在写作中付出很多努力和劳动,但限于作者的学识、能力和精力,书中难免会存在一些疏漏或缺陷,敬请各位读者批评指正。感谢昆明理工大学提供的研究和写作环境。感谢清华大学出版社的编辑老师在出版方面提出的建设性意见和给予的无私帮助,没有他们的大力支持、帮助和鼓励,本书不一定能够面世。感谢读者群的一些未见面的群友,他们对作者以前的著作提出宝贵的建议并鼓励作者撰写更多更好的技术书籍,虽然我无法一一列举姓名,但他们的帮助我会一直铭记在心。感谢购买本书的朋友,欢迎批评指正,你们的批评和建议都会受到重视,并在将来再版中改进。

编  者