读书导读 · CC BY-SA 4.0

《动手学深度学习》全书摘要与逐章导读

CC BY-SA 4.0

引文按 CC BY-SA 4.0 使用;本页文字也按同一协议授权,引文译文属于改编作品。免费阅读原书。

《动手学深度学习》讲了什么AI 辅助

每一台新的学习机器,都补上前一台没做完的事

整体来看,这是一本关于深度学习究竟是怎样被学习和实践的书,它的回答,是把概念、数学和可运行的代码交织在同一种载体里——每个示例一本自成一体的 notebook,一个共享的 d2l 包,每个组件先从零构建、再用简洁的框架 API 实现——因为应用深度学习,同时需要问题的界定、模型的数学、优化、统计和工程。它的主线是:抗拒手工编码规则的任务,应该通过四个组成部分(数据、模型、目标、优化)从数据中学习,从这个起点出发,每一件新机制的引入,都只是作为对前一件的某个局限的修补:线性回归已经提供了带参数的模型、极大似然损失和小批量 SGD;softmax 分类把预测改写为从分布中抽取一个样本;带非线性激活的隐藏层,化解了复合仿射映射的坍缩;卷积利用了对顺序不敏感的稠密层所忽略的像素相邻性;循环、门控、双向性和编码器—解码器对,吸纳了变长序列;而注意力去掉了定长上下文的瓶颈,Transformer 则完全丢掉了循环,使预训练的基础模型成为可能。然后,本书把这一切奠基在优化理论上——训练误差不是泛化误差,高维空间中鞍点比局部极小值占优,凸性提供了海森矩阵检验、拉格朗日函数、惩罚和投影,使梯度下降虽然面对非凸也仍然站得住——之后才转向让这些方法派上用场:编译与硬件感知的执行,数据并行对模型并行,计算机视觉从数据增广和微调,到基于锚框、用 IoU 打标签并用非极大值抑制的检测,自然语言处理从 word2vec 及其采样近似,到 BERT 及其序列级和词元级的微调,以及强化学习中用值迭代和 Q 学习求解的马尔可夫决策过程。它的收尾部分让实践有原则而不是临时凑合:高斯过程在函数上放置可解释的先验,超参数优化被改写为有噪声、无梯度的搜索,由逐次减半和 ASHA 这类多保真度方案加速,GAN 把双样本检验变成极小极大信号,推荐系统从显式评分走向基于隐式反馈的个性化排序,附录则把线性代数、微积分和概率呈现为一条几何的链,其中矩阵只会倾斜、旋转和缩放空间。最后的结论是,这里的胜任与基础设施和工作流密不可分——notebook 在 Jupyter 里被阅读、运行和编辑,可审阅的 markdown 源文件通过派生—编辑—提交—拉取请求回流,GPU 依据算力、显存大小和带宽来选,低精度是提高每美元吞吐的杠杆,云实例通过 SSH 端口转发来访问并在不用时停掉以控制成本——因此,理解、代码和运行它们的机器,构成了同一种实践。

一则讲透全书的寓言AI 辅助

用一个故事装下全书最核心的想法,并老实交代故事在哪里失真。

规则说不出口,学徒就从数据里学会了定价

从前有个村子,村里的面包师出了名:陌生人拿来任何一个面包,她都能猜出价钱。她的学徒央求她把规则说出来。她试了:“先称一称,然后……嗯,要是外皮深、内瓤松,除非是黑麦的……”规则总从她嘴边溜走,因为她的手知道,她的嘴却说不出;再说行情每个季节都在变。于是学徒不再追问,转而做了别的事。他把卖出的每个面包都记进一本账:重量、发酵了几天、卖了多少钱。他在石板上画了一台带两个旋钮的猜价机——每盎司多少钱,每发酵一天多少钱,再加一笔固定的钱——还定了一条给自己打分的规矩:对每个面包,取他的猜测和真实价格之间的差,平方,再减半,最后取平均。然后每天早上,他不拿整本账,只拿几行,看看每个旋钮往哪个方向拧一点能让差距变小,就拧一下。头一个星期,他把夏天的面包拟合过头了,得罪了一位冬天的顾客,于是他留出一页封好的账,里面的面包他从不拿来练手,只有这页封好的账也认可的时候,他才信得过自己。一位长辈训斥他:“真正的匠人是推导出规则的。”学徒回答:“面包师说不出来的东西,我推导不了。但我能拧旋钮,看着差距缩小,也能把账本拿给你看。”多年以后,他的石板上有了许多旋钮,也有了许多层叠起来的石板,可它仍然是那同样的四样东西:账本、旋钮、差距,以及拧动。那块旧的两旋钮石板挂在炉子上方,因为每个新来的人都能一眼看清它的全部。

故事里的每样东西代表什么

故事里书里
说不出自己的定价规则、却定得很准的面包师规则无法手工编写的任务——模式在变,或者映射超出了有意识的理解——而这恰恰是机器学习该出场的地方
学徒记下重量、发酵天数和价格的账本数据:带标签的样本,以及把杂乱记录变成学习算法可以消化的张量的预处理和加载
带两个旋钮和一笔固定金额的石板模型和模型族:线性回归是特征的加权和再加一个偏置;所有可以达到的旋钮设置构成被搜索的空间
把差距平方、减半,再取平均平方误差损失作为目标函数——以及它在加性高斯噪声下的极大似然依据,而不是随手拿来的便利
每天早上取几行账,拧一下旋钮小批量随机梯度下降作为默认的学习算法,而不是闭式解
从不用来练手的那页封好的面包账泛化与超参数:训练误差不等于泛化误差,所以判断要依据留出的验证集
要求推导规则的长辈,对比“拧旋钮,看着差距缩小”本书的立场:形式化理论落后的地方,直觉靠调整可运行的代码并观察结果来建立
许多旋钮和层叠的石板,仍然是同样的四样东西四部分分解——数据、模型、目标、优化——作为一个框架,之后的每种方法都读作对其中某一部分的替换

寓言在哪里失真

这则寓言的扭曲在于,它把旋钮变得一目了然:学徒能读懂“每盎司多少钱”并加以解释,所以这个故事偷偷把面包师所缺乏的那种可解释性又带了回来。书里的这个概念包含寓言承载不了的东西——层叠的石板并不是更多的旋钮,而是复合起来的非线性层,而仅仅复合仿射映射只会坍缩回一个仿射映射;拧动要依赖前向和反向传播、梯度缩放和打破对称性的初始化,没有一样像是手拨旋钮;在高维空间里,地形由鞍点主宰,而不是“缩小差距”所暗示的那个单一山谷;数据中的结构(像素的相邻、变长的序列)要求改变模型的形状,而不是旋钮的数量;以及工程底座——向量化、避免内存分配、GPU、共享的 d2l 包和可复现的环境——是训练得以进行的前提,而石板只需要粉笔。这则寓言也掩盖了书本身尚未解决的张力:学徒的两个特征被假定能解释全部变化,以及先从零实现、再把它丢掉换成框架 API,让他到底该在哪一层抽象上思考这个问题悬而未决。

