前言 深度学习领域技术的飞速发展,给人们的生活带来了很大改变。例如,智能语音助手能够与人类无障碍地沟通,甚至在视频通话时可以提供实时翻译;将手机摄像头聚焦在某个物体上,该物体的相关信息就会被迅速地反馈给使用者;在购物网站上浏览商品时,机器也在同时分析着用户的偏好,并及时个性化地推荐用户可能感兴趣的商品。原先以为只有人类才能做到的事,现在机器也能毫无差错地完成,甚至超越人类,这显然与深度学习的发展密不可分,技术正引领人类社会走向崭新的世界。 PyTorch是当前主流深度学习框架之一,其设计追求最少的封装、最直观的设计,其简洁优美的特性使得PyTorch代码更易理解,对新手非常友好。本书选择PyTorch作为深度学习框架,以方便读者阅读。 本书以深度学习为主题,将理论与简明实战案例相结合,以加深读者对于理论知识的理解。本书首先介绍深度学习领域的现状,深度学习领域和其他领域技术之间的关系,以及它们的主要特点和适用范围;接下来,详细讲解PyTorch框架中的基本操作,并在讲解深度学习理论知识的同时,提供完整、详尽的实现过程,供读者参考。相信读者在阅读完本书后,会对深度学习有全面而深刻的了解,同时具备相当强的实践能力。 全书共分为两篇,包括16章内容。 基础篇涵盖第1~8章,第1章深度学习简介,包括计算机视觉、自然语言处理、强化学习; 第2章深度学习框架,包括Caffe、TensorFlow、PyTorch; 第3章机器学习基础知识,包括模型评估与模型参数选择、监督学习与非监督学习; 第4章PyTorch深度学习基础,包括Tensor对象及其运算,Tensor的索引和切片,Tensor的变换、拼接和拆分,PyTorch的Reduction操作,PyTorch的自动微分; 第5章Logistic回归,包括线性回归、Logistic回归、用PyTorch实现Logistic回归; 第6章神经网络基础,包括基础概念、感知器、BP神经网络、Dropout正则化、批标准化; 第7章卷积神经网络与计算机视觉,包括卷积神经网络的基本思想、卷积操作、池化层、卷积神经网络、经典网络结构、用PyTorch进行手写数字识别; 第8章神经网络与自然语言处理,包括语言建模、基于多层感知机的架构、基于循环神经网络的架构、基于卷积神经网络的架构、基于Transformer的架构、表示学习与预训练技术。 实战篇涵盖第9~16章,第9章搭建卷积神经网络进行图像分类,包括实验数据准备、数据预处理和准备、模型构建、模型训练与结果评估; 第10章图像风格迁移,包括VGG模型、图像风格迁移介绍、内容损失函数、风格损失函数、优化过程、图像风格迁移主程序的实现; 第11章基于RNN的文本分类,包括数据准备、将名字转换为张量、构建神经网络、训练、绘制损失变化图、预测结果、预测用户输入; 第12章基于CNN的视频行为识别,包括问题表述、源码结构、数据准备、模型搭建与训练、特征图可视化; 第13章实现对抗性样本生成,包括威胁模型、快速梯度符号攻击、代码实现、对抗示例; 第14章实现基于LSTM的情感分析,包括情感分析常用的Python工具库、数据样本分析、数据预处理、算法模型; 第15章实现DCGAN,包括生成对抗网络、DCGAN介绍、初始化代码、模型实现、结果; 第16章视觉问答,包括视觉问答简介、基于BottomUp Attention的联合嵌入模型、准备工作、实现基础模块、实现问题嵌入模块、实现TopDown Attention模块、组装完整的VQA系统、运行VQA实验。 本书特色 (1) 内容涵盖深度学习数学基础讲解,便于没有大学本科数学基础的读者阅读。 (2) 提供实际可运行的代码和让读者可以亲自试验的学习环境。 (3) 对于误差反向传播法、卷积运算等看起来很复杂的技术,帮助读者在实现层面上理解。 (4) 介绍流行的技术(如Batch Normalization)并进行实现。 (5) 提供真实的案例、完整的构建过程以及相应源代码,使读者能完整感受完成深度学习项目的过程。 源代码 本书由吕云翔、刘卓然、关捷雄、欧阳植昊、杨卓谦、华昱云、陈妙然、黎昆昌、吕可馨、王渌汀编写,曾洪立参与了部分内容的编写并进行了素材整理及配套资源制作等。 由于作者水平和能力有限,书中难免有疏漏之处,恳请各位同仁和广大读者批评指正。 作者2021年1月