书名:深度学习:基础与概念
ISBN:978-7-115-66370-2
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 [英]克里斯托弗·M.毕晓普(Christopher M.Bishop)
[英]休·毕晓普(Hugh Bishop)
译 邹 欣 阮思捷 刘志毅 王树良
责任编辑 李 莎
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
First published in English under the title
Deep Learning: Foundations and Concepts
by Christopher M. Bishop and Hugh Bishop
Copyright © Christopher M. Bishop and Hugh Bishop, 2024
This edition has been translated and published under licence from Springer Nature Switzerland AG.
本书简体中文版由Springer Nature Switzerland AG授权人民邮电出版社出版。未经出版者书面许可,对本书的任何部分不得以任何方式或任何手段复制和传播。
版权所有,侵权必究。
本书全面且深入地呈现了深度学习领域的知识体系,系统梳理了该领域的核心知识,阐述了深度学习的关键概念、基础理论及核心思想,剖析了当代深度学习架构与技术。
全书共20章。本书首先介绍深度学习的发展历程、基本概念及其在诸多领域(如医疗诊断、图像合成等)产生的深远影响;继而深入探讨支撑深度学习的数学原理,包括概率、标准分布等;在网络模型方面,从单层网络逐步深入到多层网络、深度神经网络,详细讲解其结构、功能、优化方法及其在分类、回归等任务中的应用,同时涵盖卷积网络、Transformer 等前沿架构及其在计算机视觉、自然语言处理等领域的独特作用。本书还对正则化、采样、潜变量、生成对抗网络、自编码器、扩散模型等关键技术展开深入分析,阐释其原理、算法流程及实际应用场景。
对于机器学习领域的新手,本书是全面且系统的入门教材,可引领其踏入深度学习的知识殿堂;对于机器学习领域的从业者,本书是深化专业知识、紧跟技术前沿的有力工具;对于相关专业的学生,本书是学习深度学习课程、开展学术研究的优质参考资料。无论是理论学习、实践应用还是学术研究,本书都是读者在深度学习领域探索与前行的重要指引。
现任北京中关村学院工程素养发展部负责人。曾在 Momenta 担任资深架构师,在 CSDN 担任研发副总裁,在微软 Azure、必应、Office 和Windows 产品团队担任首席研发经理,并在微软亚洲研究院进行了多年创新工作,在软件开发和软件工程教育方面有着丰富的经验。著(合著)有《编程之美》《构建之法》《智能之门》《移山之道》等专业图书,其中《构建之法》是多所高校的软件工程教材。
北京理工大学计算机学院特别副研究员,ACM SIGSPATIAL中国分会执行委员,主要研究时空数据智能。主持国家自然科学基金、国家重点研发计划子课题等国家级项目5项,发表高水平学术论文40余篇,受邀担任ICDE等国际会议分论坛主席,ICLR、NeurIPS、ICML、TKDE、KDD等人工智能和数据挖掘领域国际顶级会议或期刊审稿人。入选中国电子学会博士学位论文激励计划,获中国指挥与控制学会科学技术奖一等奖、SIGSPATIAL中国优博奖等。
中国人工智能领军科学家,上海市人工智能社会治理协同创新中心研究员,在AI领域深入研究和实践十余年,涉及智能计算、空间智能以及超级人工智能对齐方向。中国人工智能学会人工智能伦理与治理工作委员会委员及具身智能专业委员会(筹)委员,上海交通大学计算法学与人工智能伦理研究中心执行主任,上海交通大学安泰经济与管理学院AI与营销研究中心特聘研究员,上海交通大学清源研究院兼职研究员,上海开源信息技术协会AI伦理与治理专业委员会主任,2024年入选福布斯中国“十大人工智能影响力人物”。国际电工委员会生物数字融合系统评估组(IEC/SMB/SEG12)伦理专家,国家人工智能标准总体组专家,AIIA联盟可信AI 专家委员会委员,上海市人工智能技术协会专家委员会委员。出版《智能经济》《数字经济学》《智能的启蒙:通用人工智能与意识机器》等十几部中英文专著,翻译多部海外学者专著,作品入围施普林格·自然出版社“中国新发展奖”(2023年度)。
北京理工大学特聘教授,北京理工大学电子政务研究院执行院长。国家级领军人才,国家重点研发计划项目首席科学家。主要研究空间数据挖掘、社会智治。中英文专著《空间数据挖掘理论与应用》被誉为“空间数据挖掘的里程碑式力作”。曾获国家科技进步奖一等奖、中国指挥与控制学会科学技术奖一等奖、全国优秀博士学位论文、IEEE GrC Outstanding Contribution Award等。
中国科学技术大学-微软研究院联合培养博士生,专注于深度学习在药物设计和分子建模中的应用。在前沿科研领域积累了丰富的经验,积极参与创新性研究。
中国科学技术大学-微软研究院联合培养博士生。主要从事大模型与 AI for Science 的研究,在《自然机器智能》等人工智能领域国际顶级期刊和会议发表论文若干。
华中科技大学-微软研究院联合培养博士生。专注于深度学习和AI for Science的研究,在分子结构建模和多模态建模方面积累了丰富的经验。
中山大学-微软研究院联合培养博士生。自2018年起,专注于深度学习和人工智能方向的研究,积累了丰富的前沿科研和实际应用经验。在隐私保护深度学习方向发表多篇国际知名文章,相关成果得到业界广泛采用。
本书作者在1995年出版过关于神经网络的NNPR(Neural Networks for Pattern Recognition)一书,2006年又出版了从贝叶斯主义角度诠释机器学习的名著PRML(Pattern Recognition and Machine Learning),本书是其最新力作,很值得期待。
——周志华,南京大学教授,国际人工智能联合会理事会主席
相信每一个希望学习和掌握深度学习技术的人,都会将机器学习专家Christopher Bishop与Hugh Bishop共同撰写的这部基础著作置于案头,潜心研读,时常翻阅,感悟深度学习概念之精妙,掌握其方法之要义,理解其技术之真谛。
——李航,字节跳动研究部门负责人,ACM会士,ACL会士,IEEE会士
我有幸与Christopher Bishop共事多年,他对研究和教育的热情,以及严谨的学风都值得我们学习。他在2006年出版的PRML是很多机器学习爱好者的启蒙图书,广受好评。当他和我交流想要写一本关于深度学习的新书时,我表示大力支持,并让团队成员提供了早期反馈。在得知他的新书将翻译成中文后,我更是让我的四位博士生积极参与了审校工作。我相信这本书在中国的出版,一定会为广大读者系统性地学习、研究和应用深度学习打下坚实的基础,为人工智能的普及做出重要贡献。
——刘铁岩,北京中关村学院院长,中关村人工智能研究院理事长,
IEEE会士,ACM会士
Christopher Bishop(经典之作PRML作者)与Hugh Bishop合著的新作《深度学习:基础与概念》,深入浅出地阐释了从基础理论到前沿模型与算法,非常适合作为人工智能初学者和从业者的教材。很高兴看到本书引用了我们研究组的论文“Network in Network”,非常期待本书为深度学习进一步普及和发展发挥积极作用。
——颜水成,新加坡国立大学教授,AAAI会士,SAEng院士,
ACM会士,IEEE会士,IAPR会士
翻开Christopher Bishop的经典之作PRML时,献辞页上他们的全家合影曾让无数读者会心一笑。17年后,合影中的父与子两代学者联袂执笔,以深度学习领域新著完成两代人的学术接力——从概率图模型的黄金年代到Transformer掀起的大模型浪潮,这场横跨经典与前沿的对话,恰是AI发展史的生动注脚。新作延续了PRML的治学精魂:以概率论为筋骨构建理论框架,用数学之美解构深度网络,在全书各个章节中,仍可见严密逻辑铸就的“铜墙铁壁”。当业界追逐“更大、更多、更快”时,这部承袭经典又直面未来的著作,恰似一盏明灯。它不仅是学术传承的里程碑,更为每一位AI探索者提供了锚定技术浪潮的思维坐标系。
——王斌,小米AI实验室主任
这是一本关于深度学习的不可多得的佳作。当前,AI 已步入大语言模型时代,而深度学习则是其理论根基。本书系统梳理了从决策式 AI 到生成式 AI 的理论架构和发展路径。无论是科技工作者、行业从业者,还是研究生,都能借它夯实基础,启迪创新,行稳致远。
——周明,澜舟科技创始人,微软亚洲研究院原副院长,
ACL主席、CCF副理事长
本人曾经使用Christopher Bishop所著的《模式识别与机器学习》(PRML)这一经典教材内容讲授过相关课程,受益匪浅。而作者的这部新作从概率、统计和计算等综合交叉角度讲解算法和模型,凸显了通过可解释性和可计算性去模拟智能的内禀,相信读者在阅读本书的过程中,会有大语言模型的“顿悟时刻”(Aha Moment)——这是人类认知过程中一种突然的、非线性的问题解决的美妙体验。
——吴飞,浙江大学本科生院院长、人工智能研究所所长
近些年人工智能发展迅猛,大语言模型的出现,更是使得人工智能的发展迈向新的台阶。然而这一切的基础均来自神经网络和深度学习。本书详细、系统地介绍了神经网络和深度学习的各个方面,重点关注那些可经受住时间考验的方法,这为读者进一步学习、利用和研究人工智能,打下了非常良好的技术基础。
——马少平,清华大学教授
2006 年,Christopher Bishop 的PRML以贝叶斯视角揭示了机器学习算法的本质,被称为该领域的“圣经”。如今,他以这本新作系统梳理了深度学习近20年来的理论基础与关键进展。从机器学习到深度学习,再到大语言模型,下一站是具身智能?Bishop,让人工智能历史,照见人类科技未来。
——刘云浩,清华大学教授
PRML影响了包括我在内的一代AI研究者。Bishop这本新作延续了他一贯的深度,不仅系统讲解了机器学习的核心基础,还涵盖了Transformer、扩散模型、自监督学习等的新进展,是一本既扎实又有前瞻性、既适合打基础也适合深入探索的好教材。
——谢赛宁,纽约大学计算机科学助理教授
本书深入而系统地介绍了机器学习和深度学习领域的基本概念、数学原理和前沿研究,并附有丰富的习题。英文原书一上市就获得了各界青睐,第一作者Christopher M. Bishop在机器学习领域深耕40多年时间,他早在20世纪90年代就出版了畅销书Pattern Recognition and Machine Learning(PRML),该书在模式识别和机器学习领域一直被广泛采用。
以ChatGPT为代表的大语言模型于2022年年底激发了AI领域的新热潮,引领国内学术界和产业界迅速跟进,并催生了众多相关模型与创业公司。在这个技术迅猛发展、新应用案例频频成为热点、自媒体每天都被“震惊”的时代,大家还有必要学习有关深度学习的理论、数学原理和算法基础的书吗?
正如作者在前言中提到的,“大语言模型正在迅速演进,然而其底层的Transformer架构和注意力机制在过去5年基本保持不变,并且机器学习的许多核心原则已被人们熟知数十年。”我们只有吃透这些“不变”的原理,才能不被眼花缭乱的“震惊”迷惑。
“磨刀不误砍柴工”,掌握数学基础和算法理论,如梯度下降和反向传播、Transformer等,对于设计高效神经网络架构至关重要。我们希望读者能设计合适的损失函数和优化策略来提高训练速度与模型的泛化能力,在实践中快人一步,而不是仅仅成为操作熟练的“调参工程师”。
坚实的数学和算法基础能让读者更好地将深度学习技术应用于新的领域,比如将图神经网络应用于社交网络和生物信息学,以及把对流的标准化和结构化分布的深入理解应用于处理非规范数据,从而在前沿领域取得突破。只有掌握了原理,我们才能实现从“应用上的跟随”到“技术突破和创新”的本质性改变。
本书由邹欣、阮思捷、刘志毅、王树良翻译。邹欣翻译了前言、第1章、第7章和第13~20章,阮思捷翻译了第2章、第6章、第10章、附录和索引,刘志毅翻译了第5章、第8章、第11章和第12章,王树良翻译了第3章、第4章和第9章。
“工以利器为用”,我们都是业余的翻译者,在翻译工作启动的时候,大家都同意要致力于提高译文的精确性和可读性,但有时心有余而力不足。在翻译这部长篇著作时,我们的译文草稿的确出现了我们自己也不甚满意的翻译腔和一些充满技术词汇的长句。经过多次修改、多轮审校,并辅以大模型才得到一个相对满意的版本。
为了最大限度地忠实于原著的技术细节和作者的表达意图,避免因格式调整可能带来的理解偏差或信息损耗,本书中的公式均完整保留了原著的格式,其中部分公式里括号的使用可能与我们的使用习惯不尽一致,但这并不会影响公式本身的数学意义和逻辑关系。书中数学符号的使用规则,详见本书前言中“数学符号”部分的内容。
“人以贤友为助”,我们的译稿有幸得到了微软研究院科学智能中心专业团队的评阅和审校,在首席科学家刘铁岩的支持和帮助下,研究院的专家们逐字逐句地审读了译稿,提出了许多恳切而宝贵的意见。在此对吴可寒、何纪言、高开元、于达、宫茜、高航等审校者表示诚挚的感谢。我们还要感谢参与部分译稿审校工作的北京理工大学的唐颂、杨芊雨、邹怡清、李征峻、朱嘉宝、蒋任驰、韩昊豫等研究生。
在翻译的过程中,我们得到了人民邮电出版社编辑团队的大力支持和配合,从工作的协调到多轮的审校,他们都安排得井井有条,使本书得以高效地翻译和出版。
“以铜为鉴,可正衣冠”,“以人为鉴,可明得失”。诚邀读者提供反馈,帮助我们持续改善,让本书在深度学习领域帮助更多的人。
使用本书作为教材的教师,可申请加入“异步教师服务”群(QQ:661759394)获取配套教学PPT。
译者团队
2024年8月3日
深度学习使用多层神经网络,并借助大型数据集的训练来解决复杂的信息处理任务,已成为机器学习领域的成功范式。在过去的十多年里,深度学习已经深刻改变了计算机视觉、语音识别和自然语言处理等领域,并且正越来越多地应用于医疗保健、制造业、商业、金融、科学探索等众多行业。近期,被称为大语言模型的超大神经网络——包含高达万亿数量级可学习参数,已经显示出通用人工智能的初步迹象,它们正在引发技术史上的一次重大颠覆。
机器学习的影响力不断扩大,相关出版物数量和涵盖范围呈爆炸式增长,创新的步伐仍在持续加快。对于这一领域的新人来说,仅是掌握核心思想就已经足够艰巨,更不用说赶上研究前沿了。在这样的背景下,本书将帮助机器学习的新手及有经验的从业者全面理解支撑深度学习的基础理论,以及现代深度学习架构和技术的关键概念,为读者未来在专业领域的深造打下坚实的基础。鉴于深度学习领域知识的广泛性和变化速度,我们有意避免写一本涵盖最新研究的全面综述。相反,我们在本书中展现了对深度学习关键思想、基础和概念的提炼,这些基础和概念在该领域过去和将来的快速发展中历久弥新。例如,在撰写本书时,大语言模型正在迅速演进,然而其底层的Transformer架构和注意力机制在过去5年基本保持不变,并且机器学习的许多核心原则已被人们熟知数十年。
深度学习是一项功能强大、适用范围广泛的技术,具有为世界创造巨大价值和应对社会最紧迫挑战的潜力。这些特点也意味着有人可能蓄意滥用深度学习技术,引发意外伤害。我们选择不讨论深度学习使用中的伦理或社会层面问题,因为这些话题非常复杂,超出了本书作为计算机教材的讨论范畴。不过,我们仍然希望读者通过本书加深对底层技术及其工作原理的理解,并希望本书为上述问题的讨论做出有价值的贡献。我们强烈建议读者关注技术工作更广泛的影响,并在学习技术本身的同时,了解如何负责任地使用深度学习和人工智能。
本书分为20章,每一章均探讨一个具体的主题。我们以线性结构组织本书内容,即每章的内容仅依赖于前面章节中的材料。本书非常适合用来教授两个学期的本科或研究生机器学习课程,同样也适合那些正在积极研究或自学深度学习的读者参考。
要清晰地理解机器学习,必然需要具备一定程度的高等数学知识。具体来说,机器学习的核心由三个数学领域构成:概率论、线性代数和多元微积分(也称多变量微积分)。本书提供了对所需概率论概念的完备介绍,还通过附录A概括了线性代数的一些有用结论。附录B和附录C分别提供了关于变分法和拉格朗日乘子的介绍,我们假定读者已经熟悉多变量微积分的基本概念。本书的重点是传达清晰的概念理解,强调的是那些在现实世界中具有实用价值的技术,而不是抽象的理论。我们尽可能从多个互补的视角(例如文本描述、图表和数学公式)呈现复杂的概念。此外,我们使用独立的板块总结了许多关键算法,这些总结虽然没有提高算法的计算效率,但是补充了文中的数学说明。因此,我们希望不同背景的读者都能理解本书中的内容。
从概念上讲,本书或许自然而然会被视为Neural Networks for Pattern Recognition(Bishop, 1995b)的后续作品,后者首次从统计学角度全面介绍了神经网络。本书可以看作Pattern Recognition and Machine Learning(Bishop, 2006)的“姊妹篇”,虽然后者出版于深度学习革命之前,但是其中涵盖了机器学习领域更广泛的议题。本书采用了Pattern Recognition and Machine Learning中的一部分相关内容并进行了改写,以更专注于深入学习所需的基础概念,确保内容能自成一体。但这也意味着Pattern Recognition and Machine Learning中的很多有趣且历久弥新的机器学习议题并没有出现在这本新书中。例如,Pattern Recognition and Machine Learning深入讨论了贝叶斯方法,而本书几乎不讲贝叶斯方法。
本书配有一个网站,用于提供配套素材,包括本书的免费数字版本、习题的解答,以及PDF和JPEG格式的可下载图表版本。这个网站的网址为:
https://www.bishopbook.com
本书可以用下面的 BibTex 格式来引用:
@book{Bishop:DeepLearning24, author = {Christopher M. Bishop and Hugh Bishop}, title = {Deep Learning: Foundations and Concepts}, year = {2024}, publisher = {Springer} }
如果你对本书有所建议或者反馈错误,请发邮件到contact@epubit.com.cn。
本着关注核心思想的精神,我们没有提供本书全面的文献综述,深度学习这个领域的规模和变化速度也让提供全面的文献综述变成一项很难完成的任务。为了保持读者对核心概念的注意力,我们淡化了很多重要的实现细节。但是,我们确实提供了一些重要的研究论文、综述文章和其他资料,读者可以自行阅读和探索。
已经有很多相关图书讨论了机器学习和深度学习的主题。与本书水平和风格较为接近的包括Bishop(2006)、Goodfellow, Bengio, and Courville(2016)、Murphy(2022)、Murphy(2023)以及Prince(2023)。
在过去的十多年里,机器学习的学术研究方式发生了显著变化,许多人先把论文发表在线上文献资料站点,之后再提交到同行评审的会议和期刊,甚至都不提交了。这些文献资料站点中最受欢迎的是arXiv。
arXiv站点提供每篇论文的免费 PDF 版本,也允许作者更新论文,这常常导致文献引用版本的混乱,因为一篇论文可以有和不同年份相关联的多个版本。鉴于此,尽管我们推荐阅读论文的最新版本,但还是采取了一种简单的方法——根据首次上传的年份引用论文。
arXiv站点上的论文使用标记索引为 arXiv:YYMM.XXXXX,其中YY和MM分别表示论文首次上传的年份和月份。论文的后续版本则通过在索引的后面附加一个版本号N(arXiv:YYMM.XXXXXvN) 来表示。
从第2章开始,我们在每章最后都会给出一套设计好的习题,旨在帮助读者巩固书中解释的关键思想或以重要方式扩展和泛化它们。这些习题是本书的重要组成部分,每道习题按难度分级,从几分钟就能完成的简单的一星级(*)到明显更复杂的三星级(***)。我们强烈建议读者做题练习,学以致用,因为这样能极大地提升学习效果。读者可以从本书配套网站下载所有习题的答案。
本书沿用Bishop(2006)的符号表示。有关机器学习背景下的数学概述,请参阅Deisenroth, Faisal, and Ong(2020)。
向量用小写粗斜体罗马字母表示,例如x。矩阵用大写粗斜体罗马字母表示,例如M。除非另行说明,否则所有向量都假定为列向量。“T”表示矩阵或向量的转置,因此是行向量。符号
表示具有
个元素的行向量,相应的列向量记作
。
的单位矩阵(也称基本矩阵)记作
,如果其维度不存在歧义,则简记为
。单位矩阵的元素
在
时等于
,在
时等于
。单位矩阵的元素有时记作
。符号
表示所有元素均为
的列向量。
表示向量a和b的拼接,即如果
,
,则
。
表示标量
的模(正部),也称绝对值。矩阵A的行列式记作det(A)。
符号表示
是从分布
中采样的,如果存在歧义,则使用下标,例如
。函数
相对于随机变量
的期望记作
,在对变量取平均值没有歧义的情况下,其后缀可以省略,例如
。如果
的分布以另一个变量
为条件,那么相应的条件期望将记作
。类似地,
的方差记作
;对于向量变量,协方差记作
。在本书中,我们使用
作为
的简写符号。
符号的含义是“任意”,因此
表示集合
中所有
的值。符号
表示实数集。在图[1]中,节点
的邻居集合记作
,请注意其与高斯分布或正态分布
的区别。泛函记作
,其中
表示某个函数。附录B介绍了泛函的概念。花括号
表示集合。符号
表示
在
时有界。例如,如果
,则
。符号
表示
向下取整,即小于或等于
的最大整数。
[1] 这里的图是一种数据结构。——编辑注
如果有个独立同分布(i.i.d.)的观测值
,其中
(1 < n < N)是一个
维向量,则可以将这些观测值组合成一个维度为
的数据矩阵X,其中X的第
行对应于行向量
。因此,X的
行
列元素对应于第
个观测值
的第
个元素,记作
。对于一维变量,我们用小写字母x表示列向量形式的矩阵,其第n个元素为xn。需要注意的是,x(其维度为N)和x(其维度为D)使用了不同的字体以示区别。
笔者衷心感谢众人审查了各章初稿并提供了宝贵的反馈意见。特别感谢Samuel Albanie、Cristian Bodnar、John Bronskill、Wessel Bruinsma、Ignas Budvytis、Chi Chen、Yaoyi Chen、Long Chen、Fergal Cotter、Sam Devlin、Aleksander Durumeric、Sebastian Ehlert、Katarina Elez、Andrew Foong、Hong Ge、Paul Gladkov、Paula Gori Giorgi、John Gossman、Tengda Han、Juyeon Heo、Katja Hofmann、Chin-Wei Huang、Yongchao Huang、Giulio Isacchini、Matthew Johnson、Pragya Kale、Atharva Kelkar、Leon Klein、Pushmeet Kohli、Bonnie Kruft、Adrian Li、Haiguang Liu、Ziheng Lui、Giulia Luise、Stratis Markou、Sergio Valcarcel Macua、Krzysztof Maziarz、Matěj Mezera、Laurence Midgley、Usman Munir、Félix Musil、Elise van der Pol、Tao Qin、Isaac Reid、David Rosenberger、Lloyd Russell、Maximilian Schebek、Megan Stanley、Karin Strauss、Clark Templeton、Marlon Tobaben、Aldo Sayeg Pasos-Trejo、Richard Turner、Max Welling、Furu Wei、Robert Weston、Chris Williams、Yingce Xia、Shufang Xie、Iryna Zaporozhets、Claudio Zeni、Xieyuan Zhang,以及许多其他同事,感谢他们参与讨论并贡献宝贵的建议。还要感谢本书的编辑Paul Drougas和Springer的许多其他同事,以及文字编辑Jonathan Webley在本书制作过程中给予的支持。
我们要特别感谢Markus Svensén,他在Bishop(2006)的图表和排版方面提供了巨大的帮助,包括提供LaTex样式的文件,这些文件也被用于这本新书。我们还要感谢许多科学家,他们允许我们使用其发表的作品中的图表。关于具体图表的致谢放在了相应的图表标题中。
Christopher衷心感谢微软创造了一个能高度激发研究兴趣的环境,并提供了撰写这本书的机会。然而,本书表达的观点和意见完全是基于笔者个人的,并不一定与微软或其附属公司的观点和意见一致。能与自己的儿子Hugh合作编写这本书,Christopher感到非常荣幸和愉快。
Hugh想要感谢Wayve Technologies Ltd慷慨地允许他兼职工作,使他能够合作撰写本书,感谢Wayve Technologies Ltd提供了一个富有激励性和支持性的工作学习环境。本书表达的观点不一定与Wayve Technologies Ltd或其附属公司的观点一致。Hugh想对自己的未婚妻Jemima表示感谢,感谢她一直以来的支持以及在语法和文体上提供的帮助。Hugh也要感谢Christopher,在Hugh的一生中,Christopher一直是出色的父亲、同事和灵感来源。
最后,我们都想对家人Jenna和Mark表示衷心的感谢,他们为我们做了太多,不胜枚举。依稀记得很久以前,我们曾聚集在土耳其安塔利亚的海滩上观看日全食,并为Pattern Recognition and Machine Learning的献辞页拍摄全家福!
Christopher M. Bishop和Hugh Bishop
英国,剑桥
2023年10月
2006年3月29日作者一家在土耳其安塔利亚的海滩上观看日全食,原图印于PRML一书的献辞页
本书提供如下资源:
● 本书图片文件;
● 本书思维导图;
● 部分习题的答案及解析;
● 异步社区7天VIP会员。
要获得以上资源,您可以扫描下方二维码,根据指引领取。
作者、译者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。
当您发现错误时,请登录异步社区(www.epubit.com),按书名搜索,进入本书页面,点击“发表勘误”,输入错误信息,点击“提交勘误”按钮即可(见下图)。本书的作者和编辑会对您提交的错误信息进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。
如果您所在的学校、培训机构或企业想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接通过邮件发送给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。
“异步社区”是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作译者与读者在线交流互动,以及传统出版与数字出版的融合发展。
“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域30余年的发展与积淀。异步图书面向IT行业以及各行业使用IT的用户。
机器学习是当今最重要、发展最快的技术领域之一。机器学习的应用遍及各个领域,基于数据学习的解决方案正逐步取代传统的手工设计算法。这不仅提升了现有技术的性能指标,更为一系列全新能力的开发打开了大门。而如果新算法仍需完全依赖人工设计,这些能力的实现将是无法想象的。
作为机器学习的一个分支,深度学习(Deep Learning,DL)已经成为一种异常强大且通用的数据学习框架。深度学习的理论基础是被称为神经网络(neural network)的计算模型,这些模型最初是受到人类大脑中学习和信息处理机制的启发而产生的。人工智能(Artificial Intelligence,AI)领域致力于在机器中重现人脑的强大能力,而今天 “机器学习”和“人工智能”这两个术语常常被交替使用。当前使用的许多人工智能系统,实际上是机器学习的具体应用,旨在解决特定领域的问题。这些系统虽然非常有用,但与人类大脑的巨大能力相比仍有很大差距。人们引入了“通用人工智能”(Artificial General Intelligence,AGI)这一概念,来描述构建具有更高灵活性的智能系统的愿景。经过几十年的稳步发展,机器学习现在已进入快速发展阶段(参见第12章)。最近,一种称为大语言模型的庞大深度学习系统开始展现出卓越的能力,人们把这些能力视为通用人工智能的初步迹象(Bubeck et al., 2023)。
本节从4个不同领域的示例来讨论机器学习,以此说明这一技术应用的广泛性,同时引入一些相关的基本概念和术语。值得注意的是,这些示例以及很多其他示例都是使用深度学习这一基本框架的不同变体来解决的。这与传统方法形成了鲜明对比,在传统方法中,不同的应用需要采用各种迥异且高度专业的技术来处理。应当强调的是,我们选择的例子只代表了深度神经网络应用广度的一小部分,事实上,几乎所有需要计算的领域都正在或即将受益于深度学习的革命性影响。
我们先来看看机器学习在皮肤癌诊断中的应用。黑色素瘤(melanoma)是最危险的一种皮肤癌,但如果发现得早,是可治愈的。图1.1展示了皮肤病变的示例图片,上面的一行图像是危险的恶性黑色素瘤,下面的一行图像是良性痣。显然,区分这两类图片具有极大的挑战性,几乎不可能通过人工编写出一个算法来实现对这些图像的准确分类。
图1.1 上面的一行图像是危险的恶性黑色素瘤,下面的一行图像是良性痣。未经专业训练的人很难区分这两类皮肤病变类型
这个问题已经通过深度学习得到成功解决(Esteva et al., 2017)。该解决方案是通过一组大型的病变图像集构建的,该图集称为训练集(training set),其中每一幅图像都被标注为恶性或良性,标注的依据是对病变活检后得到的真实分类。训练集用来确定深度神经网络中约2500万个可调参数(称为权重)的取值。这个根据数据反馈的结果来设置参数值的过程称为学习(learning)或训练(training)。训练的目标是使得训练好的神经网络根据新病变的图像就可以预测病变是良性还是恶性,而无须执行耗时的活检步骤。这是一个典型的监督学习(supervised learning)问题的例子,因为在训练过程中,每个样本都标注了正确的类别标签。这同时也是一个分类(classification)问题的例子,因为每个输入经过处理后,都需要被分配到离散的类别集合中(本例中为“良性”或“恶性”)。如果输出包括一个或多个连续变量,则称为回归(regression)问题。在化工生产过程中,根据温度、压力和反应物浓度预测产量,就是回归问题的一个例子。
这个应用的一个有趣之处是,可用的带标注的训练图像数量相对较少,大约只有12.9万幅。因此,研究人员首先要在一个包含128万幅日常物体(如狗、建筑和蘑菇等)图像的大型数据集上对深度神经网络进行预训练,然后在皮肤病变图像数据集上对进行微调(fine-tune)。这是迁移学习 (transfer learning)的一个例子,神经网络从日常物体的大规模数据集中学习自然图像的一般属性,随后专门针对皮肤病变分类问题进行优化。使用深度学习技术对皮肤病变图像进行分类的准确率已经超过专业皮肤科医生的水平(Brinker et al., 2019)。
蛋白质常被称为生物体的基石。它们是由一个或多个氨基酸的长链组成的生物分子,蛋白质的特性则由 22 种不同类型的氨基酸序列所决定。当蛋白质在活细胞内合成后,就会折叠成复杂的三维结构,其行为和相互作用很大程度上取决于折叠的形态。怎么根据氨基酸序列推导出蛋白质的三维结构呢?这是生物学界几十年来一直想攻克的基础性难题,但是进展甚微,直到深度学习技术带来了突破性进展。
蛋白质的三维结构可以通过X射线晶体学、低温电子显微镜或核磁共振光谱等实验技术进行测定。然而,这个过程通常非常耗时,而且对某些蛋白质来说,这种方法极具挑战性。例如,很难得到蛋白质的纯净样本,或者蛋白质的结构依赖于特定环境。相比之下,确定蛋白质的氨基酸序列的实验成本较低,产出较高。因此,如何直接从氨基酸序列预测蛋白质的三维结构引起广泛关注,这有助于更好地了解生物过程,以及用于新药研发等实际应用。我们可以以氨基酸序列为输入、以蛋白质的三维结构为输出来训练深度学习模型,其中的训练数据包含了已知的氨基酸序列和对应的蛋白质三维结构。因此,蛋白质结构预测也是监督学习的一个例子。经过训练的系统能够以新的氨基酸序列为输入,预测对应的蛋白质三维结构(Jumper et al.,2021)。图1.2比较了一种蛋白质的预测三维结构和通过X射线晶体学获得的实际三维结构。
图 1.2 一种名为T1044/6VR4的蛋白质的三维形状。绿色结构展示了通过X射线晶体学确定的真实三维结构,而叠加在上面的蓝色结构展示了深度学习模型 AlphaFold 预测的三维结构[图片来源于Jumper et al. (2021),经许可使用]
在上面讨论的两个应用中,神经网络学会了将输入(皮肤图像或氨基酸序列)转换成输出(病变分类或蛋白质的三维结构)。现在我们来看一个不同的例子:训练数据是一组样本图像,训练后的神经网络能生成类似的新图像。与病变分类和蛋白质结构预测的例子不同,这些训练图像是没有标注的,这样的训练属于无监督学习(unsupervised learning)。图1.3展示了一些由深度神经网络生成的合成图像,该深度神经网络是在拍摄于摄影棚单色背景下的人脸图像集上进行训练的。这些合成图像质量极高,很难将它们和真人照片区分开来。
图 1.3 由无监督学习方法训练得到的深度神经网络生成的人脸图像 (来自generated.photos网站)
这种模型可以生成与训练数据不同但又有类似统计特性的结果,所以被称为生成式模型(generative model)。这种方法的一个变体能根据输入的文本字符串(称为提示词,prompt)生成反映文本语义的图像(参见第10章)。我们用生成式AI(generative AI) 这个术语来描述那些能生成图像、视频、音频、文本、候选药物分子或其他形态信息的深度学习模型。
近年来,机器学习领域最重要的进展之一,是研发人员开发出了强大的模型来处理自然语言和类似程序代码这样的序列数据。大语言模型(Large Language Model, LLM)利用深度学习技术构建丰富的内部表征,捕捉语言的语义属性。有一类重要的大语言模型称为自回归 (autoregressive) 语言模型,它们能够输出语言,因此属于生成式AI的一种。这类模型以一个词序列作为输入,生成这个词序列最可能的下一个词,我们可以把末尾添加了新词的扩展序列再输入到模型中,让它生成后续的词,重复这个过程,就会得到越来越长的词序列。这样的模型还可以输出一个特殊的 “停止” 词,来表示文本生成的结束,这样就使得模型在输出一定长度的文本后停止。此时,用户可以在词序列的末尾添加自定义的词序列,然后将完整的词序列重新输入模型以触发生成后续的词。通过这种方式,人们就可以和神经网络对话了。
这类模型可以在大型文本数据集上通过提取训练对(training pair)进行训练。训练对的输入是随机选定的词序列,输出是已知的下一个词。这是自监督学习(self-supervised learning)的一个例子,在自监督学习中,模型学习从输入到输出映射函数,有标注的输出是从输入训练数据中自动获取的,无须进行另外的人工标注。这种方法能把多种来源的大量文本作为大型训练集,从而训练出超大规模神经网络。
一些专家认为,展现出非凡能力的大语言模型是通用人工智能的雏形(Bubeck et al.,2023),本书后面将详细讨论这类模型(参见第12章)。接下来,我们给出一个基于GPT-4(OpenAI,2023)的语言生成示例。GPT-4能够针对如下提示做出响应:“请以莎士比亚戏剧风格,通过两个角色对话展开争论的方式证明素数有无穷多个”,如图1.4所示。[1]
[1] 译者用大模型翻译的图1.4:
甲:汝未悟友啊,真理难准,素数无尽,犹如天辰。数不可分,纯而且简,虽觉奇迹,实则无边。
乙:可汝何以断定此论?何证可显,真理之根?
甲:听我言,疑心伴侣,一证妙绝,将疑云除。设若终极素数存在,为我们所见最大数领。名之“P”字,记于案头,构思新数“Q”,令人惊叹。它将超越“P”,成为素环。
乙:此证何从?友啊说明,胜利之杯,尚未高举。
甲:如斯简单,静待佳音,乘素数列,答案必寻。自二至“P”,逐一相连,得“Q”新数,正解现身。加一以固,使证更真,举证眼前,不再沉吟。
乙:现明白矣,如光闪莹,“Q”当素数,结论清晰。它不被小素整除有据,时序内自身是最大。既然选“P”作为终章,预设破碎,成为往昔。无终素数,真理已昭,数字无穷,如星海常在。
图1.4 GPT-4给出的回应
对机器学习领域的新人来说,许多基本概念和术语可以通过一个简单的例子来引入——用多项式拟合一个小型合成数据集(Bishop, 2006)。这是一个监督学习问题,在这个问题中,我们希望根据输入的变量值,对目标变量进行预测。
我们用表示输入变量,用
表示目标变量,并假设这两个变量在实数轴上取值连续。给定一个训练集,其中包含
个
的观测值,记作
,还包含相应
的观测值,记作
。我们的目标是根据
的某个新值来预测相应的
的值。机器学习的一个关键目标是对以前未见过的输入进行准确预测,这种能力称为泛化能力(generalization)。
我们可以通过从正弦函数采样生成的合成数据集来说明这一点。图1.5展示了由个数据点组成的训练集,其中输入值
是通过在区间
上均匀采样生成的。对应的目标值tn则是先计算每个
所对应的函数sin(2πx)的值,然后向每个数据点添加少量随机噪声(由高斯分布控制,参见2.3节)得到的。通过这种方式生成数据,我们可以捕获许多现实世界数据集的一个重要特性——它们具有我们希望了解的潜在规律,但个别观测值会被随机噪声干扰。这种噪声可能源于它们固有的随机过程(例如放射性衰变),但更常见的原因是存在未被观测到的变异源。
图1.5 一个由N = 10个数据点组成的训练集,以蓝色圆点显示,其中每个数据点包含了输入变量x及其对应的目标变量t的观测值。绿色曲线显示了用来生成数据的函数sin(2πx)。我们的目标是在不知道绿色曲线的情况下,预测新的输入变量x所对应的目标变量t的值
在这个示例中,我们事先知道真正生成数据是通过一个正弦函数。在机器学习的实际应用中,我们的目标是在有限的训练集中发现隐藏的规律。不过,了解数据的生成过程有助于我们阐明机器学习中的一些重要概念。
我们的目标是利用这个训练集来预测输入变量的新值所对应的目标变量的值
,这涉及隐式地尝试发现潜在的函数sin(2πx)。这本质上是一个十分困难的问题,因为我们必须从有限的数据集推广到整个函数。此外,观测数据受到噪声干扰,因此对于给定的
,
的适当取值存在不确定性。概率论(probability theory)(参见第2章)提供了一个以精确和定量的方式来表达这种不确定性的框架,而决策论(decision theory)(参见第5章)允许我们利用这种概率表示,根据适当的标准做出最优预测。从数据中学习概率是机器学习的核心,本书将对此进行详细探讨。
现在让我们先从一种相对非正式的方式出发,考虑一种基于曲线拟合的简单方法。我们将使用多项式函数来拟合数据,其形式如下:
(1.1)
其中M是多项式的阶数(order),表示
的
次幂。多项式系数
统称为向量w。注意,尽管多项式函数y(x,w)是x的非线性函数,但它也是系数w的线性函数。在式(1.1)中,像这个多项式一样,关于未知参数呈线性的函数具有重要的特性,同时也存在明显的局限性,它们被称为线性模型 (linear model)(参见第4章)。
多项式系数的值将通过拟合训练数据来确定,这可以通过最小化误差函数(error function)来实现,该误差函数度量了对于任意给定的w,函数y(x,w)与训练集中数据点之间的拟合误差。有一个使用广泛的简单误差函数,即每个数据点的预测值
与相应目标值
之间的差的平方和的二分之一:
(1.2)
其中引入系数是为了后续计算方便。稍后我们将从概率论出发推导此误差函数(参见2.3.4小节)。注意,这个误差函数是非负的,当且仅当函数y(x,w)正好通过每个训练数据点时,其值等于零。平方和误差函数的几何解释如图1.6所示。
图 1.6 平方和误差函数的几何解释[该误差函数对应来自函数y(x,w)的每个数据点的位移(如垂直的绿色箭头所示)平方和的一半]
我们可以通过选择能够使 E(w) 尽可能小的w值来解决曲线拟合问题。因为平方和误差函数是系数w的二次函数,其对系数的导数是系数w的线性函数,所以该误差函数的最小化有一个唯一解,记为 w*,可以通过解析形式求得封闭解(也叫解析解)(参见4.1节)。最终的多项式由函数 y(x, w*) 给出。
我们还面临选择多项式的阶数M的问题,这将引出模型比较(model comparison)或模型选择(model selection)这一重要概念。在图1.7中,我们展示了4个拟合实例,它们分别使用阶数M = 0,1,3,9的多项式来拟合图1.5所示的数据集。
图1.7 具有不同阶数的多项式图示。多项式如红色曲线所示。这里通过最小化平方和误差函数[见式(1.2)]来拟合图1.5所示的数据集
可以发现,常数(M = 0)和一阶(M = 1)多项式对数据的拟合较差,因此对函数sin(2πx)的表示较差。三阶(M = 3)多项式似乎对函数sin(2πx)给出了最佳拟合。高阶(M = 9)多项式得到了一个对训练数据完美的拟合。事实上,这个多项式曲线精确地穿过了每一个数据点,使得误差E(w*) = 0。然而,拟合出的曲线却出现了剧烈的波动,完全不能反映出函数 sin(2πx)的真实形态。这种现象称为过拟合(over-fitting)。
我们的目标是让模型获得良好的泛化能力,使其能够对新的数据做出准确的预测。为了定量地探究泛化性能与模型复杂度M之间的依赖关系,我们可以引入一个独立的测试集。该测试集包含100个数据点,其生成方式与训练集相同。针对每一个M值,我们不仅可以计算出模型在训练集上的残差E(w*)[式(1.2)],还可以计算出其在测试集上的残差E(w*)。与评估误差函数E(w)相比,有时使用均方根(Root Mean Square, RMS)误差更为方便,均方根误差定义如下:
(1.3)
公式中的1/N是为了让不同大小的数据集能够在相同的基准下进行比较,而求平方根则是为了确保ERMS是在与目标变量t相同的尺度上(以相同的单位)进行测量的。图1.8展示了不同M值的训练集和测试集的RMS误差图。测试集上的RMS误差反映了我们根据新观测数据x预测其对应t值的能力。从图1.8中可以看出,当M值较小时测试集误差较大,这是因为此时的多项式模型灵活性不足,无法捕捉函数sin(2πx)中的振荡。当M取值在[3,8]时,测试集误差较小,同时这些模型也能合理地表示出数据的生成函数sin(2πx),如图1.7中M = 3时所示。
图1.8 由式(1.3)定义的均方根误差图(在训练集和独立的测试集上对M的各个值进行评估)
当M = 9时,训练集误差变为零。这是符合预期的,因为该多项式包含10个自由度(对应10个系数),所以可以精确地调整到训练集中的10个数据点。然而,如图1.7和图1.8所示,测试集误差变得极大,函数y(x, w*)表现出剧烈振荡。
这可能看起来很矛盾,因为一个给定阶数的多项式包含了所有更低阶的多项式作为特例。因此,M = 9的多项式理应能够产生至少与M = 3的多项式一样好的结果。此外,我们或许会认为,预测新数据的最佳模型就应该是生成这些数据的真实函数sin(2πx)本身(我们后续将验证这一点)。同时,我们知道sin(2πx)的幂级数展开式中包含了所有阶数的项,所以我们会很自然地推断,随着模型复杂度M的增加,预测效果应该会持续提升。
通过观察表1.1中不同阶数多项式拟合得到的系数w*,我们可以更深入地了解这个问题。我们注意到,随着M的增加,系数的幅度越来越大。特别是当M = 9时,为了让对应的多项式曲线能精准地穿过每一个数据点,这些系数被精细地调整到了很大的正值或负值。但在数据点之间,尤其是在数据范围的两端附近,曲线却出现了大幅度的摆动,正如我们在图1.7中看到的那样。直观地看,当多项式模型具有较大的M值时,它变得更加灵活,从而更容易受到目标值上随机噪声的影响,并过度拟合了这些噪声。
表 1.1 不同阶数多项式的系数w*。注意观察随着多项式阶数的增加,系数的变化幅度是如何急剧增大的
为进一步探究该现象,我们观察随着数据集大小的变化,模型学习效果的相应变化,如图1.9所示。可以看出,当模型复杂度固定时,数据集越大,过拟合现象就越不明显。换言之,数据量越大,我们就能用越复杂(即更灵活)的模型去拟合数据。经典统计学中有一条常用的启发式经验:训练数据点的数量应至少是模型中可学习参数数量的若干倍(比如5倍或10倍)。然而,我们在本书继续探讨深度学习后会发现,即使模型参数的数量远远超过训练数据点的数量,也一样可以获得非常出色的结果(参见9.3.2小节)。
图1.9 使用M = 9的多项式最小化平方和误差函数所获得的解决方案(左图为拟合个数据点所获得的解,右图为拟合
个数据点所获得的解。可以看到,大的数据集可以减少过拟合)
根据可用训练集的大小来限制模型中参数的数量,其结果有些不尽如人意。而根据待解决问题的复杂性来选择模型的复杂性似乎更合理。作为限制参数数量的替代方案,正则化(regularization)技术经常被用于控制过拟合现象,它通过向误差函数添加一个惩罚项来抑制系数取值过大。最简单的惩罚项采用所有系数的平方和的形式,误差函数变为
(1.4)
其中,并且系数
控制着正则化项与平方和误差项之间的相对重要性。注意,正则化项中通常不包含系数
,因为如果包含w0,就会导致最终结果受到目标变量所选原点的影响(Hastie, Tibshirani, and Friedman, 2009)。当然也可以包含
,但需要单独为其配置一个正则化系数(参见9.2.1小节)。同样,我们可以求得式(1.4)中误差函数的精确闭式解(见习题4.2)。在统计学文献中,这类方法被称为收缩方法(shrinkage),因为它们会使系数的值缩小。在神经网络领域,这种方法称为权重衰减(weight decay),因为神经网络中的参数通常称为权重,而这种正则化手段会促使这些权重向零衰减。
图1.10展示了采用正则化误差函数[式(1.4)]对9阶(M = 9)多项式进行拟合的结果,所用数据集与之前相同。观察发现,当取时,过拟合现象被有效抑制,此时的拟合曲线与目标函数sin(2πx)相当接近。反之,若
取值过大,则会导致欠拟合,如图1.10中
的情形。表1.2给出了不同
值下拟合得到的多项式系数。这些数值表明,正则化确实发挥了预期作用,有效减小了系数的幅度。
图 1.10 使用正则化误差函数[式(1.4)]对图1.4中数据集进行拟合所得的阶多项式的曲线。其中正则化参数
取两个值,分别对应于
和
。 无正则化项的情况,即
(对应
)的情况,显示在图1.7的右下图中
表1.2 正则化参数λ取不同值时,M = 9的多项式模型的系数w*。注意,对应未采用正则化的模型,也就是图1.7右下图中的拟合结果。可见,随着λ值的增大,系数的量级会减小
通过绘制训练集和测试集的RMS误差[式(1.3)]与的关系,可以看出正则化项对泛化误差的影响,如图1.11所示。可以看到,
现在控制了模型的有效复杂性,从而决定了过拟合的程度。
图1.11 的多项式的RMS误差与
的关系
在本例中,λ作为一个超参数(hyperparameter),它的值在基于误差函数最小化来确定模型参数w的过程中始终保持不变。需要注意的是,我们不能通过同时对w和λ最小化误差函数的方式来简单地确定λ的取值,因为这样会导致λ趋近于0,从而产生一个在训练集上误差极小甚至为零的过拟合模型。类似地,多项式的阶数M也是模型的一个超参数,单纯地优化训练集误差关于M的取值会导致M过大,同样会引发过拟合问题。因此,我们需要找到一种有效的方法来确定这些超参数的合理取值。1.1节的讲述提供了一种简单的思路,即将已有的数据集划分为训练集和验证集(validation set)[也称为保留集(hold-out set)或开发集(development set)],其中训练集用于确定模型系数w,而我们最终选择在验证集上误差最小的模型。如果使用有限规模的数据集多次迭代模型设计,也可能会出现对验证集的过拟合现象。为此,通常需要预留出测试集,用于对最终选定模型的性能进行评估。
在某些实际应用场景中,可用于模型训练和测试的数据量往往较为有限。为了构建性能良好的模型,我们希望尽量充分地利用一切可获取的数据进行训练。然而,如果验证集的规模过小,则会导致对模型预测性能的评估存在较大偏差。交叉验证(cross-validation)技术为解决这一困境提供了一种有效途径,如图1.12所示。该方法允许将的数据用于模型训练,与此同时,利用全部数据来评估模型的性能。当数据资源极度匮乏时,还可以考虑S = N的极端情况,其中N表示数据点的总数,这时的交叉验证就演变成了留一法(leave-one-out)。
图 1.12 S折交叉验证技术(这里以S = 4为例)的操作,首先将可用数据分成S个等大小的子集。然后使用S − 1个子集来训练一组模型,并在剩余的子集上评估模型性能。接下来,将S个子集中的每个子集作为保留集(图中红色块所示)重复上述过程,最后对S次运行的性能评分取平均值
交叉验证的主要缺点在于所需的训练次数增加了S倍,这对于训练过程本身计算成本较高的模型来说是一个大问题。交叉验证等使用独立数据评估性能的技术还存在另一个问题,即对于单个模型可能存在多个复杂度超参数(例如,可能有多个正则化超参数)。在最坏的情况下,探索这些超参数设置的最佳组合可能需要指数级数量的训练次数。现代机器学习的前沿领域需要非常大的模型和大规模训练数据集。因此,超参数设置的探索空间有限,很大程度上依赖于从小模型获得的经验和启发式方法。
这个将多项式模型拟合到基于正弦函数生成的合成数据集的简单示例,阐释了机器学习领域的一些核心概念,在后续章节我们将进一步用这个示例进行讨论。然而,现实中的机器学习应用往往要复杂得多:首先,用于模型训练的数据集规模可能会非常庞大,数据量通常会高出几个数量级;其次,模型的输入变量的数量通常也会显著增加,例如,在图像分析领域,输入变量的规模可达百万量级,并且还可能伴随着多个输出变量。在这些应用中,将输出映射到输入的可学习函数通常由一类被称为神经网络的模型来表征,这些模型往往具有海量的参数,其数量甚至可以达到千亿的规模。此时,误差函数将表现为这些模型参数的复杂非线性函数,无法再通过闭式解的方式进行最小化,而必须借助迭代优化的方法,利用误差函数关于模型参数的导数信息来逐步逼近最优解。这对计算机硬件提出了更高的要求,并且不可避免地会引入相当高的计算成本。
机器学习拥有悠久且丰富的发展历史,涌现了多种不同的研究路径。本节将着重介绍基于神经网络的机器学习方法的发展脉络,因为神经网络构成了深度学习的基石,并且在实际应用中已被证明是最为有效的机器学习方法。
神经网络模型最初受到人类和其他哺乳动物大脑信息处理机制的启发。大脑中处理信息的基本单元是称为神经元的电活性细胞,如图1.13所示。当神经元放电时,它会沿着轴突发送电脉冲,到达称为突触的连接点,这些连接点与其他神经元形成连接。在突触处会释放称为神经递质的化学信号,这些信号可以刺激或抑制后续神经元放电。
图1.13 人脑中两个神经元的示意图
(这些电活性细胞通过称为突触的连接点进行通信,这些连接点随着神经网络的学习而变化)
人脑总共包含约900亿个神经元,每个神经元平均与其他数千个神经元通过突触相连,形成了一个包含约100万亿(1014)个突触连接的复杂网络。如果某个神经元接收到来自其他神经元放电的足够强度的刺激,那么它自身也可能被触发放电。然而,某些突触具有负向调节或抑制作用,即输入神经元的放电会降低输出神经元放电的可能性。一个神经元能否引发另一个神经元的放电取决于突触的连接强度,而这些突触的连接强度的动态变化正是大脑存储信息和进行经验学习的关键机制。
神经元的这些属性已被抽象为简单的数学模型,即人工神经网络(Artificial Neural Network, ANN),它们成为计算学习方法的基础(McCulloch and Pitts, 1943)。诸多此类模型通过对其他神经元的输出的线性组合来描述单个神经元的特性,然后使用非线性函数进行转换。该过程可以用数学表达式表示为:
(1.5)
y = f(a) (1.6)
其中,表示与向该神经元发送连接的其他神经元的活动相对应的M个输入;而
是权重(weight),表示相关突触的强度。量a称为预激活(pre-activation),非线性函数f(·)称为激活函数(activation function),输出y称为激活(activation)。可以看出,式(1.1)可视为这个模型的一个特例,其中输入
由单一变量x的各次幂构成,而激活函数f(·)退化为恒等函数f(a) = a。式(1.5)和式(1.6)给出的简单数学公式构成了20世纪60年代至今神经网络模型的基础,其图形表示如图1.14所示。
图1.14 一个简单的神经网络模型,用于描述单个神经元的转换。多项式函数可以视为这个模型的一个特例
人工神经网络的历史大致可以根据其复杂程度划分为三个不同的阶段,这种复杂性是通过处理的“层数”来衡量的。由式(1.5)和式(1.6)描述的简单神经网络模型可以视为具有单层处理能力,对应图1.14中的单层连接结构。在神经计算的历史长河中,感知机模型(Rosenblatt, 1962)无疑占据着举足轻重的地位,其激活函数 f(·) 是以下形式的阶跃函数:
(1.7)
它可以视为一个简化的神经元放电模型,在该模型中,当且仅当总加权输入超过0的阈值时,神经元才会放电。感知机由Rosenblatt(1962年)首创,他开发了一种特定的训练算法,该算法有一个有趣的特点,即如果存在一组权重值使得感知机能够完美分类其训练数据,则该算法保证在有限步数内收敛到这一解(Bishop, 2006)。除了学习算法之外,感知机还需要一个专用的模拟硬件,如图1.15所示。典型的感知机配置有多个处理层,但其中只有一层可以从数据中学习,因此感知机被认为是一个“单层”神经网络。
图1.15 Mark 1 感知机硬件示意图。左图展示了使用简单的摄像系统获取输入,其中输入场景(在这种情况下是打印的字符)被强光照射,图像被聚焦在一个的硫化镉光电管阵列上,形成一幅原始的400像素大小的图像。Mark 1感知机还配备了一个接线板,如中间图所示,它允许尝试不同的输入特征配置。与现代数字计算机相比,这些通常是随机连接的,以展示感知机在没有精确连接的情况下进行学习的能力。右图展示了一个可学习权重机架,其中的每个权重都是使用旋转可变电阻器(也称电位器)实现的,由电动机驱动,从而允许通过学习算法自动调整权重值
起初,大家惊叹于感知机能以类似大脑的方式从数据中学习。然而,这个模型也 暴露出重大的局限性。Minsky and Papert(1969)分析了感知机的特性,并从数学上严格证明了单层网络的能力局限。他们还推测,这样的局限性将会扩展到具有多个可学习参数层的神经网络。尽管这一猜想后来被证明是极其错误的,但它在当时极大地打击了人们对神经网络模型的热情,并直接导致了20世纪70年代和80年代初学术界和工业界对神经网络领域缺乏足够的兴趣和资金投入。此外,由于缺乏有效的训练神经网络的算法,研究人员无法深入研究多层神经网络,因此像感知机这样的技术仅适用于单层模型。请注意,尽管感知机已经从实际机器学习应用中消失,但这个术语仍然流传下来,因此现代神经网络有时也称为多层感知机(Multi Layer Perceptron, MLP)。
对于训练具有多层可学习参数的神经网络问题,其解决方案来自微分学的应用以及基于梯度的优化方法。一项重要的改进是用具有非零梯度的连续可微激活函数取代了原有的阶跃函数式(1.7)。另一项关键的改进是引入了可微的误差函数,该函数能量化地评估在给定参数配置下模型对训练集中目标变量的预测效果。我们在1.2节中利用平方和误差函数[式(1.2)]进行多项式拟合时,就已经接触到了此类误差函数的一个示例。
通过这些改进,我们现在得到了一个误差函数,它可以计算其关于网络模型中每一个参数的偏导数。现在我们可以着手考虑具有多层参数的网络结构了。图1.16展示了一个包含两层参数的简单网络模型。位于中间层的节点称为隐藏单元(hidden unit),因为它们的值不会出现在训练数据中,训练数据仅提供了模型的输入值和输出值。图1.16中的每一个隐藏单元和每一个输出单元均计算形如式(1.5)和式(1.6)的函数值。对于一组给定的输入值,所有隐藏单元和输出单元的状态可以通过迭代地应用式(1.5)和式(1.6)进行前向计算,在这个过程中,信息沿着箭头所指的方向在网络中逐层向前传递。由于这种信息流动的特点,此类模型也被称作前馈神经网络(feed-forward neural network)。
图1.16 一个具有两层参数的神经网络
(其中箭头表示神经网络中信息流的方向。每个隐藏单元和每个输出单元的计算形式分别由式(1.5)和式(1.6)给出,其中激活函数f(·)是可微的)
为了训练这样的神经网络,我们首先使用随机数生成器初始化参数,然后使用基于梯度的优化技术进行迭代更新。这需要计算误差函数的偏导数,此操作可以通过误差反向传播(error backpropagation)过程中高效地完成(参见第8章)。在反向传播中,信息从输出端向后通过神经网络流向输入端(Rumelhart, Hinton and Williams, 1986)。在机器学习领域,有许多不同的优化算法利用了待优化的函数的梯度,其中最简单和最常用的是随机梯度下降(stochastic gradient descent)法(参见第7章)。
能够训练具有多层权重的神经网络是一项重大突破,自20世纪80年代中期开始,这一突破再度引发了对该领域的研究热潮。这一时期,研究重心逐渐超越了单纯对神经生物学机制的模拟,而朝着构建更加严谨、更具原则性的理论基础的方向发展 (Bishop, 1995b)。特别是,人们逐渐认识到,概率论和统计学中的核心思想在神经网络及机器学习领域扮演着至关重要的角色。一个关键的认识是,从数据中进行学习的过程不可避免地会引入一些背景假设,这些假设被称为先验知识(prior knowledge)或归纳偏置(inductive bias)。这些先验知识可以显式地融入模型设计之中,例如,可以设计一种特定的神经网络结构,使得皮肤病变的分类结果不依赖于图像中病变的具体位置;或者,它们也可以隐式地蕴含在模型的数学形式或其训练方法的选择中。
反向传播算法和基于梯度的优化技术显著提升了神经网络解决实际问题的能力。然而,研究人员注意到,在具有多层结构的神经网络中,通常只有最后两层的权重参数能够学习到有效的信息。除了少数例外,特别是用于图像分析的卷积神经网络模型(LeCun et al., 1998)(详见第 10 章),具有两层以上结构的网络模型鲜有成功的应用。这意味着此类网络模型不能有效解决太复杂的问题。为了在各种实际应用中获得令人满意的性能,人们通常要设计预处理步骤,将原始输入变量变换到一个新的特征空间中,希望在这个新的空间中机器学习任务能更容易解决。这种预处理步骤有时也被称为特征提取(feature extraction)。尽管这种人工特征提取的方法有时见效,但一个更理想的解决方案显然是直接从数据中自动学习出这些特征,而不是依赖于人工设计。
到了2000年,当时的神经网络方法再次达到了它们能力的极限。研究人员开始探索替代神经网络的方法,如核方法、支持向量机、高斯过程等。尽管一些热情的研究人员继续追求真正有效训练多层神经网络的目标,但神经网络再次失宠。
神经网络发展的第三个阶段,也是当前阶段,始于21世纪的第二个十年。一系列的突破使具有多层权重的神经网络得以有效训练,从而消除了这些技术先前的能力限制。具有多层权重的网络称为深度神经网络,专注于这类网络的机器学习子领域称为深度学习(deep learning)(LeCun, Bengio and Hinton, 2015)。
深度学习发展历程中的一个关键性主题,是神经网络模型规模的显著扩张,这集中体现在模型参数数量的爆炸式增长上。20世纪80年代,拥有数百或数千个参数的神经网络模型还较为普遍,但这一数字随后稳步攀升至数百万乃至数十亿规模。而目前最前沿的模型,其参数数量更是达到了惊人的一万亿(1012)量级。拥有海量参数的神经网络模型需要相应规模的庞大数据集进行训练,才能确保在训练过程中为这些参数有效赋值。这种庞大模型与海量数据的结合,反过来也对模型训练过程的计算能力提出了前所未有的挑战。图形处理单元(Graphics Processing Unit,GPU)作为一种专为特定应用设计的处理器,最初是为了满足视频游戏等应用中对高速图形渲染的需求而开发的。随后人们发现GPU的架构能够很好地适配神经网络的训练需求。具体而言,神经网络中某一层的各个单元所执行的运算可以高度并行地进行,这与GPU所提供的大规模并行计算架构高度契合(Krizhevsky, Sutskever, and Hinton, 2012)。如今,规模最大的那些模型的训练任务,通常需要在包含数千块 GPU 的大规模计算集群上完成,这些 GPU 之间通过专用的高速网络进行通信。
图1.17描绘了历年来训练最先进的神经网络模型所需计算量的演变趋势,图中显现出两个特征显著的增长阶段。纵轴采用指数标度,其单位为petaflop/s-days。其中,一个petaflop代表每秒执行1015次(一千万亿次)浮点运算,而一个petaflop/s则表示每秒一千万亿次的浮点运算速率。因此,一个petaflop/s-day就代表以每秒一千万亿次的运算速率持续运行24小时所对应的计算量,这大约等价于1020次浮点运算。由此可知,图中最上方的水平线对应着高达1024次的浮点运算量,真是让人惊叹。
图1.17中的两个直线段显示了两个指数级的增长阶段。我们可以清楚地看到,从感知机时代直至2012年前后,计算需求的翻倍周期约为2年,这与摩尔定律所预测的计算性能增长的总体趋势基本吻合。然而,自2012年步入深度学习时代以来,计算需求再次呈现出指数级的增长态势,但这一次的翻倍周期锐减至仅3.4个月,这意味着计算能力每年增长高达10倍之多!
图1.17 训练最先进的神经网络所需的计算周期数(以petaflop/s-days为单位)与日期的关系,这里显示了两个不同的指数增长阶段(来自OpenAI,经许可使用)
人们常常发现,通过架构创新或引入更复杂形式的归纳偏置而带来的性能改进,很快就会被简单地通过扩大训练数据量替代,同时伴随着相应的模型规模和用于训练的相关计算能力的扩展(Sutton, 2019)。大语言模型不仅在特定任务上表现更优,还可以用同一个训练好的神经网络解决更广泛范围的问题。大语言模型就是一个显著的例子,因为单个网络不仅拥有非凡的能力广度,甚至还能够胜过为解决特定问题而设计的专业网络(参见12.3.5小节)。
我们已经了解到,网络的深度对于神经网络实现卓越性能至关重要。要理解深度神经网络中隐藏层的作用,一种有效的视角是表示学习 (representation learning,也称表征学习)(Bengio, Courville, and Vincent, 2012)。在这种视角下,网络能够学习把原始输入数据转换成某种新的、富有语义信息的表示形式,从而显著降低后续网络层需要解决的问题的难度。这些学习到的内部表示还可以通过迁移学习技术被重新利用来解决其他相关问题,正如前文在皮肤病变分类任务中所展示的那样。一个有趣的发现是,用于处理图像的神经网络模型所学习到的内部表示,与在哺乳动物视觉皮层中观察到的神经表征惊人地相似(详见第 10.3 节)。那些能够针对一系列下游任务进行适配或微调 (fine-tuned)的大规模神经网络模型,称为基础模型(foundation model)。这些模型可以充分利用海量且多样化的数据集,从而构建出具有广泛适用性的通用模型 (Bommasani et al., 2021)。
除了规模化这一因素外,还有其他若干进展也同样为深度学习的成功做出了重要贡献。例如,在传统的简单神经网络中,训练信号随着其在深度网络中逐层反向传播而逐渐衰减(详见第 9.5 节)。为了解决这一难题,一种名为残差连接(residual connection)的技术被引入网络架构中 (He et al.,2015a),它极大地提高了对数百层深度的网络的训练效率。另一项具有里程碑意义的进展是自动微分(automatic differentiation)方法的提出,该方法能够基于描述网络前向传播过程的代码,自动生成用于执行反向传播以计算误差函数梯度的代码。研究人员只需要显式地编写相对简洁的前向传播函数代码,就能够快速地探索和尝试不同的神经网络架构,并快速尝试不同的架构和多种组件的不同组合。此外,机器学习领域的很大一部分研究工作都是基于开源模式开展的,广大研究人员能够借助 “他山之石”进行构建和拓展,从而进一步加快这个领域的创新步伐。