《动手学深度学习》的核心论点

全书捍卫的 10 个论点,按论证需要的顺序排列。

  1. 深度学习不能单靠文字、数学或代码来讲授,因为应用它同时需要问题的界定、模型的数学、优化、统计泛化和工程;三者必须交织在同一种载体里。

    “检验深度学习的潜力面临独特的挑战,因为任何一个应用都汇集了多个学科。”

    “Testing the potential of deep learning presents unique challenges because any single application brings together various disciplines.”

    Preface查看原文 →
  2. 因为形式化的理论往往无法解释为什么这些技术管用,直觉应该靠调整可运行的代码并观察结果来建立,而不是靠等待证明。
  3. 当一项任务的规则说不出来——因为模式在变,或者映射超出了有意识的理解——正确的做法是写一个从带标签的样本中学习映射的程序,而不是手工设计识别器。
  4. 每个机器学习问题都可以分解为同样的四个组成部分——数据、模型、目标函数和优化算法——所以新方法应该读作这个框架内的替换。
  5. 线性回归理应最先讲授,因为它虽然很浅,却已经包含了深度学习几乎所有的组成部分,而且足够直观,两个账单的例子就能还原出它的参数。
  6. 解析的闭式解只是一个走运的特例,而不是学习的样板,所以应该把基于梯度的小批量优化当作默认的方法。
  7. 损失函数不是随意的便利:最小化平方误差,恰好就是加性高斯噪声下的极大似然。
  8. 工程上的细节——向量化计算、避免内存分配,以及用 pandas 预处理杂乱的数据——不是边角料,而是模型能训练起来的必要条件。
  9. 数学对象应该读作变换,而不只是记账:乘以一个矩阵,就是在空间之间映射向量,而这正是神经网络的一层所做的事。
  10. 只有 CPU 的机器就足以开始,所以没有 GPU 不应该阻止读者起步。

逐章导读

每一章都在本页:论证怎样展开、关键论点、常见误读和核心概念。从目录里选一章。

第 1 章:引言

把数据分成训练集和测试集,如何暴露出过拟合?

第 1 章是怎样展开的AI 辅助

本章如何开篇。 本章不是从机器学习的定义开始,而是从一个旨在划出它的必要性的对比开始。当一个问题可以被一一列举时,普通编程就好用得很:把一件商品加进购物车的逻辑,可以逐种情形地写出来,在第一位顾客到来之前就放心地发布。作者随后在它旁边放了第二类任务——预测天气、识别物体、听到一个口头的触发短语就唤醒设备——对这类任务,从输入到答案的逐步路径根本无法被有意识地检视,而输入本身也多得压倒一切:一支麦克风每秒递给你大约 44,000 个振幅数字,而你写不出任何规则把它们变成是或否。所以开篇的这一招是一种诊断,而不是一个证明,作者也坦率地说,唤醒词只是列举法失灵之处的一个示例,而不是证明它总是必定失灵。从这个诊断,替代方案直接顺势而出:如果你说不出规则,就收集任务被正确执行的样本,让一个优化算法去调整一个灵活程序的参数,直到它复现这些样本。这就搭起了四部分的脚手架——数据、模型、目标、优化——本章其余部分的分类法都挂在它上面。

本章如何展开。 确立了参数应该被拟合而不是被手写之后,作者的下一步是安抚:基本情形是读者本来就凭直觉在做的事。一位承包商,三小时收 350 美元,两小时收 250 美元,邀请任何人算出每小时 100 美元,外加 50 美元的上门费——这恰恰是一个拟合出来的线性模型,而作者点明了附带的条件:只有当假定的那两个特征真的解释了账单的全部变化时,这个推断才成立。回归由其目标的数值形态来定义,并以房价和这张账单来说明,之后的展开靠变换目标,而不是变换方法:分类回答的是哪一个?,从这里开始,综述通过层级的类别结构、标注(标签不互斥)、搜索、推荐系统和序列学习而扩展。关键的警示落在分类的讨论里:最可能的标签并不自动就是正确的行动。一个被判断有 20% 可能是毒鹅膏的蘑菇,吃下去的期望伤害是 0.2 乘以无穷大,而丢掉的损失只是 0.8 顿饭——所以理性的决策与排名第一的预测相矛盾。决策需要按后果给结果加权,而不只是给概率排名,本章就是这样在概念上把损失函数和决策规则分开的。

转折在哪里。 转折出现在作者从整个监督学习的综述中退后一步,点名它共同的局限的时候。到这一点为止的每一项任务,都是从预先收集好的一堆固定数据中学习的,而论证是,这种离线的设定本身无法支撑一个智能的智能体。一旦某个东西行动,它的行动就会塑造它随后观察到的东西——环境是否记得它、是否与它合作或与它竞争,以及环境的动态是否随时间漂移。其后果是训练与部署之间的分布偏移,所以假定数据集一成不变的方法,与问题是不匹配的。这就是接下来强化学习框架的动机:一个与环境交互的智能体,收到的是奖励而不是正确答案。作者小心地解释了为什么这真的更难。学习者从不会被告知哪个动作是最优的;在下棋或职业生涯中,奖励在产生它的那些动作之后很久才到来,所以学习者必须推断,先前许多没有标签的动作中,哪一个该得到功劳或该受责备。再加上部分可观测性,以及探索与利用的取舍,稀疏而延迟的反馈就作为与带标签监督性质不同的一种困难浮现出来——老虎机和马尔可夫决策过程则被定位为可处理的特例。

如何收尾。 结尾一节做了两件事。首先,它给 AI 焦虑的科幻腔调泄了气,并把真正的风险重新安置到:日常劳动的自动化,以及草率的统计偏见。作为例证的是农业机器人,它将为有机农户降低成本,同时又让收割自动化,消除目前雇用着极其大量人口的单调工作——这是一个看得见的、已经在展开的效应,作者认为它比推测中的恶意超级智能更紧迫。然后是本章对其主题的真正定义,被有意地放在结尾而不是开头。深度学习的特征不在于深度本身,而在于对多层表示的联合学习。作者预见了这里显而易见的误读:几乎所有早先的机器学习都已经涉及多层计算,早先的那些层是人设计的特征提取,只有最后那个浅层模型是用数据拟合的。变化在于,现在每一步变换都是与预测器一起学出来的,所以数百万个候选滤波器可以被自动评估,而不是由人手工发明——学出来的滤波器就是这样在计算机视觉中取代了设计出来的,并提高了准确率。因为这样的层可以直接消化原始音频、原始像素和变长文本,许多特定领域的预处理就消散了,各应用领域之间的边界变得模糊。本章最后把这放在更广的方法论转变之内——朝向形式由数据决定的模型,朝向经验主义,朝向代码和权重的开放共享——同时给其中的第一项附上了一个老实的条件:假设少的模型在数据充足时才合理,数据稀缺时仍然需要简化的假设,而准确率的提升通常以可解释性为代价。所提供的类比是物理学从手算近似转向数值模拟,是作为类比而不是证明提出的。

