Bishop新著 - 深度学习:基础与概念 - 前言

译者的话

十几年前,笔者在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} ab 表示向量 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) ab=(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) xp(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} mM 表示集合 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月

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/210155.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

根文件系统初步测试

一. 简介 上一篇文章学习了向所编译生成的根文件系统中加入 lib库文件。文章地址如下: 根文件系统lib库添加与初步测试-CSDN博客 本文继上一篇文章的学习,本文对之前制作的根文件系统进行一次初步测试。 二. 根文件系统初步测试 为了方便测试&#…

Oracle 11g安装过程

文章目录 前言1.下载安装包2.安装2.1本地安装文件2.2 安装过程 3.查看是否安装成功3.1 查看oracle是否安装成功3.2 查看oracle服务 前言 本文仅用于记录亲自安装oracle的过程 1.下载安装包 官网地址: Oracle Database 11g Release 2 (11.2.0.1.0) 注意&#xff…

08、分析测试执行时间及获取pytest帮助

官方用例 # content of test_slow_func.py import pytest from time import sleeppytest.mark.parametrize(delay,(1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.0,0.1,0.2,0,3)) def test_slow_func(delay):print("test_slow_func {}".format(delay))sleep(delay)assert…

java SSM毕业生信息管理myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

前言 学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管…

韶音开放式耳机怎么样?Oladance耳机怎么样?三大开放式对比!

当代耳机的痛点之一:舒适度,为什么我会这么说呢?大家应该也会感受到现在无论用的是半入耳,入耳式甚至是头戴式的耳机,都是会有一个问题:耳朵酸胀。因为我们无论是买一千的,还是几十的都是会痛&a…

进入软件的世界

选择计算机 上高中的时候,因为沉迷于网络游戏,于是对计算机产生了浓厚的兴趣,但是那个时候对于计算机的了解还是非常肤浅的。上大学的时候,也就义无反顾的选择了计算机专业,其实并不是一个纯粹的计算机专业&#xff0…

PWN学习之LLVM入门

一、基本流程 ①找到runOnFunction函数时如何重写的,一般来说runOnFunction都会在函数表最下面,找PASS注册的名称,一般会在README文件中给出,若是没有给出,可通过对__cxa_atexit函数"交叉引用"来定位: ②通…

全球与中国汽车电力电子市场:增长趋势、竞争格局与前景展望

目前,世界各国都致力于转向更环保、更永续的传统交通替代方案。 电动车满足所有要求,因为它们具有零废气排放、改善空气品质、减少温室气体排放并创造更清洁、更健康的环境。此外,电动车的运作成本比传统内燃机驱动的汽车低,因为…

vue2+electron桌面端一体机应用

vue2+electron项目 前言:公司有一个项目需要用Vue转成exe,首先我使用vue-cli脚手架搭建vue2项目,然后安装electron 安装electron 这一步骤可以省略,安装electron-builder时会自动安装electron npm i electron 安装electron-builder vue add electron-builder 项目中多出…

Mybatis 操作续集(连着上文一起看)

"查"操作(企业开发中尽量不使用*,需要哪些字段就写哪些字段,都需要就全写上) Mybatis 会自动地根据数据库的字段名和Java对象的属性名进行映射,如果名称一样就进行赋值 但是那些名称不一样的,我们想要拿到,该怎么拿呢? 一开始数据库字段名和Java对象属性名如下图…

使用UART和USART在STM32上进行双向通信

在本文中,我们将深入了解如何在STM32上使用UART(通用异步收发传输器)和USART(通用同步异步收发传输器)实现双向通信。UART和USART是常见的串口通信协议,通常用于与其他设备进行数据传输。我们将重点介绍如何…

C语言中指针的进阶概念及应用

概念 指针是C语言编程中最强大的特性之一。除了基础的指针概念外,理解指针数组、指向指针的指针(双重指针)、指针与多维数组的关系以及函数指针等进阶概念,对于深入理解C语言至关重要。 指针的概念: 指针就是个变量…

科技云报道:AI+PaaS,中国云计算市场迎来新“变量”?

科技云报道原创。 没有小的市场,只有还没有被发现的大生意。 随着企业数字化转型的逐级深入,市场需求进一步向PaaS和SaaS层进发,使之成为公有云服务市场增长的主要动力。 根据IDC最新发布的报告显示,2022-2027五年间中国公有云…

几何对象的凸点集

// 引入VTK并初始化 #include "vtkAutoInit.h" VTK_MODULE_INIT(vtkRenderingOpenGL2); VTK_MODULE_INIT(vtkInteractionStyle);#include <vtkActor.h> #include <vtkCamera.h> #include <vtkConvexPointSet.h> #include <vtkDataSetMapper.h&g…

学习使用三个命令实现在腾讯云服务器TencentOS Server 3.1或者CentOS 8上安装ffmpeg

学习使用三个命令实现在腾讯云服务器TencentOS Server 3.1或者CentOS 8上安装ffmpeg Error: Unable to find a match: ffmpeg添加RPMfusion仓库安装SDL安装ffmpeg执行命令测试 Error: Unable to find a match: ffmpeg 添加RPMfusion仓库 yum install https://download1.rpmfus…

计算机辅助药物设计AIDD-小分子-蛋白质|分子生成|蛋白质配体相互作用预测

文章目录 计算机辅助药物设计AIDD【小分子专题】AIDD概述及药物综合数据库学习机器学习辅助药物设计图神经网络辅助药物设计自然语言处理辅助药物设计药物设计与分子生成 计算机辅助药物设计【蛋白质专题】蛋白质数据结构激酶-Kinase相似性学习基于序列的蛋白质属性预测基于结构…

数据结构算法-插入排序算法

引言 玩纸牌 的时候。往往 需要将牌从乱序排列变成有序排列 这就是插入排序 插入排序算法思想 先看图 首先第一个元素 我默认已有序 那我们从第二个元素开始&#xff0c;依次插入到前面已有序的部分中。具体来说&#xff0c;我们将第二个元素与第一个元素比较&#xff0c;…

使用正则表达式时-可能会导致性能下降的情况

目录 前言 正则表达式引擎 NFA自动机的回溯 解决方案 前言 正则表达式是一个用正则符号写出的公式&#xff0c;程序对这个公式进行语法分析&#xff0c;建立一个语法分析树&#xff0c;再根据这个分析树结合正则表达式的引擎生成执行程序(这个执行程序我们把它称作状态机&a…

C语言--每日选择题--Day35

第一题 1. 有如下定义&#xff1a;(x y) % 2 (int) a / (int) b 的值是&#xff08;&#xff09; int x 3; int y 2;float a 2.5; float b 3.5; A&#xff1a;0 B&#xff1a;2 C&#xff1a;1.5 D&#xff1a;1 答案及解析 D 本题是考查强制类型转换和操作符优先级 操作…

idea连接mysql详细讲解

IDEA连接mysql又报错&#xff01;Server returns invalid timezone. Go to Advanced tab and set serverTimezone prope 前进的道路充满荆棘。 错误界面 IDEA连接mysql&#xff0c;地址&#xff0c;用户名&#xff0c;密码&#xff0c;数据库名&#xff0c;全都配置好了&…