译者的话
十几年前,笔者在MSRA实习的时候,就接触到了Christopher M, Bishop的经典巨著《Pattern Recogition and Machine Learning》(一般大家简称为PRML)。Bishop大神是微软剑桥研究院实验室主任,物理出身,对机器学习的基本概念和思想解释的深入浅出,鞭辟入里。以至于这本书被当时从事机器学习和AI方向的研究者奉为圣经。许多同学如饥似渴的阅读全书,连每道习题都不放过。
进入深度学习时代之后,很多同学对经典的机器学习算法不屑一顾,只专注于DL各种网络的最新进展。从实用的角度本无可厚非,但是从深入理解理论背后原理的角度出发,阅读Bishop的书将会让你终身受益。2023年11月,Bishop大神又出新作《Deep Learning - Foundations and Concepts》,这本书是关于深度学习的基础理论和概念,涵盖了神经网络基础、卷积神经网络、Transformer、生成式建模等一系列技术前沿。大神出手自不凡,相信任何读者只要认真阅读本书,一定能获得大的收获。
声明:对本书的翻译仅出于技术学习之目的,任何盈利性行为请与Springer出版社和原作者联系。
前言
深度学习利用大规模数据训练的多层神经网络来解决复杂的信息处理任务,已经成为机器学习领域最成功的范式。在过去的十年中,深度学习彻底改变了计算机视觉、语音识别和自然语言处理等多个领域,并且正在越来越多的应用中被使用,涵盖医疗保健、制造业、商业、金融、科学发现等众多行业。最近,所谓的大语言模型(LLM),包括数万亿可学习参数,已经开始展现出第一批通用人工智能(AGI)的特征,正在引领技术发展历史上最大规模的颠覆性变革。
本书目标
随着深度学习影响力的不断扩大,机器学习研究论文的数量和广度也出现了爆炸式增长,创新速度还在不断加快。对于该领域的新人来说,适应关键思想的难度很大,更不用说赶上研究前沿了,这无疑令人望而生畏。基于这一背景,《深度学习:基础与概念》旨在为机器学习的新人以及该领域的老手提供深度学习基础思想与关键概念与架构的透彻理解。这些内容将帮助读者奠定坚实的基础,以便日后进行深入专研。由于该领域的广度与变化速度,我们故意避免构建最新研究的全面综述。相反,本书的价值在很大程度上来源于对关键思想的提炼,尽管该领域本身预计会持续快速进步,但这些基础与概念可能经得起时间的检验。例如, 撰写本书之时,大语言模型正在快速演进, 然而其中的transformer架构和attention机制在过去5年基本保持不变。同时,许多机器学习的核心原则在几十年前已经被人们所知。
对技术的负责任使用
深度学习是一个应用广泛的强大技术,有潜力为世界创造巨大价值并解决一些社会最紧迫的挑战。然而, 这些属性同样也意味着深度学习可能被人为误用或造成意外伤害。本书中,我们选择不讨论深度学习使用的伦理或社会方面的内容,因为这些题材意义重大且复杂,不适合在如此技术性的教科书中深入探讨。然而,这些重要讨论需要建立在对基础技术及其工作原理的扎实理解之上,因此我们希望这本书能对其做出有价值的贡献。尽管如此,我们还是强烈建议读者在学习技术本身的同时,也要意识到其工作的更广泛影响,并了解深度学习和人工智能的负责任使用方式。
本书结构
本书被结构化为相对较多的小章节,每个章节探讨一个具体的主题。全书采用线性结构,也就是说每一章只依赖于之前章节的内容。它非常适合作为本科生或研究生的两学期深度学习课程教材,同样也适用于主动研究或自学的人群。
只有运用一定水平的数学工具才能对机器学习形成清晰的理解。具体来说, 概率论、线性代数和多变量微积分(Multivariate Calculus)这三个数学领域构成了机器学习的核心。本书对所需的概率论概念进行了自包含(Self-contained)的介绍,还包含一个总结了一些有用线性代数结果的附录(Appendix)。我们假设读者已经对多变量微积分的基本概念有一定的熟悉度,尽管这里也包含了变分法(the calculus of variations)和拉格朗日乘子法(Lagrange multiplier)的入门附录。然而,本书的重点在于传达清晰的思想理解,我们强调那些实际应用价值的技术而不是抽象理论。在可能的情况下,我们尝试从文本描述、图示和数学公式等多个互补的角度呈现较复杂的概念。此外,文本中讨论的许多关键算法以独立的框架进行了总结。这些内容不涉及计算效率问题,而是作为数学解释的有益补充。因此,我们希望本书的内容对不同背景的读者来说都是可理解的。
从概念上讲,这本书可以看作是《Neural Networks for Pattern Recognition》(Bishop, 1995b) 的后续版本,后者从统计角度对神经网络进行了首次全面处理。它也可以视为《Pattern Recogition and Machine Learning》(Bishop, 2006)的配套读物,尽管后者较早于深度学习革命,但也讨论了更广泛的机器学习主题。但是,为确保这本新书的独立性,我们从 Bishop (2006)中吸收了适当的内容,重构并关注那些深度学习所需的基础思想。这意味着 Bishop (2006) 中讨论了许多时至今日仍然有趣的机器学习 topics 被省略了。例如,Bishop (2006)深入讨论了贝叶斯方法,而本书几乎全部采用非贝叶斯视角。
本书附带一个网站,提供辅助材料,包括免费使用的数字书版本以及习题解答和图版的 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}
}
如果您对本书有任何反馈或想报告任何错误,请发送至 feedback@bishopbook.com
参考文献
为了聚焦于核心思想,我们不会提供全面的文献综述,鉴于该领域的规模和变化速度,这本身就是不可能的。然而,我们确实参考了一些关键的研究论文以及进一步阅读的综述文章和其他来源。在许多情况下,这些文献也提供了文本中略过(以免使读者分心)的重要实现细节。
已经有许多关于机器学习一般和深度学习特定的书籍问世。与本书风格和水平最接近的包括 Bishop (2006)、Goodfellow、Bengio 和 Courville (2016)、Murphy (2022)、Murphy (2023)以及 Prince (2023)。
在过去十年中,机器学习学术研究的性质发生了重大变化。现在很多论文在正式提交会议和期刊进行同行评审之前或者代替传统渠道只是发布在网上的archival网站上。其中最流行的站点是 arXiv(读音为“archive”),网址为
https://arXiv.org
该站点允许对论文进行更新,通常会产生与不同年份相关的多个版本,这会导致某些引用年份方面的歧义。它还可以免费访问每篇论文的 PDF。因此,我们采用了简单的方法,即根据首次上传的年份来引用论文,不过我们推荐阅读最新版本。
arXiv 上的论文使用符号 arXiv:YYMM.XXXXX 进行索引,其中 YY 和 MM 分别表示首次上传的年和月。后续版本添加版本序号 N 的形式为 arXiv:YYMM.XXXXXvN。
习题
每章结尾都有一组习题,旨在加强文本中解释的关键思想或以重要方式对其进行发展和推广。这些习题构成文本的重要组成部分,并根据难度划分等级,从( ⋆ \star ⋆),表示简单的几分钟就能完成的习题,到( ⋆ ⋆ ⋆ \star\star\star ⋆⋆⋆),表示明显更复杂的习题。我们强烈建议读者尝试这些习题,因为积极参与习题部分将大大增强学习效果。所有习题的解答可作为 PDF 文件从本书网站下载。
数学符号
我们遵循 Bishop (2006) 中的相同符号表示法。有关机器学习背景下的数学概览,请参阅 Deisenroth、Faisal 和 Ong (2020)。
向量用小写粗体罗马字母表示,如 x \boldsymbol{x} x,矩阵用大写粗体罗马字母表示,如 M \boldsymbol{M} M。除非另有说明,所有向量均视为列向量。上标 T T T 表示矩阵或向量的转置,因此 x T \boldsymbol{x}^T xT 将是一个行向量。符号 ( w 1 , . . . , w M ) (w_1,...,w_M) (w1,...,wM) 表示一个有 M M M 个元素的行向量,相应的列向量写为 w = ( w 1 , . . . , w M ) T \boldsymbol{w} = (w_1,...,w_M)^T w=(w1,...,wM)T。 M × M M \times M M×M 的单位矩阵(也称为 identity matrix)表示为 I M \boldsymbol{I}_M IM,如果其维度明确则简写为 I \boldsymbol{I} I。其元素 I i j \boldsymbol{I}_{ij} Iij 等于 1( i = j i = j i=j)或者 0( i ≠ j i \neq j i=j)。单位矩阵的元素有时也用 δ i j \delta_{ij} δij 来表示。符号 1 \boldsymbol{1} 1 表示所有元素值为 1 的列向量。 a ⊕ b \boldsymbol{a} \oplus \boldsymbol{b} a⊕b 表示向量 a \boldsymbol{a} a 和 b \boldsymbol{b} b 的连接(concatenation),因此,如果 a = ( a 1 , . . . , a N ) \boldsymbol{a} = (a_1,...,a_N) a=(a1,...,aN) 且 b = ( b 1 , . . . , b M ) \boldsymbol{b} = (b_1,...,b_M) b=(b1,...,bM),则 a ⊕ b = ( a 1 , . . . , a N , b 1 , . . . , b M ) \boldsymbol{a} \oplus \boldsymbol{b} = (a_1,...,a_N,b_1,...,b_M) a⊕b=(a1,...,aN,b1,...,bM)。 ∣ x ∣ |x| ∣x∣ 表示标量 x x x 的模(非负值),也称为绝对值。我们用 det A \text{det} \ \boldsymbol{A} det A 表示矩阵 A \boldsymbol{A} A 的行列式。
符号 x ∼ p ( x ) x \sim p(x) x∼p(x) 表示 x x x 从分布 p ( x ) p(x) p(x) 中随机采样。如有歧义,我们会使用下标表示所指分布,例如 p x ( ⋅ ) p_x(\cdot) px(⋅)。函数 f ( x , y ) f(x, y) f(x,y) 关于随机变量 x x x 的期望表示为 E x [ f ( x , y ) ] \mathbb{E}_x[f(x, y)] Ex[f(x,y)]。如果期望所关的变量没有歧义,我们会省略下标简写为 E [ x ] \mathbb{E}[x] E[x]。 如果 x x x 的分布取决于另一个变量 z z z,相应的条件期望表示为 E x [ f ( x ) ∣ z ] \mathbb{E}_x[f(x)|z] Ex[f(x)∣z]。类似地, f ( x ) f(x) f(x) 的方差表示为 var [ f ( x ) ] \text{var}[f(x)] var[f(x)],对于向量变量,协方差写为 cov [ x , y ] \text{cov}[\boldsymbol{x}, \boldsymbol{y}] cov[x,y]。我们也会将 cov [ x ] \text{cov}[\boldsymbol{x}] cov[x] 作为 cov [ x , x ] \text{cov}[\boldsymbol{x}, \boldsymbol{x}] cov[x,x] 的简写。
符号 ∀ \forall ∀ 表示“对于所有(for all)”,因此 ∀ m ∈ M \forall m∈\mathcal{M} ∀m∈M 表示集合 M \mathcal{M} M 中的所有 m m m 值。我们用 R \mathbb{R} R 表示实数集。在图(graph)中,节点 i i i 的邻居集合表示为 N ( i ) \mathcal{N}(i) N(i),不应与高斯分布或正态分布 N ( x ∣ μ , σ 2 ) \mathcal{N}(x|\mu,\sigma^2) N(x∣μ,σ2) 混淆。泛函表示为 f [ y ] f[y] f[y],其中 y ( x ) y(x) y(x) 是某个函数。泛函的概念在附录 B 中讨论。花括号 { } \{ \} {} 表示一个集合。记号 g ( x ) = O ( f ( x ) ) g(x) = \mathcal{O}(f(x)) g(x)=O(f(x)) 表示随着 x → ∞ x \rightarrow \infty x→∞, ∣ f ( x ) / g ( x ) ∣ |f(x)/g(x)| ∣f(x)/g(x)∣ 有界。例如,如果 g ( x ) = 3 x 2 + 2 g(x) = 3x^2 + 2 g(x)=3x2+2,则 g ( x ) = O ( x 2 ) g(x) = \mathcal{O}(x^2) g(x)=O(x2)。符号 ⌊ x ⌋ \lfloor x \rfloor ⌊x⌋ 表示 x x x 的下整,即小于或等于 x x x 的最大整数。
如果我们有 N N N 个独立同分布(i.i.d.)的 D D D 维向量 x = ( x 1 , ⋯ , x D ) T \boldsymbol{x} = (x_1, \cdots, x_D)^T x=(x1,⋯,xD)T 的取值 x 1 , . . . , x N \boldsymbol{x}_1,...,\boldsymbol{x}_N x1,...,xN,我们可以将这些观测组合成一个 N × D N×D N×D 维的数据矩阵 X \boldsymbol{X} X,其中 X \boldsymbol{X} X 的第 n n n 行对应第 n n n 个观测 x n T \boldsymbol{x}_n^T xnT。因此, X \boldsymbol{X} X 的第 n n n 行第 i i i 列元素对应第 n n n 个观测向量 x n x_n xn 的第 i i i 个元素,表示为 x n i x_{ni} xni。对于一维变量,我们用 x \mathsf{x} x 表示这种矩阵,它实际上是列向量,其第 n n n 个元素为 x n x_n xn。注意 x \mathsf{x} x(维数为 N N N)与 x \boldsymbol{x} x(维数为 D D D)采用不同字形以示区分。
致谢
我们衷心感谢很多人审阅了本书的章节草稿(draft)并提供了宝贵的反馈。特别需要感谢的包括 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、Yongchaio Huang、Giulio Isacchini、Matthew Johnson、Pragya Kale、Atharva Kelkar、Leon Klein、Pushmeet Kohli、Bonnie Kruft、Adrian Li、Haiguang Liu、Ziheng Lu、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 等许多同事。他们通过宝贵的讨论做出了重要贡献。
我们还要感谢 Springer 出版社的主编 Paul Drougas 以及许多 Springer 同事的支持,特别是 Jonathan Webley 等进行书稿修订的同事。
我们需要向 Markus Svensén 表示特别谢意。他对 Bishop (2006) 的插图和 LaTeX \LaTeX LATEX 排版提供了巨大帮助,包括被新书采用的 LaTeX \LaTeX LATEX 样式文件。我们也感谢许多科学家允许我们转载他们已发表工作中的图表。特定图片的致谢信息出现在相关图片标题中。
Chris 需要向微软表示诚挚的谢意。微软创建了一个高度激发灵感的研究环境并提供了写这本书的机会。然而,本书中表达的观点和意见是作者自己的,不一定代表微软或其关联公司的观点。这本书起源于第一次新冠疫情封锁期间一个联合项目,与儿子 Hugh 合作准备这本书是一项巨大的特权和乐趣。
Hugh 想感谢 Wayve Technologies Ltd.慷慨地允许他兼职工作,以便与Chris 合作写这本书。同时,Wayve也为他提供了鼓舞人心且互相支持的学习工作环境。本书中表达的观点未必代表 Wayve 或其关联公司的观点。他想对他的未婚妻 Jemima 表示感谢,感谢她的坚定支持和在语法和书面表达方式方面的咨询。他还想感谢父亲(Chris),在他的成长道路上,Chris 一直是他的楷模和启发。
最后,我们都想对家人 Jenna 和 Mark 表示无限的谢意。我们似乎已经记不清当年我们一家站在安塔利亚(Antalya)海滩上观赏日食,并为《Pattern Recogition and Machine Learning》的致谢页拍了一张全家福的情景了。
Chris Bishop 和 Hugh Bishop
剑桥,英国
2023年10月