关键论点,以及支撑它们的原文

论点 1

手写的规则对有些问题足够了,对另一些则无望,因为模式在漂移,或者输入到输出的关系超出了我们能够表达的范围。

作者对比了两种情形:像把商品加进购物车这样的电商逻辑可以逐种情形地列举,在任何顾客到来之前就放心地发布,而唤醒词检测器面对的是每秒大约 44,000 个麦克风样本,没有任何可写的规则把它们变成是或否。第二种情形只是一个说明性的任务,不是证明,但它表明了列举法在哪里失灵。

“以图像识别为例,完成这项任务所需的精确步骤超出了我们有意识的理解,尽管我们的潜意识认知过程毫不费力地完成了这项任务。”

“In the case of image recognition, the precise steps required to perform the task lie beyond our conscious understanding, even though our subconscious cognitive processes execute the task effortlessly.”

Chapter 1. Introduction查看原文 →
论点 2

确立了参数应该从数据中拟合之后,作者论证基本情形其实已经很熟悉:线性回归是读者凭直觉就会做的事。

一位承包商三小时收 350 美元,两小时收 250 美元,任何人都能算出每小时 100 美元,外加 50 美元的上门费——恰恰是一个拟合出来的线性模型。作者点明了条件:只有当假定的那两个特征真的解释了账单的全部变化时,这才行得通。

“如果你跟上了这些,那你已经理解了线性回归背后的高层思想。”

“If you followed that much, then you already understand the high-level idea behind linear regression.”

Chapter 1. Introduction查看原文 →
论点 3

从回归转向分类,作者警告说,概率最高的类别并不自动就是该采取的行动。

一个被判断有 20% 可能是毒鹅膏的蘑菇,吃下去的期望伤害是 0.2 乘以无穷大,而丢掉的损失只是 0.8 顿饭,所以理性的选择与最可能的标签相矛盾。因此,决策需要按后果给结果加权,而不只是给概率排名。

“注意,最可能的类别不一定是你要用来做决策的那个。”

“Note that the most likely class is not necessarily the one that you are going to use for your decision.”

Chapter 1. Introduction查看原文 →
另外 3 个论点
论点 4

综述完从固定数据堆中学习的任务之后,作者论证这种离线的设定无法支撑一个智能的智能体。

一旦智能体行动,它的行动就塑造了它之后观察到的东西:环境是否记得它、是否与它合作或竞争,以及它的动态是否随时间而变。这些可能性造成了训练与部署之间的分布偏移,所以假定数据集一成不变的学习,与问题是不匹配的——这就是接下来强化学习框架的动机。

“如果我们想训练一个智能的智能体,就必须考虑它的行动可能怎样影响它未来的观测,所以离线学习是不合适的。”

“If we want to train an intelligent agent, we must account for the way its actions might impact the future observations of the agent, and so offline learning is inappropriate.”

Chapter 1. Introduction查看原文 →
论点 5

在综述的结尾,作者认为,紧迫的风险是日常劳动的自动化和草率的统计偏见,而不是一个恶意的超级智能。

农业机器人将为有机农户降低成本,同时也让收割自动化,消除雇用着大量人口的单调工作——这是一个具体的、已经看得见的效应,作者认为它比推测的情景更紧迫。

“就我们今天所知,这在我们看来,是比恶意超级智能毁灭人类的可能性更紧迫的担忧。”

“With what we know today, this strikes us as a much more pressing concern than the potential of malevolent superintelligence for destroying humanity.”

Chapter 1. Introduction查看原文 →
论点 6

深度学习的独特之处在于,所有的表示层都是一起学出来的,这消解了领域预处理与建模之间旧有的分野。

作者指向计算机视觉:那里的流水线曾经把手工设计的特征提取器与一个浅层模型分开,直到学出来的滤波器以更高的准确率取代了那些提取器。因为学出来的层可以消化原始音频、原始像素和用于翻译的变长文本——这些是早先的工具无法处理的低层感知数据——许多特定领域的预处理就消失了,各应用领域之间的边界也变得模糊。

“可以说,所有的机器学习都有许多层计算,其中第一层由特征处理步骤构成。”

“Arguably, all machine learning has many layers of computation, the first consisting of feature processing steps.”

Chapter 1. Introduction查看原文 →

它是怎样运作的

本章论证所依靠的 3 个机制。

机制 1

为什么规则失效,拟合有效

对于感知任务,从输入到答案的逐步映射无法被有意识地检视,而且原始输入极其庞大——仅一支麦克风每秒就送来大约 44,000 个振幅数字。既然写不出规则,人们就收集任务被正确执行的样本,让一个优化算法调整一个灵活程序的参数,直到它与这些样本相符。

机制 2

延迟的奖励模糊了责任

强化学习者从不会被告知哪个动作是最优的;它只收到奖励,而在下棋或职业生涯中,奖励在造成它的动作之后很久才到来。因此学习者必须推断,先前许多没有标签的动作中,哪一个该得到功劳或该受责备,这就是稀疏而延迟的反馈比带标签的监督难得多的原因。

机制 3

联合学习的层胜过手工构建的特征

经典的流水线也有层,但特征提取器是人设计的,只有最后那个浅层模型是用数据拟合的。深度学习是从数据中把每一步变换和预测器一起学出来的,所以数百万个候选滤波器可以被自动评估,而不是由人手工发明——学出来的滤波器就是这样取代了设计出来的,并提高了准确率。

常见误读

你可能以为

深度学习不过是老一套的机器学习,只是在上面堆了更多的层,所以深度就是全部的诀窍。

其实

作者指出,几乎所有的机器学习本来就有多层计算——早先的那些层是人设计的特征提取。真正的转变在于,每一层都是从数据中联合学出来的,而不是手工设计的,这就是为什么自动学出来的滤波器胜过了设计出来的。

“可以说,所有的机器学习都有许多层计算,其中第一层由特征处理步骤构成。”

“Arguably, all machine learning has many layers of computation, the first consisting of feature processing steps.”

Chapter 1. Introduction查看原文 →
你可能以为

既然让数据来决定模型的形式胜过强加假设,那就应该总是偏爱灵活的、假设少的模型。

其实

作者把这一转变呈现为有条件的:让数据来决定形式的模型,只有在数据充足时才合理,数据稀缺时仍然需要简化的假设,而准确率的提升通常以可解释性为代价——这与物理学从手算近似转向数值模拟时接受的取舍是一样的,书把它作为类比提出,而不是证明。

