书名:破解深度学习(基础篇):模型算法与实现
ISBN:978-7-115-64619-4
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 瞿 炜 李 力 杨 洁
责任编辑 吴晋瑜
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书旨在采用一种符合读者认知角度且能提升其学习效率的方式来讲解深度学习背后的基础知识。
本书总计9章,深入浅出地介绍了深度学习的理论与算法基础,从理论到实战全方位展开。前三章旨在帮助读者快速入门,介绍了必要的数学概念和必备工具的用法。后六章沿着深度学习的发展脉络,从最简单的多层感知机开始,讲解了深度神经网络的基本原理、常见挑战、优化算法,以及三大典型模型(基础卷积神经网络、基础循环神经网络和注意力神经网络)。
本书系统全面,深入浅出,且辅以生活中的案例进行类比,以此降低学习难度,帮助读者迅速掌握深度学习的基础知识。本书适合有志于投身人工智能领域的人员阅读,也适合作为高等院校人工智能专业的教学用书。
瞿炜,美国伊利诺伊大学人工智能博士,哈佛大学、京都大学客座教授;前中国科学院大学教授、模式识别国家重点实验室客座研究员;国家部委特聘专家、重点实验室学术委员会委员;知名国际期刊编委,多个顶级学术期刊审稿人及国际学术会议委员。
在人工智能业界拥有二十余年的技术积累和实践经验,曾先后在互联网、医疗、安防、教育等行业的多家世界500强企业担任高管。他是授业解惑科技有限公司的创始人,以及多家人工智能、金融公司的联合创始人,还是一名天使投资人。
凭借多年的专业积淀和卓越的行业洞察力,瞿炜博士近年来致力于人工智能教育事业的发展。作为知名教育博主,他擅长用通俗易懂的表达方式结合直观生动的模型动画,讲述复杂的人工智能理论与算法;创作的人工智能系列视频和课程在B站(账号:梗直哥丶)/知乎/公众号/视频号(账号:梗直哥丶)等平台深受学生们的欢迎和认可,累计访问量超数千万人次。
李力,人工智能专家,长期致力于计算机视觉和强化学习领域的研究与实践。曾在多家顶尖科技企业担任资深算法工程师,拥有十余年行业经验,具备丰富的技术能力和深厚的理论知识。在他的职业生涯中,李力参与并领导了众多深度学习和强化学习的核心技术项目,有效地应用先进模型解决图像识别、目标检测、自然语言处理、机器人研发等多个领域的实际问题。
杨洁,人工智能和自然语言处理领域资深应用专家,在自然语言理解、基于知识的智能服务、跨模态语言智能、智能问答系统等技术领域具有深厚的实战背景。她曾在教育、医疗等行业的知名企业担任关键职位,拥有十年以上的行业管理经验,成功领导并实施了多个创新项目,擅长引领团队将复杂的理论转化为实际应用,解决行业中的关键问题。
过去十年,我们见证了深度学习的蓬勃发展,见证了深度学习在自然语言处理、计算机视觉、多模态内容生成、自动驾驶等方向取得的巨大成功,见证了深度学习如何逐渐成为人工智能最热门的领域之一。当前,越来越多的学习者投身于深度学习技术领域,力图提升自己的专业技能,增强自己在就业市场上的竞争力,变成市场上最为抢手的人才。
但是,如何在短时间内快速入门并掌握深度学习,是很多读者的困惑——晦涩难懂的数学知识、复杂的算法、烦琐的编程……深度学习虽然让无数读者心怀向往,却也让不少人望而生畏,深感沮丧:时间没少花,却收效甚微。
目前,大多数深度学习的图书某种程度上是在“端着”讲,习惯于从专家视角出发,而没有充分考虑初学者的认知程度,这导致读者阅之如看天书,食之如嚼蜡。再者,即使是专业人士,面对领域内的最新进展,也往往苦于找不到难度适宜又系统全面的教材,只能求助于英文学术论文、技术文章和视频网站,由此浪费了大量时间和精力。我们始终觉得,真正的学习不应该让学习者倍感煎熬,而应该是一件让人愉悦且能带来成就感的事情。深度学习之所以能把人劝退,往往是教者不擅教、学者又不会学导致的。
说了这么多,你肯定好奇,本书有什么与众不同呢?在过去的几年里,我们一直在思考如何才能更好地教授深度学习这门课程。为此,我们在AI教育领域进行了积极的探索和创新,积累了一些经验,并赢得了业界和用户的高度认可。这套书[1] 就是我们在深度学习领域的探索和实践成果,它最主要的特色有两个:“只说人话”和“突出实战”。具体而言,本书在如下方面有所侧重并作了差异化处理。
[1] 共两册,即《破解深度学习(基础篇):模型算法与实现》和《破解深度学习(核心篇):模型算法与实现》。
● 内容重构、全面细致
我们根据ACM和IEEE最新版人工智能体系的111个知识点,参考各类优秀资料,对深度学习理论进行了全面梳理,力求用一套书囊括从20世纪90年代到目前为止的几乎所有主流模型,让读者一套书在手,就能够建立有关深度学习的全局知识框架,而不用再“东奔西走”。对于算法的讲解,我们不会只局限于算法自身,而会从全局视角分析其中的内在联系和区别。我们会将知识点掰开揉碎讲清楚,充分剖析重点和难点,尽可能地为读者降低学习难度。
● 算法与代码紧密结合
这套书在引入任何新概念时,都辅之以简单易懂、贴近生活的示例,以期帮助读者降低理解难度,进而知道为什么要学习这个算法,数学公式怎么好记,以及在实际问题中怎么应用。此外,针对多数初学者“一听就会,一写就废”的情况,我们竭力提供详尽的“保姆式”教程,由简及繁,让读者敢动手,会动手,易上手。这套书配有交互式、可视化源代码示例及详尽的说明文档(以Jupyter Notebook的形式提供),提供了所有模型的完整实现,可供读者在真实数据上运行,还能亲自动手修改,方便获得直观体验。
● 形式生动,只为让你懂
看过梗直哥视频的读者都知道,形式生动是我们的特点。很多时候,一图胜千言,而动画比静图更容易让人理解。为此,我们将秉持这一优势和特点,力求让读者彻底学懂!越是复杂的概念,我们越是要把它讲解得深入浅出。
除此之外,为保证学习效果,我们还提供了在线课程和直播课程,把内容知识点切分成10~20分钟一节,共有百节之多;通过在线答疑、直播串讲等交流形式,增强互动感,加快读者的学习速度,提升学习效果。同时,还有学员讨论群,由专业老师随时解决读者的个性化问题,充分做到因材施教。
我们通过这套书对深度学习庞杂的知识点进行了细致梳理,以期带着读者从不同维度鸟瞰深度学习的世界。在这套书中,我们专门针对深度学习领域抽象难懂的知识点,利用作者丰富的行业积淀和独特的领域视角,结合日常生活中的实例,将这些高深的内容用简明、有趣的方式呈现,打破认知障碍,帮助读者轻松消化。同时,突出应用为先、实战为重的特点,为每个模型提供详尽完整的“手搓”代码和调库代码,由易到难层层递进。此外,这套书突破了传统图书单一的文字教学模式,采用图文、动画和视频相结合的方式,使深度学习的原理和应用场景更加直观和生动。
相信这套书能够打破读者对深度学习“学不会,入门难,不见效”的看法,帮助他们破解学习难题,快速掌握相关知识。
这套书针对不同的读者群体(初学者、有一定经验的读者和经验丰富的读者),提供了对应的教学内容和方法,旨在帮助各种背景和认知水平的读者更有效地学习、掌握深度学习技术,并应对实际挑战。
● 初学者群体
针对尚未涉足深度学习领域或经验较少的读者,如学生、转行者或独立学习者,这套书从深度学习的基本概念出发,采用通俗易懂的文字和实例,帮助读者迅速入门。同时,这套书梳理了必要的数学、计算机以及统计学基础知识,并推荐相应的参考资料与工具,以便读者自我学习和巩固知识。书中内容设计由浅入深,确保读者能够按部就班地领略深度学习的精髓。
● 中级群体
针对已具备深度学习基础,并且有一定实践经验的读者,比如从业者或者正在攻读相关硕士或博士学位的学生读者,这套书提供了更加深入的理论和技术讲解,整合了最新的研究进展和实践案例,确保你始终走在领域前沿并能更好地应对实际挑战。这套书重点讲解深度神经网络的核心理念、优化算法和模型设计技巧,同时详细讲解了当下热门的深度学习框架与工具,以期帮助读者更好地设计、实现和部署深度学习模型。
● 高级群体
对已有深度学习相关领域研究或工作经验,并对前沿研究和技术保持高度关注的读者,比如研究生、博士后或者专业人士,这套书提供了深入的理论和技术分析,帮助读者深入挖掘深度学习的内核及其固有规律。同时,为了方便读者深入研究和探索,我们还提供了相关论文引用和代码示例。
● “只说人话”,破解难题
深度学习常常因概念深奥、公式难懂、算法晦涩而著称,与其他图书只侧重知识传授而忽视读者的认知程度不同,这套书致力于将这些高深内容转换为通俗易懂的“人话”。在我们深厚的行业经验和独特的领域洞察基础上,这套书结合日常生活案例,采用一个个清晰而有趣的视角,帮读者突破理解的壁垒,真正实现知识的尽情消化和良好吸收。
● 贴合应用,突出实战
相比其他深度学习教材,这套书将算法与代码紧密结合,力求手把手教读者用深度学习的方法解决实际问题。这套书大部分章节提供了Jupyter Notebook的源代码,以及所有模型的完整实现,可供读者在真实数据上运行,更可亲自动手修改,方便获得直观上的体验,进而真正帮助读者掌握深度学习的核心算法,提升实际问题的解决能力。
● 图文视频,三位一体
有别于其他图书单一的说教式文字描述,这套书不只局限于传统纸质图书的形式,特别注重配图、动画和视频,以更直观的方式展现模型的原理和应用场景。这种立体多维度的教学方式能够让读者更加深入、轻松地理解深度学习。
● 多元互动,个性辅导
这套书有配套的GitHub专栏课程和视频课程(收费),可满足不同读者的需求和学习习惯。同时,有专业的答疑团队与读者进行互动交流,解答读者疑问和提供技术支持,能够针对读者个性化的问题和困难,提供更加有针对性的辅导,加快读者学习进程,真正实现因材施教。
本书侧重于深度学习基础知识和原理的讲解,力求用深入浅出的语言、图例、动画等多种生动的形式让初学者更加容易入门。本书总计9章,内容分别如下。
● 第1章 欢迎来到深度学习的世界——本章主要介绍深度学习的基本概念和应用领域,包括神经网络原理和发展历程,深度学习在计算机视觉、自然语言处理、语音识别等领域的应用。通过本章的学习,读者可以初步理解深度学习的核心理念和实践领域,为之后的学习奠定坚实的基础。
● 第2章 必要的数学预备知识——本章以新颖的视角,高效地带读者回顾深度学习所需的数学知识,包括线性代数、微积分、概率论等。本章内容可以帮助读者在温习中更加了解它们在深度学习中的应用,为后续章节的学习做好准备。
● 第3章 环境安装和工具使用——本章主要介绍与深度学习环境相关的Python安装、深度学习框架PyTorch的安装和使用,以及Jupyter Notebook等实用工具的操作方法。通过本章,读者可以掌握深度学习环境的搭建和必备工具的使用,为后续的学习实践打下良好基础。
● 第4章 深度神经网络:误差倒查分解——本章主要介绍深度神经网络的核心原理和常见的网络结构,包括多层感知机、前向和反向传播、回归和分类问题等。本章可让读者对神经网络的本质,也就是误差倒查分解有深入的理解,确保为接下来的学习铺好路。
● 第5章 常见挑战及对策:一切为了泛化能力——本章主要介绍神经网络训练过程中的常见问题,比如过拟合和欠拟合,以及相应的正则化解决方案。通过本章的学习,读者会对什么是泛化能力有更加清楚的认识和思考。
● 第6章 梯度下降算法及变体:高效求解模型参数——本章讲解最优化理论与深度学习的关系,在此基础上全面回顾各种优化算法的发展历程,并用统一的框架让读者高屋建瓴地理解它们内在的关系,从而对如何高效求解模型参数加深认知。
● 第7章 基础卷积神经网络:图像处理利器——本章将专注于基础卷积神经网络的介绍,从图像卷积、卷积层、池化层到具体的代码实现,帮助读者快速熟悉这个图像处理利器。
● 第8章 基础循环神经网络:为序列数据而生——本章以序列数据为主要讨论对象,详细介绍基础循环神经网络模型的方方面面。
● 第9章 注意力神经网络:赋予模型认知能力——本章将会详细介绍注意力机制的原理和常见的注意力机制模型Transformer。通过本章学习,读者可以了解注意力机制的发展历程、核心思想和应用场景,深刻认知除CNN、RNN之外这第三类神经网络的奥秘。
本书提供如下资源:
● 本书源代码和彩图文件;
● 本书思维导图;
● 异步社区7天VIP会员。
要获得以上资源,读者可以扫描下方二维码,根据指引领取。
作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎读者将发现的问题反馈给我们,帮助我们提升图书的质量。
当读者发现错误时,请登录异步社区(https://www.epubit.com),按书名搜索,进入本书页面,单击“发表勘误”,输入勘误信息,单击“提交勘误”按钮即可(见右图)。本书的作者和编辑会对读者提交的勘误进行审核,确认并接受后,将赠予读者异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
我们的联系邮箱是wujinyu@ptpress.com.cn。
如果读者对本书有任何疑问或建议,请发送邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果读者有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。
如果读者所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果读者在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请将怀疑有侵权行为的链接发邮件给我们。这一举动是对作者权益的保护,也是我们持续为广大读者提供有价值的内容的动力之源。
“异步社区”(www.epubit.com)是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。
“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域多年来的发展与积淀。异步图书面向IT行业以及各行业使用IT技术的用户。
在开始正式介绍之前,我们先来解释大家可能会有的一些疑问,比如什么是深度学习、深度学习主要涉及哪些内容,以及深度学习能干什么?
深度学习(deep learning,DL),其核心就是“深”。这个“深”主要体现在模型结构上。对于了解神经网络的读者来说很好理解,就是将神经网络的隐藏层加深。对于不太了解的读者来说,可以简单理解为“三思而后行”。浅层神经网络只包含一层隐藏层,相当于瞬时反应,比如人的条件反射。深度神经网络则是让隐藏层变得更多,相当于深度熟虑以后再做出反应,如图1-1所示。
图1-1 神经网络结构示意
在上面这类神经网络的隐藏层中,前一层节点和后一层的每个节点之间都有连接,因此被称为“全连接网络”。它是基础神经网络,除此之外还有很多变体,我们将在后续章节中一一介绍。更深的网络结构意味着更多的参数、更大的模型,也意味着更高的算力需求。近些年深度学习的火热离不开算力的爆发式增长。从GPU到TPU,从单机单卡训练到分布式并行式训练,随着计算机硬件性能的提升,深度学习的效果越来越接近人类水平,甚至在某些领域已经超越了人类的平均水平。
那么,问题来了,深度神经网络的本质是什么?你有没有思考过这个本源问题呢?
理论上可以证明:一个多隐藏层神经网络能以任意精度逼近任意给定的连续函数。这也被称为全局逼近定理(universal approximation theory[1] ),其中Universal有人翻译为“万能”,充分表明了它的强大。通过两个不同的视觉表示来说明多层神经网络作为函数逼近器的能力,更加形象化地说明了全局逼近定理的概念,如图1-2所示。
[1] universal approximation theory也译作“通用近似定理”,从语义上看,“通用近似定理”要比“全局逼近定理”更贴近原意。为了与“术语在线”保持一致,这里采取了“全局逼近定理”的译文,请读者知悉。——作者注
图1-2 函数映射变换和叠加简单函数逼近复杂函数示意
图1-2(a)展示了从输入空间到函数映射空间的变换。左侧的正方形网格表示输入空间,其中每个小方格可以看作输入向量的一个成分。右侧的扭曲网格展示了一个高维空间,原本线性独立的网格被映射成复杂的曲面,代表神经网络通过激活函数和权重的调整所进行的非线性变换。sk表示输入层元素或者特征向量的分量。ξk是映射后的空间中与sk相对应的点。
图1-2(b)上侧展示了如何通过叠加多个简单函数来逼近一个复杂的连续函数。其中不同高度的矩形条被用来构造出一条近似的曲线。这些矩形条可以看作激活函数的加权输出,神经网络通过调整权重hn(矩形的宽度和高度)来最小化预测和实际输出之间的差异。下侧的模型是对应的神经网络实现,输入乘以权重hn再相加产生输出。
从另一个角度看,深度神经网络强大的本质还在于,它能通过隐藏层神经元的非线性空间变换,使原本非线性不易区分的数据在新的特征空间中变为线性可区分。如图1-3所示,左侧的平面上有两条曲线(蓝色和红色),代表二维空间中的两类数据分布。它们在原始特征空间中是不可区分的,但通过一系列变换被映射到新的特征空间后,两种颜色的数据分布可以通过一个超平面来分隔。而实现这种变换的秘诀就在于激活函数(如Sigmoid函数)的使用。关于这里的数学证明和代码实现,我们在后续章节中都会讲到。
总体来说,全局逼近定理的重要性在于,它为使用神经网络来解决各种各样的非线性和高维问题提供了理论基础,证明了其在各种领域应用的可能性。然而,定理本身并不保证找到这样的近似解是容易的,也不保证学习过程的效率和收敛性,这些都是实际应用中的挑战。
图1-3 非线性空间变换示意
本书第2章将带领大家快速回顾必要的数学知识,第3章介绍动手编程所需的环境搭建。在此基础上,第4章将详细介绍深度神经网络的基本原理,第5章讲述常见的问题和对策,第6章介绍求解模型参数的各种梯度下降算法及其变体。许多初学者常见的疑问是,深度神经网络是如何解决实际问题的?正则化为什么有助于缓解过拟合问题?到底选择哪种优化算法最好?学完这些章节后,你都会找到答案,对深度神经网络的理解也将上升一个层次,不仅能知其然,还能知其所以然。
面对不同的数据和应用领域,深度学习在基础网络结构之上演变出了各种专用模型,它们的主要差异体现在网络结构。其中主流的模型包括三类:卷积神经网络、循环神经网络和注意力神经网络。这三类模型各有特点,分别完成不同的任务。就好像有的人观察力强,可以当侦探;有的人表达力强,适合当老师;有的人战略眼光长远,适合当领导。本书将在后文以及《破解深度学习(核心篇):模型算法与实现》中详细介绍这三大类深度模型及其各种典型变体。
卷积神经网络(convolution neural network,CNN)是人脸识别、自动驾驶汽车等大多数计算机视觉应用的支柱。它就像个侦探,拿着放大镜对图像进行逐行扫描。2012年,多伦多大学研究人员在著名的ImageNet挑战赛中使用基于CNN的模型(AlexNet),以16.4%的错误率获胜,受到学术界和业界的关注,由此引发了人工智能(AI)新的热潮。典型CNN结构示意及其发展时间线如图1-4所示。
第7章将从全连接层的局限开始讲起,详细介绍图像卷积、卷积层、池化层等网络结构技术细节和代码实现,使读者对CNN有全面深入的了解。在《破解深度学习(核心篇):模型算法与实现》中,我们会沿着时间线,详细介绍从20世纪末到现在主流的CNN变体,包括AlexNet、VGG、GoogLeNet、ResNet、DenseNet等模型。
图1-4 典型CNN结构示意及其发展时间线
如同CNN专门用于处理图像这种二维数据信息,循环神经网络(recurrent neural network,RNN)是用于处理序列信息(比如股票价格、声音序列、文字序列等)的一种特殊结构的神经网络。它包含了记忆单元,能够根据历史信息推断当前信息。关于如何训练序列神经网络以及如何解决长期依赖问题,在第8章将提供详细解答。
除了经典的RNN,我们将在《破解深度学习(核心篇):模型算法与实现》介绍深度RNN、双向RNN、门控循环单元(GRU)、长短期记忆网络(LSTM)、编解码器网络等更加复杂的序列数据处理模型。典型RNN结构示意及其主要复杂序列模型如图1-5所示。
图1-5 典型RNN结构示意及其主要复杂序列模型
2014年,注意力机制(attention mechanism,AM)首次应用于时间序列数据分析,引发了人们对其在序列处理上应用的广泛兴趣。
2017年,“Attention Is All You Need”这篇具有里程碑意义的论文发布,标志着自注意力机制的兴起,伴随而来的是Transformer模型的诞生。该模型迅速在深度学习领域确立了其领先地位,并激励了一系列后续模型的开发。
2022年年末,基于注意力机制的Transformer网络衍生出广受欢迎的ChatGPT。在第9章中,我们将深入探讨注意力机制的原理、自注意力机制、多头注意力等核心概念,并指导读者构建自己的Transformer网络。
在《破解深度学习(核心篇):模型算法与实现》中,我们将介绍更多新的研究成果,包括BERT、GPT等系列模型以及它们在自然语言处理(NLP)和计算机视觉等领域的变体。在学完这些内容之后,你将会对预训练大模型的奥秘有进一步的认识。注意力机制示意及其发展时间线如图1-6所示。
图1-6 注意力机制示意及其发展时间线
从CNN到RNN,再到Attention,都是深度学习核心的网络结构和入门必备的基础。接下来,我们将介绍深度学习的进阶内容“深度生成模型”。如果说前面三大类基础模型是组件,深度生成模型就是它们的组合体,代表着人工智能领域的前沿发展方向,并在图像、音频、文本等生成式人工智能(AIGC)领域得到了广泛应用。
在《破解深度学习(核心篇):模型算法与实现》中,从蒙特卡洛方法和变分推断,到变分自编码器(VAE)、卷积生成网络、生成对抗网络(GAN),再到最新的扩散模型,我们会逐一讲解,实现全覆盖式的介绍。GAN和VAE的结构示意如图1-7所示。
图1-7 GAN和VAE的结构示意
在本节中,我们探讨了深度学习中的几种核心网络结构,例如卷积神经网络、循环神经网络和注意力机制。每种网络结构都有其特定的应用场景和优势。CNN在图像处理领域表现出色;RNN擅长处理序列数据;注意力机制,尤其是Transformer模型,引领了深度学习的新方向。最后,深度生成模型将上述基础模型的功能组合起来,推动了AI内容生成的新浪潮。
俗话说,学以致用。有的读者可能会提出疑问,深度学习能应用于哪些领域呢?实际上,它的应用范围极其广泛。
从技术角度出发,深度学习主要应用于计算机视觉、语音技术以及自然语言处理等核心领域。计算机视觉涉及图像和视频的识别、分类与处理;语音技术则关注于对人类语音信号的识别和生成;自然语言处理使计算机能够理解和生成人类语言。
这些技术的结合推动了多模态融合的发展,并在各个行业得到了应用。
在计算机视觉领域,所处理的对象包括图像和视频。该领域的基础应用已经相当成熟,涉及文字识别、人脸识别和物体识别等,如图1-8所示。
图1-8 计算机视觉典型应用场景
这些技术不仅广泛应用于手机(如手写输入法和人脸支付功能),还渗透到了医疗、教育和日常办公等多个行业,例如,医疗行业中病历的数字化处理,教育领域中作业的自动批改,以及日常办公中的报表自动录入等任务。同样,人脸识别技术也用于工作打卡系统和高铁乘客身份验证等。
在《破解深度学习(核心篇):模型算法与实现》,我们将详细探讨计算机视觉中深度学习的具体应用,并通过实际案例让读者更深入地理解这些技术的实现细节。
除了识别类任务,计算机视觉还包含超分辨率算法,如图1-9(a)所示。这项技术致力于通过已有的图像信息来恢复和增强图像的细节,其本质是提高图像的分辨率。
虽然超分辨率算法在深度学习出现之前就已经有相关研究,但应用深度学习技术的算法在提升图像处理性能方面远超传统技术。现今,这项技术已广泛用于视频增强和游戏图像的高清化处理中。
图像生成也是计算机视觉的重点方向之一,如图1-9(b)所示。当前网上有很多图像生成软件,生成的图像通常可以以假乱真。这些图像生成软件的存在已经严重威胁到插画师的生存。除了生成图像,这些软件还可以生成视频。很多恶搞类的应用,比如AI换脸,其背后就用到了深度学习技术。
图1-9 超分辨率算法图像生成示意
深度学习在语音方面的应用也早已非常成熟,具体包含两个方面:自动语音识别(ASR)和文本语音转换(TTS)。微信里的语音转文本功能就是ASR的应用方向。手机语音助手和智能音箱之所以能“听懂”你说的话,也是借助ASR。大家平时刷短视频时总能听到一些熟悉的语音,基本上都是利用TTS自动生成的。
语音技术的普及让视频创作成本进一步降低,极大提高了创作者的生产力水平。
在自然语言处理(natural language processing,NLP)领域,最常用也最成熟的应用是机器翻译。近几年,机器翻译的质量越来越高,比如翻译论文或者国外新闻网站,其翻译出错的概率越来越低。日常生活中高频使用的购物订票类App中很多应用了基于AI技术的智能客服。
此外,想必大家都用过ChatGPT,如图1-10(a)所示。作为一个大语言模型,它总能正确理解用户的意图,并生成相关的文字,让人大呼有趣。这些进步都源于其背后的深度学习算法,特别是NLP算法的提升。
在《破解深度学习(核心篇):模型算法与实现》,我们将带领大家实现一个NLP项目,让你具体了解分析的详细流程。
知识图谱也是NLP领域的研究重点之一,如图1-10(b)所示。它是一种描述知识的语义网络,用于表示真实世界中存在的各种实体和概念以及它们之间的关系。构建知识图谱和应用知识推理都会用到深度学习技术。
图1-10 ChatGPT和知识图谱示意
无论计算机视觉、语音技术,还是自然语言处理,这些技术往往不是孤立应用的。比如,“虚拟主播”应用会同时用到视觉、语音以及自然语言处理技术:
● 主播的形象生成、表情变化、口型和手势变化依靠视觉技术;
● 播报内容的生成依靠自然语言处理技术;
● 倾听用户发言和播报内容则依靠语音技术。
类似多模态融合应用还有很多,底层算法基础都是深度学习。我们将在《破解深度学习(核心篇):模型算法与实现》中向大家介绍最新的典型模型和发展趋势,让大家明确学习目标和下一步的学习路线。
除了上述研究领域,深度学习的行业应用就更多了。
在自动驾驶中,深度学习可以帮助汽车识别路况、道路、行人、其他车辆等,避开障碍物并进行决策。
在生物信息学领域,深度学习可以用于基因组学分析、蛋白质结构预测,以及其他任务。
医学诊断也是一个重要的应用领域,在该领域,深度学习可以帮助医生诊断疾病,快速分析CT、MRI等医学影像,提供建议的治疗方案并进行预测。
在金融预测领域,深度学习可以帮助金融机构预测股市走势,决定投资策略并进行风险评估。
在推荐系统领域,深度学习能够帮助网站或应用推荐内容、商品等。现在几乎每个电商网站的推荐系统都使用了深度学习技术,根据用户的历史行为、兴趣等向用户推荐相关的内容。
此外,深度学习在农业中用于作物识别和作物产量预测,在天文学中进行星系形态分类和距离预测,在地球科学领域执行地震预测、气候模拟和地质勘探等任务。
总体来说,深度学习已经渗透到社会生活的方方面面和各种行业,并积累了许多成功案例。随着计算能力的提高和数据量的增加,未来深度学习技术将会继续发展,并在更多领域得到广泛应用。
本节深入探讨了深度学习在多个重要领域的应用,突出了其在计算机视觉、语音技术、自然语言处理以及多模态融合中的关键作用。计算机视觉的应用覆盖图像和视频的识别、分类与处理,从日常使用的人脸识别到医疗图像分析。语音技术的进步让设备能更好地理解和生成人类的语言,极大地推动了交互式应用的发展。自然语言处理技术的提升,尤其是在机器翻译和自动生成文本方面,已经极大地影响了我们获取和处理信息的方式。多模态融合的应用展示了如何将视觉、语音和语言处理技术结合起来,创造出更加智能和互动的系统。
前面我们从整体上认识了深度学习主要内容和应用领域,明确了为什么学和怎么用的问题。在开始正式学习各种算法和模型之前,需要做一些准备工作。在本节中,我们先来介绍一下所涉及的技术栈,关于开发环境搭建的更多问题,会在第3章进行更详细的讲解。工欲善其事,必先利其器,不要小瞧这些内容,很多刚入门的读者,在这个地方会遇到各种问题。
深度学习的编程语言首选Python,这个是毋庸置疑的。目前TIOBE编程语言排行榜上,Python排名仍然位列第一。除了代码简洁优雅,主要是因为Python的生态良好,有强大的自带标准库和大量的第三方支持库,比如对科学计算以及深度学习框架(像耳熟能详的TensorFlow、PyTorch等)都有着良好的支持。
流行的深度学习框架包括谷歌的TensorFlow、Meta的PyTorch以及百度研发的飞桨(PaddlePaddle)等。高度可定制性和可扩展性使它们成为当前广受欢迎的框架。几年之前,流行的框架当属TensorFlow,不过PyTorch在近几年实现了全方位的超越。在开源库Hugging Face上,85%的模型只能在PyTorch上使用。
此外,在很多学术顶会上,比如EMNLP、ACL、ICLR三家AI顶会,PyTorch也是遥遥领先,其占比已经超过80%。为此本书采用PyTorch框架,让大家能够无障碍地上手大部分开源项目。
在代码实现环节,我们将采用当前比较主流的数据集,除了入门级的MNIST,还有牛津大学的Flowers102数据集、Twenty Newsgroups新闻分类数据集等。在第8章,我们会用pandas加载金融数据进行预测。在《破解深度学习(核心篇):模型算法与实现》中,我们会介绍知名竞赛网站Kaggle上的数据集,还将带领大家了解NLP预训练模型竞赛排行榜中的打榜数据集GLUE。我们选取的都是比较有代表性的数据集,这些都将是你在未来学习实验、参加竞赛甚至工作中会用到的。
本书使用的代码编辑器为Jupyter Notebook。它是一个非常易用、基于网页的交互式编辑器,不仅可以执行代码,还可以同时编写文档。Jupyter Notebook支持Markdown语法,支持使用LaTeX编写数学公式,以便边学习边做笔记,与他人共享。
它还有个优点是代码块可以按行执行。在算法学习中,我们经常需要修改参数,使用Jupypter Notebook可以无须重新执行整个代码文件,而只需执行修改的那行代码,非常方便快捷。
我们在着手解决更为复杂的实际问题时,经常需要编写多文件的复杂代码。在这种情况下,Jupyter Notebook可能就不足以支持了。此时,我们推荐使用两款功能丰富的Python集成开发环境(IDE):PyCharm和Visual Studio Code。这两者都可从官网直接下载。
对于PyCharm,虽然它提供了Professional(专业版)和Community(社区版)两种版本,不过对大多数用户而言,免费的社区版已经足够满足日常开发需求。
“战场”搭建好会为后续学习奠定坚实的基础。这部分的内容不难,但是需要一点耐心。除了本节介绍的内容,后面我们还会在第3章用整章篇幅具体讲解CUDA和Anaconda深度学习环境配置、conda实用命令、Jupyter Notebook快速上手秘籍和PyTorch的安装教程。
到这里,相信大家已经对本书有了大致的了解。在正式深入学习之前,我们先来回顾一下相关的数学知识,这一步非常重要。读者如果已经有扎实数学基础,那么可以选择跳过第2章。如果你感觉自己的数学基础有所欠缺,或者对许多内容已经遗忘,也不必担心,我们会用简明易懂的方式详细解释所有必要的知识点,以帮助你迅速补齐“短板”。