“当数据充足时,这些可以被更贴合数据的非参数模型取代。”

“When data is abundant, these can be replaced by nonparametric models that better fit the data.”

Chapter 1. Introduction查看原文 →

第 1 章的核心概念

机器学习
性能随着数据或交互的积累而提高的算法。
适用处: 当基于规则的解法能 100% 管用时,就不需要。
模型与模型族
参数设置固定的程序是一个模型;所有可以达到的设置构成它的族。
适用处: 本质上不同的输入/输出类型,可能需要一个不同的族。
学习算法
利用数据集来挑选参数值的元程序。
适用处: 需要先定义好问题的输入、输出和模型族。
监督学习
利用带标签的样本,基于已知的输入去预测一个指定的未知标签。
适用处: 只是若干种机器学习问题中的一种。
回归
预测一个可以取任意数值的标签。
适用处: 适用于标签是数值而不是离散类别的情形。
分类
预测一个样本属于一组离散类别中的哪一个。
适用处: 需要一个已知的、离散的类别集;用交叉熵而不是平方误差。
另外 10 个概念
多标签分类
一次预测多个标签,因为类别可以同时出现。
适用处: 用于类别不互斥的情形,比如一张有四种动物的图像。
序列学习
输入或输出是变长序列、需要上下文的任务。
适用处: 当相继的观测彼此依赖时需要,不同于固定输入的任务。
离线学习
在算法与环境断开之后,利用一堆固定的数据进行的学习。
适用处: 当智能体的行动会改变它未来的观测时,并不合适。
策略
一条把智能体所观察到的东西变成它所采取的动作的规则。
适用处: 只在“观测—动作—奖励”的循环内部才有定义。
功劳归属问题
弄清楚先前的哪些动作,该为晚得多的一个结果受到表扬或责备。
适用处: 当奖励稀疏而延迟时出现,比如下棋或晋升。
探索与利用
在使用已知的最佳策略和尝试未知的策略以求可能的收益之间做选择。
适用处: 用短期的奖励换取知识。
深度学习
使用多层神经网络的机器学习,其各层变换是从数据中一起学出来的。
适用处: 重点不在深度本身;传统的流水线也有层,但它们的层是手工设计的,而不是联合学习的。
端到端训练
先搭建起整个系统,再联合调整它的各个部分,而不是把分别调好的组件拼装起来。
适用处: 并非总是默认做法;有些场合仍然偏爱分别设计的组件。
特征工程
手工发明一些变换,把原始数据变成浅层模型能用的向量。
适用处: 人的巧思比不上对数百万种选择的自动评估,所以学出来的滤波器取代了它。
非参数模型
让充足的数据而不是简化的假设来决定其形式的模型。
适用处: 只有数据充足时才合理;数据稀缺时仍需要简化的假设,而且准确率可能以可解释性为代价。

第 1 章划线与批注AI 陪读

Chapter 1. Introduction

“而当你能设计出 $100\%$ 的时候都管用的解决方案时,你通常不应该去操心机器学习。”

“And when you are able to devise solutions that work \(100\%\) of the time, you typically should not be worrying about machine learning.”

查看原文 →

对一本即将向你兜售一千页机器学习的教科书来说,这是一个令人耳目一新的老实边界标记。这个领域由它的补集来定义:规则够不着的地方。

Chapter 1. Introduction

“完成这项任务所需的精确步骤超出了我们有意识的理解,尽管我们的潜意识认知过程毫不费力地完成了这项任务”

“the precise steps required to perform the task lie beyond our conscious understanding, even though our subconscious cognitive processes execute the task effortlessly”

查看原文 →

这才是本章真正的论点——不是任务很难,而是我们对自己是不透明的。机器学习是从“做到”和“解释”之间的缺口进来的。

Chapter 1. Introduction

“虽然这个故事是为了教学上的方便而编的”

“While this story was fabricated for pedagogical convenience”

查看原文 →

括号里那一下眨眼在起作用:承认这个轶事是编排出来的,让作者保持老实,同时仍能用上它的温度。漂亮的修辞卫生。

另外 17 条批注
Chapter 1. Introduction

“麦克风每秒大约会收集 44,000 个样本。”

“Every second, the microphone will collect roughly 44,000 samples.”

查看原文 →

这里最有说服力的一句。一个具体的数字,做到了三段“这很难”都做不到的事。

Chapter 1. Introduction

“你可以把参数想象成我们可以拧动的旋钮”

“You can think of the parameters as knobs that we can turn”

查看原文 →

旋钮的比喻是整本书的承重梁。不过值得留意它藏了什么:旋钮暗示的是少数几个可解释的刻度盘,而不是十亿个纠缠的。

Chapter 1. Introduction

“注意,这一切都可以在数据科学家没有主动共谋、甚至没有意识到的情况下发生。”

“Note that this can all happen without the data scientist actively conspiring, or even being aware.”

查看原文 →

这一节里最尖锐的一句话。伤害不需要恶棍——只需要一条流水线。把这句话放在一篇谈“关键组成部分”的章节里,悄悄地让伦理成了结构性的,而不是可选的。

Chapter 1. Introduction

“学生可能开始死记练习题,看似掌握了这个主题,一遇到以前没见过的题目就露怯”

“the student might begin to memorize the practice questions, appearing to master the topic but faltering when faced with previously unseen questions”

查看原文 →

这个类比之所以落地,是因为每个读者都当过那个学生。不过请注意它也夹带了一个价值判断:死记就是失败。对人来说,大概也是如此。

Chapter 1. Introduction

“每小时 100 美元,外加 50 美元上门费。如果你跟上了这些,那你已经理解了线性回归背后的高层思想。”

“100 dollars per hour plus 50 dollars to show up at your house. If you followed that much, then you already understand the high-level idea behind linear regression.”

查看原文 →

两个数据点,两个参数,精确求解——然后他们立刻就把这份精确收了回去。老实的地方在于承认接下来是噪声。

Chapter 1. Introduction

“一顿美味晚餐的确定好处,不值得为它冒 20% 的丧命风险”

“the certain benefit of a delicious dinner is not worth a 20% risk of dying from it”

查看原文 →

蘑菇是本章悄悄地不再讲预测、转而讲决策的地方。准确率不是目标函数;后果才是。大多数已部署的机器学习都忘了这一点。

Chapter 1. Introduction

“0.2 \times \infty + 0.8 \times 0 = \infty”

查看原文 →

把无穷大写进期望是一种修辞手法,而不是数学——任何非零的死亡概率都会让这个积分爆炸,这也意味着这个框架分不清 20% 的风险和 0.0001% 的风险。死亡其实并不是无穷坏,否则就没人开车了。

Chapter 1. Introduction

“把响尾蛇错认成束带蛇,可能会造成致命的后果”

“mistaking a rattler for a garter could have fatal consequences”

查看原文 →

漂亮地拆了他们自己例子的台:层级不在自然界里,而在你的使用场景里。系统发生和后果是两棵不同的树,模型应该用那棵能伤到你的树来训练。

Chapter 1. Introduction

“通常在存档和标注之间有一年的滞后”

“typically there is a one-year lag between archiving and tagging”

查看原文 →

MeSH 的细节是这一节里最有说服力的论证——不是基准测试的荣耀,而是医学文献中一年的延迟。具体的机构痛点胜过任何准确率表格。

Chapter 1. Introduction

“奇怪的是,PageRank 提供的评分并不依赖于实际的查询”

“Weirdly, the scoring provided by PageRank did not depend on the actual query”

查看原文 →

“奇怪”这个词承担了很多。与查询无关不是疏忽,而是它让整个网络能够只离线计算一次的原因。这种奇怪是事后才有的。

Chapter 1. Introduction

“我们只观察到被审查的反馈:用户倾向于给他们感触强烈的电影打分”

“we only observe censored feedback: users preferentially rate movies that they feel strongly about”

查看原文 →

缺失的三星评分是每个推荐系统里的幽灵。数据不是有噪声,而是系统性地缺席——而且缺席的方式与你要预测的东西相关。

Chapter 1. Introduction

“反馈循环的形成,是因为推荐系统偏向于推某个物品,而这个物品随后被认为更好”

“feedback loops to form where a recommender system preferentially pushes an item that is then taken to be better”

查看原文 →

书在这里承认,模型是它所度量的系统的一部分。此前的一切都假定数据来自世界;在这里,数据来自上一个模型。这一段就是整个现代危机。

Chapter 1. Introduction

“一份极其专业化的工作,和一位极其独裁的老板”

“an extremely specialized job and an extremely dictatorial boss”

查看原文 →

老板的类比讨好了监督学习,把它的弱点说成了舒适。真正的代价不是乏味——而是独裁者的标签编码着他的偏见,而模仿会继承它们。

Chapter 1. Introduction

“我们能问的问题的种类和数量,只受限于我们的创造力”

“the type and number of questions we can ask is limited only by our creativity”

查看原文 →

老实的翻译:无监督学习没有真值,所以没有办法区分发现与人造产物。“只受限于创造力”也就是“构造上不可证伪”。

Chapter 1. Introduction

“参加由讲师出的考试,而作业却是由他们的助教布置的”

“taking exams written by a lecturer, while the homework was composed by their teaching assistants”

查看原文 →

本章最好的类比——分布偏移是学生们普遍的怨言。它之所以落地,是因为每个人都感受过这种损失,而不只是读到过。

Chapter 1. Introduction

“监督学习可以被重新表述为强化学习”

“supervised learning can be recast as reinforcement learning”

查看原文 →

是真的,也几乎没用。如果特例有闭式解,而一般情形需要几百万回合,通用性就什么也买不到。框架的宽度不是框架的威力。

Chapter 1. Introduction

“那次晋升很可能反映了上一年里一系列选得好的行动”

“That promotion likely reflects a number of well-chosen actions over the previous year”

查看原文 →

功劳归属通过办公室政治偷偷带了进来——这个类比比本意更尖锐,因为晋升也有一部分是噪声和裙带。从一个你无法完全掌控的稀疏奖励中学习,恰恰是最难的情形。

读后感AI 陪读

旋钮的比喻优雅得把十亿个纠缠的参数都藏了起来

这一章的弧线比看上去要安静:它一开头就给自己划了一条界——如果你能用规则 100% 地解决它,那就去做那个——然后用本章余下的篇幅去描绘这条线之外的疆域。真正的论点不是被排除在外的任务很难;而是我们对自己是不透明的。我们认出一张脸,听到一个唤醒词,捕捉到一种语气,却说不出怎么做到的。机器学习是从“做到”和“解释”之间的缺口进来的,而本章最有说服力的招数是具体的而不是概念性的:每秒 44,000 个样本,做到了好几段“这很困难”都做不到的事。从这里开始,旋钮的比喻承载了一切——一个带参数的程序,其旋钮由数据来拧——它作为全书的承重梁,当之无愧,同时也恰好藏起了之后将要紧的东西,因为旋钮意味着少数几个可读的刻度盘,而不是十亿个纠缠在一起的。然后是分类法:回归由其目标的数值形态来定义,分类则对应“是哪一个”的问题,还有那个小时工资的例子,用两个数据点就把线性回归讲清楚了,随后又老实地收回了那份精确。蘑菇是整章的枢纽。在这之前,主题是预测;在这之后,主题是决策。准确率不再是目标,后果接管了一切,而大多数已部署的系统都忘了这一点。写进那个期望里的无穷大是修辞而不是数学——任何非零的死亡概率都会让它爆炸,所以这个框架分不清 20% 和 0.0001%,而我们事实上是会开车的——但它所戏剧化的要点,经受得住糟糕的算术。同样的洞察在层级结构出现时再次出现:响尾蛇对比束带蛇的旁白,拆了作者自己例子的台,因为要紧的那棵树不是系统发生树,而是“什么会伤到你”的那棵树。

标注、搜索、推荐系统和序列学习随后把讨论从玩具场景带到了机构,质地越往后越好:存档与 MeSH 标注之间一年的滞后,比任何基准表格都更有说服力地论证了自动化;PageRank 与查询无关,被称为“奇怪”,恰恰是那个让整个网络得以离线计算的设计选择;被审查的反馈意味着缺失的三星评分,是系统性地缺席的,而且缺席的方式与你想预测的东西相关。反馈循环那一段是本章反过来审视自己前提的地方——此前的一切都假定数据来自世界,而在这里,数据来自上一个模型。这一段话里包含了现代的危机。学习体制那一节,是我最想反驳这个框定过于舒适的地方。监督学习那位“独裁的老板”被说得只是乏味,而真正的代价是独裁者的标签带着他的偏见,模仿会继承它们。无监督学习的问题“只受限于我们的创造力”,这是对“没有真值,因此无法区分发现与人造产物”的一种慷慨说法——构造上就不可证伪。监督学习可以被重新表述为强化学习,这个说法是真的,也几乎没用:当特例有闭式解,而一般情形需要几百万回合时,通用性什么也买不到。框架的宽度不是框架的威力。真正落地的,是“考试由讲师出、作业由助教布置”的类比——分布偏移是学生们普遍的怨言,是感受到的而不是读到的——还有通过办公室政治到来的功劳归属,比本意更尖锐,因为晋升也有一部分是噪声和裙带。本章的伦理线索是它最被低估的特色,因为它是结构性的,而不是后来硬加上去的。关于伤害可以在数据科学家没有共谋、甚至没有意识到的情况下发生的那句话,位于“关键组成部分”一节里,而不在一篇关于责任的附录中,这悄悄地让它成为机制的一部分。

继续阅读

结尾的综述保持了这种姿态:真实的风险——自动化、被编码的偏见、反馈——而不是电影式的风险,然后给出深度学习的定义:联合学习的多层表示,端到端训练吞并了特征工程,同时还有朝向非参数模型、经验重于理论和开放共享的转变。我会这样告诉读者:把这一章读成一篇关于局限而不是能力的论证。它告诉你规则在哪里止步,准确率在哪里不再是目标,你的数据在哪里不再是世界的样本、而成了你上一个模型的回声,以及框架的通用性在哪里不再有用。教学的语气很温暖,类比出奇地好——好到你应该留意每一个类比偷偷带进了什么。这里的每一次比较,都在讨好它所说明的方法,而如果你是带着这个目的去读,这一章老实到把接缝留在了那里,看得见。

在 FeedLitra 里读第 1 章,每段旁边都有这些卡片。

开始读书

论证在哪里吃力

不是反驳,而是细心的读者会想追问的地方。

  1. 本书一边敦促通过运行代码来建立直觉,一边又坚持有原则的推导,比如对平方损失的极大似然依据;它没有解决的是,在没有理论的情况下,读者该多信任经验性的调整。

    “由此可见,最小化均方误差,等价于在加性高斯噪声的假设下对线性模型做极大似然估计。”

    “It follows that minimizing the mean squared error is equivalent to the maximum likelihood estimation of a linear model under the assumption of additive Gaussian noise.”

    §3.1 Linear Regression查看原文 →
  2. 闭式解被斥为一个走运的特例,然而线性回归——它恰好有解析解——却被奉为几乎包含了深度学习所有组成部分的模型。

    “虽然解析解允许漂亮的数学分析,但要求有解析解的限制太严苛,会把深度学习几乎所有激动人心的方面都排除在外。”

    “Although analytic solutions allow for nice mathematical analysis, the requirement of an analytic solution is so restrictive that it would exclude almost all exciting aspects of deep learning.”

    §3.1 Linear Regression查看原文 →
  3. 即时讲授与前置的预备知识、符号和安装章节相冲突,这些章节在任何任务需要之前就讲了这些材料。

    “例如,“$x$:一个标量”的意思是小写字母通常表示标量值,而“$\mathbb{Z}$:整数集”则专指符号 $\mathbb{Z}$。”

    “For example, “\(x\): a scalar” means that lowercased letters generally represent scalar values, but “\(\mathbb{Z}\): the set of integers” refers specifically to the symbol \(\mathbb{Z”

    Notation查看原文 →
  4. 读者被告知 CPU 就够了,而工程论证却强调模型有几百兆字节的参数,每秒要更新好多次,并且 GPU 加速是偏爱张量的一个理由。

    “如果你的机器里没有任何 GPU,暂时不用担心。”

    “If your machine does not house any GPU, there is no need to worry just yet.”

    Installation查看原文 →
另外 2 处张力,以及 8 条证据上的局限
  1. 先从零实现一切,然后又为了高层 API 把它丢掉,使人不清楚实践者到底该在哪一层抽象上思考。

    “在第 3.4 节中,我们只依赖于:(i)用于数据存储和线性代数的张量;(ii)用于计算梯度的自动微分。”

    “In Section 3.4, we relied only on (i) tensors for data storage and linear algebra; and (ii) automatic differentiation for calculating gradients.”

    §3.5 Concise Implementation of Linear Regression查看原文 →
  2. 在一堆固定的数据上做离线学习,与“学习系统通过积累与环境的交互而改进”这一说法并不协调。

    “由于所有的学习都发生在算法与环境断开连接之后,这有时被称为离线学习。”

    “Because all the learning takes place after the algorithm is disconnected from the environment, this is sometimes called offline learning.”

    Chapter 1. Introduction查看原文 →

证据上的局限

  1. “只有 CPU 的机器就足以开始”这一说法只是断言,没有任何基准测试。

    “如果你的机器里没有任何 GPU,暂时不用担心。”

    “If your machine does not house any GPU, there is no need to worry just yet.”

    Installation查看原文 →
  2. 向量化的加速论证,只靠对 10,000 维向量做一次按元素运算的单个微基准。

    “向量化代码常常能带来数量级的加速。”

    “Vectorizing code often yields order-of-magnitude speedups.”

    §3.1 Linear Regression查看原文 →
  3. 闭式的最小二乘解只适用于线性最小二乘,且只在相关矩阵可逆时才适用,所以由它得出的结论不能推广到一般的模型。

    “虽然解析解允许漂亮的数学分析,但要求有解析解的限制太严苛,会把深度学习几乎所有激动人心的方面都排除在外。”

    “Although analytic solutions allow for nice mathematical analysis, the requirement of an analytic solution is so restrictive that it would exclude almost all exciting aspects of deep learning.”

    §3.1 Linear Regression查看原文 →
  4. 对线性回归直观的账单示例,只有在假定的两个特征能解释目标的全部变化时才成立。

    “如果你跟上了这些,那你已经理解了线性回归背后的高层思想。”

    “If you followed that much, then you already understand the high-level idea behind linear regression.”

    Chapter 1. Introduction查看原文 →
  5. 作者们承认,他们自建的出版系统并不完美,所以所宣称的相对现有资源的优势,有一部分只是期许。
  6. 对形式化理论为什么落后的解释——数学困难、数据性质定义不清、严肃探究起步太晚——是推理而不是证据,所以“靠调整代码来学习”这一处方没有经过经验验证。
  7. 机器学习的四部分分解,只用目标函数的例子(如平方误差和错误率)来说明,其余三个部分没有得到佐证。

    “一个目标函数,用来量化模型做得有多好(或有多差)。”

    “An objective function that quantifies how well (or badly) the model is doing.”

    Chapter 1. Introduction查看原文 →
  8. 预处理的指导只在一个小小的房屋数据集上演示,在这个规模上,插补和哑变量编码的选择几乎无关紧要。

    “然而,要把深度学习应用到真实世界,我们必须提取以任意格式存储的杂乱数据,并对它做预处理,使之适合我们的需要。”

    “However, to apply deep learning in the wild we must extract messy data stored in arbitrary formats, and preprocess it to suit our needs.”

    §2.2 Data Preprocessing查看原文 →

全书概念导图

5 组概念:通俗的叫法、一句话解释,以及原书自己的用语。

1 · 边运行代码边学习
每个想法都恰好在任务需要它的时候到来
恰好在某个实际任务需要时才引入每个概念,而不是把理论放在前面。原书用语: Just-in-time teaching
先手工搭一遍,再看一行代码的库版本
本书反复使用的教学法:先手工实现一个组件,再用此后一直使用的简洁框架版本重做一遍。原书用语: From scratch plus high-level API
每个示例都是你可以随意改动的独立 notebook
每个自成一体的示例放在自己的 notebook 里,让读者可以复制并修改它。原书用语: One working example, one notebook
一套固定的、隔离的环境,在笔记本电脑的 CPU 上就跑得很好
一个隔离的 Miniconda Python 3.9 环境,必须在每个新的 shell 中激活,只有更大的模型才在乎有没有 GPU。原书用语: Reproducible runtime environment
2 · 当规则无法写下来的时候
见到的数据越多就越好的程序
性能随着数据或交互的积累而提高的算法,用在规则无法手工写出的地方。原书用语: Machine learning
从已经带着答案的样本中学习
利用带标签的样本,基于已知的输入去预测一个指定的未知标签;它的子类型按输出的形式来组织。原书用语: Supervised learning
挑出一个样本属于哪个类别
预测一个样本属于一组离散类别中的哪一个,当类别同时出现时,扩展为多标签预测。原书用语: Classification and its variants
处理以序列形式到来的输入或答案
输入或输出是变长序列、需要上下文的任务。原书用语: Sequence learning
3 · 每种方法里的四个部分
一组参数设置是一个模型;全部设置,是一个族
参数设置固定的程序是一个模型;所有可以达到的设置构成它的族,也就是学习算法所搜索的空间。原书用语: Model and model family
从数据中挑选参数的例程
利用数据集来挑选参数值的元程序,在本书中主要体现为小批量随机梯度下降。原书用语: Learning algorithm
在一堆固定的数据上训练,而不是在一个活的环境里
与环境断开、利用一堆固定的数据进行的学习,与把观测映射到动作的策略形成对照。原书用语: Offline learning and policy
4 · 数学与数据的管道
任意形状网格里的数字——唯一的数据接口
一个有任意多条轴的数字数组——本书的核心数据接口——加上自动微分和 GPU 加速,以广播机制和原地操作为关键机制。原书用语: Tensor (n-dimensional array)
把向量从一个空间映射到另一个空间的矩阵运算
转置、对称性、哈达玛积和点积,以及沿轴的降维——书写层计算所用的词汇。原书用语: Linear algebra operations
把杂乱的真实表格变成干净的张量送进去
把杂乱的真实数据变成张量——用插补或删除,以及哑变量编码来处理缺失值——然后把加载、打乱和分批包起来,让学习算法永远不用接触原始存储。原书用语: Data preprocessing and loading
从形状就能看出是数、向量还是矩阵的符号
一套统一的符号约定,其中大小写和字体编码了对象的阶——标量、向量、矩阵、一般张量——并把占位符与明确命名的具体对象区分开来,还有专门标记的定义性等式。原书用语: Typographic notation system
5 · 线性回归作为缩影
预测一个普通的数,比如价格
预测一个可以取任意数值的标签,具体实现为特征的加权和再加一个偏置。原书用语: Regression
把平方差当作损失——钟形曲线噪声下的最佳拟合
预测与标签之差的平方的一半,对样本取平均;等价于加性高斯噪声下的极大似然。原书用语: Squared error loss
度量向量的大小,这正是损失所计算的东西
一个把向量送到标量的函数,用来度量它的大小,提供了表述学习目标所用的语言。原书用语: Norm
在没见过的数据上表现如何,由你设置的旋钮来引导
在没见过的数据上的准确率,由训练循环不更新的设置来控制,并在留出的验证集上评判。原书用语: Generalization and hyperparameters

值得停下来的段落AI 陪读

几处值得停下来的原文,每处附一句它为什么对全书要紧。

第 1 章 · Chapter 1. Introduction

“完成这项任务所需的精确步骤超出了我们有意识的理解,尽管我们的潜意识认知过程毫不费力地完成了这项任务”

“the precise steps required to perform the task lie beyond our conscious understanding, even though our subconscious cognitive processes execute the task effortlessly”

查看原文 →

放在全书的背景下看,这是奠基性的前提:后面的每一章之所以存在,只是因为人的能力超出了人的解释。

第 1 章 · Chapter 1. Introduction

“而当你能设计出 $100\%$ 的时候都管用的解决方案时,你通常不应该去操心机器学习。”

“And when you are able to devise solutions that work \(100\%\) of the time, you typically should not be worrying about machine learning.”

查看原文 →

书自己立的边界标记——它告诉你接下来的一千页在哪里不适用,这比它们断言的任何东西都更少见,也更有用。

第 5 章 · §5.1 Multilayer Perceptrons

“我们就是不知道如何手工计算它”

“we simply do not know how to calculate it by hand”

查看原文 →

从线性模型到深度网络整条弧线的枢纽:采用深度,不是一种胜利,而是承认手工设计的特征已经用尽。

另外 9 条批注
第 7 章 · §7.1 From Fully Connected Layers to Convolutions

“瓦尔多长什么样,并不取决于瓦尔多在哪里”

“what Waldo looks like does not depend upon where Waldo is located”

查看原文 →

本书最深层的反复出现的模式里最干净的一例——架构是对世界的断言,而数学只是这个断言的下标记法。

第 11 章 · Chapter 11. Attention Mechanisms and Transformers

“主要归因于可用计算资源的变化”

“primarily attributable to shifts in the available computational resources”

查看原文 →

通读全卷,这是令人不安的论点:逐章推进的叙事里,有很大一部分是算力和数据披着架构的外衣。

第 8 章 · §8.1 Deep Convolutional Neural Networks (AlexNet)

“然而,这种表面上的强项也是它的阿喀琉斯之踵:通用核心的制造成本非常高。”

“This apparent strength, however, is also its Achilles heel: general-purpose cores are very expensive to build.”

查看原文 →

与算力的论证相配,解释了为什么赢的是这些运算——深度学习的数学足够可并行,能搭上别人硬件市场的顺风车。

第 2 章 · §2.1 Data Manipulation

“第一,张量类支持自动微分。第二,它借助 GPU 来加速数值计算”

“First, the tensor class supports automatic differentiation. Second, it leverages GPUs to accelerate numerical computation”

查看原文 →

这个领域两个承重的推动者,结果都是工程,而不是数学——后面的理论章节从未真正正视这一框定。

第 4 章 · §4.1 Softmax Regression

“即使我们只关心硬性的分配,我们仍然使用做软性分配的模型”

“even when we only care about hard assignments, we still use models that make soft assignments”

查看原文 →

塑造了书中几乎每个模型的那个安静的约束:一切都必须可微,所以硬性的决策被软化,是为了梯度的缘故,而不是我们的缘故。

第 12 章 · §12.1 Optimization and Deep Learning

“只有一定程度的噪声,才可能把参数从局部极小值中敲出来。”

“Only some degree of noise might knock the parameter out of the local minimum.”

查看原文 →

点出了本书在优化、暂退法和数据增广中同样的招牌动作——噪声从缺陷被重新归类为机制。

第 17 章 · Chapter 17. Reinforcement Learning

“在标准的深度学习中,一个训练好的模型对某个测试数据的预测,并不影响它对未来某个测试数据的预测”

“in standard deep learning the prediction of a trained model on one test datum does not affect the predictions on a future test datum”

查看原文 →

对前二十章默默假设了什么的最尖锐的陈述;一旦独立同分布被打破,全书那些让人安心的保证也就随之而去。

第 11 章 · Chapter 11. Attention Mechanisms and Transformers

“尽管注意力权重究竟意味着什么——即它们应该如何解释,如果真能解释的话——仍然是一个模糊的研究话题”

“although what precisely the attention weights mean—i.e., how, if at all, they should be interpreted remains a hazy research topic”

查看原文 →

书在可解释性上最老实的时刻:如今统治这个领域的机制抗拒解释,而“如果真能的话”拒绝假装并非如此。

第 20 章 · §20.1 Generative Adversarial Networks

“如果生成器做得完美,那么 $D(\mathbf x')\approx 1$,于是上面的损失接近 0,这导致梯度太小,无法让判别器取得良好的进展。”

“If the generator does a perfect job, then \(D(\mathbf x')\approx 1\), so the above loss is near 0, which results in the gradients that are too small to make good progress for the discriminator.”

查看原文 →

值得留作读者的纪律——这样一本严谨的教科书也会印出一个倒过来的理由,所以相信你能检验的推导,胜过它周围的文字。

读后感AI 陪读

规则失效时,用可搜索的空间取代答案

从头读到尾,《动手学深度学习》不是对各种技术的综述,而是一个在每个尺度上反复出现的论证:当一项任务无法归结为你能明说的规则时,就别再规定答案,转而规定一个答案的空间,加上一种搜索它的办法——然后老实地为这一步的代价买单。它的脊梁从前言和符号(知识是一个设计问题;符号即类型)出发,经过预备知识里环环相扣的工具箱,进入线性回归和 softmax 回归,书真正的执念在这里第一次浮现:它把最简单的可用模型搭了两遍,然后立刻攻击这样搭起来所产生的自信,因为训练误差不等于泛化。从这里开始,这个模式换着不同的家具反复出现。MLP 表明,叠加仿射映射如果没有非线性什么也买不到,而决定性的问题变成了数值上的,而不是概念上的——梯度消失、对称性、初始化的方差。深度学习计算这一章揭示出一切之下那个唯一的结构性思想:模块是一个递归的构件,所以层、块和整个模型共用同一个接口。CNN 把关于世界的一个先验(局部性、平移不变性)编码为一种约束,然后用本章余下的篇幅,通过通道、填充和深度,买回约束拿走的东西;现代 CNN 讲述的是一个领域学会停止设计网络、开始设计设计空间。RNN 把可变上下文的问题搬进一个隐状态,而不是躲开它;现代 RNN 用一件武器——穿过时间的加性路径——对付同一个恶棍:梯度消失,同时坦率地把裁剪称为一个权宜之计。注意力随后通过让查找本身变成可学习、可微的,把瓶颈整个化解,而 Transformer 缺乏内置的先验,恰恰因为平滑的幂律缩放而成为优势,使它成了通用的骨干。最后的三分之一,是书转过身来面对自己的账单:在不诚实的地形上的优化,数学变成工程预算、硬件就是物质的计算性能,计算机视觉对前面章节的前提只是权宜之计的缓慢坦白,NLP 预训练那个先承诺免费的表示、再暴露每一种的局限的循环,强化学习用样本低效换来的免模型,高斯过程在函数上的先验,以及超参数优化对不去猜测的代价的核算。它最尖锐的判断是那些令人不安的:根本问题是泛化,而不是拟合;经典的复杂度理论过于悲观,解释不了深度网络;部署出去的模型可以改变它当初训练时所依据的分布;为每个任务量身定做的架构在大规模下不现实,但在资源紧张时仍然是对的;而对于大规模视觉,可扩展性干脆以多数票压过了让 CNN 称霸的归纳偏置。对读者说一句:别从这本书里挖食谱。把各章当作它们本来的样子——论证——来读,把每一段代码都跑一遍并把它弄坏,并把附录——数学和工具——不当作可有可无的卷末附件,而是当作整座大厦一直悄悄倚靠的脚手架。这本书最深的教训是一种习惯,而不是一个结果:说出你的假设,留意它们何时失效,并知道你接受的每一层抽象的价格。

关于作者:阿斯顿·张(Aston Zhang)

机器学习科学家,《动手学深度学习》的合著者

  • 伊利诺伊大学厄巴纳-香槟分校计算机科学博士3
  • 在 OpenAI 从事预训练和模型架构工作2
  • 亚马逊云科技 AI 研究院高级科学家3
  • 在 OpenAI 主导 GPT-5.4 Nano2
  • 《动手学深度学习》(Dive into Deep Learning,即本书),剑桥大学出版社,20232
  1. 阿斯顿·张(Aston Zhang)
  2. Aston Zhang – KI-Campus

网络书评怎么说

豆瓣上的中文读者评价很高,称赞它动手的代码、开源可得、作者的回应,以及配套的视频课程;批评者则说中文译本笨拙,对底层原理的讲解单薄,后面关于 CNN 和 RNN 的章节对真正的初学者来说太陡。deeplearning.ai 论坛上的一位发帖人主要把它当作一本参考书来推荐。

综合已发表书评的看法;不展示评分,完整书评请点来源链接。

  1. 动手学深度学习(PyTorch版) 短评
  2. 深度学习入门书籍推荐(动手学深度学习)书评
  3. 体验很差,难道因为我看的是第二版(动手学深度学习 书评)
  4. Dive Into Deep Learning - 书籍 - DeepLearning.AI 社区

来源与授权

CC BY-SA 4.0原书

  • 《动手学深度学习》(Dive into Deep Learning),作者 Aston Zhang、Zachary C. Lipton、Mu Li(李沐)、Alexander J. Smola(剑桥大学出版社,2023;在线版 d2l.ai)。Copyright 2019 Amazon.com, Inc. or its affiliates。正文采用知识共享 署名-相同方式共享 4.0 国际许可协议(CC BY-SA 4.0),示例代码采用修改版 MIT 许可。免费阅读原书 · 许可证
  • 本页由 FeedLitra 撰写的文字(摘要、批注、读后感)按 CC BY-SA 4.0 授权。
  • 本页的引文中文译文属于原作的改编作品,按同一协议(CC BY-SA 4.0)授权。
  • 摘要、论点、批注和读后感由 FeedLitra 根据全书原文 AI 辅助生成,引文已对照原文核对。最近更新:2026 年 10 月 21 日。

在 FeedLitra 里一边读《动手学深度学习》,一边看这些卡片。

开始读书