跳到主要内容

这是一本什么书 — 地图、底线与读法

这一章讲三件事: 你手里这本书是什么性质的书、深度学习和它之前的机器学习到底差在哪、 以及这本书哪几章可信、哪几章要带着怀疑读。 读完你会拿到全书的主线——每一种网络架构,都是往机器里塞进一条关于数据的假设不需要任何基础,遇到的生词都在当场解释。

1. 先说清楚:这是谁写的、什么性质的书

这本 2025 年出版的《Handbook of Deep Learning Models》有六位作者,背景差距大得少见: 两位印度高校的计算机教授、一位科技公司分布式系统工程师、一位医疗金融行业的机器学习工程师、 一位 AI 数据科学家,以及一位当时刚高中毕业、即将入学 UCLA 读本科的学生1

合编的结果写在书自己的前言里:这本书的定位不是理论教材,而是一本 「用 Keras 和 PyTorch 跟着代码做」的实验手册——从神经网络基础一路做到卷积网络、 迁移学习(拿大数据上练好的模型改去干新活)和数据增强2

「跟着代码做」这个定位决定了全书的样子:几乎每节都是 概念两页 + 代码一页 + 优点缺点列表。好处是每样东西都能跑;代价是 六个人写出来的章节水准参差——这件事我们到第 5 节给你一张核对过的质量地图, 读这本书之前先看那张地图,能省掉很多被误导的时间。

2. 主走查:同一个任务,两条路线

这一章只用一个任务当主走查,后面所有概念都挂在它上面:

任务:判断一张图片里「有没有猫」。

经典机器学习路线:人先当「特征翻译官」

在深度学习成熟之前,做法分三步:

一张图(上百万个像素值)
│ ① 人来设计:数一数有没有尖耳朵的轮廓、胡须的走向、
│ 皮毛的纹理统计量……把图压成几十个「特征」
│ ② 把这几十个数喂给一个浅层模型(比如第 02、03 章讲的那批)
│ ③ 模型输出:猫 / 不是猫

第一步——「从原始数据里挑出有用的数」——行话叫特征工程(feature engineering: 人工设计「从数据里提炼哪些数」的规则)。它是那个时代真正的技术含量所在, 也是最贵的一步:换一个任务(从认猫到认肿瘤),特征全部重做3

深度学习路线:把「翻译官」也交给机器

一张图(上百万个像素值)
│ ① 直接把像素喂进一个多层的神经网络
│ ② 网络的浅层自己学出「边缘、纹理」,深层自己组合出「耳朵、脸」
│ ③ 最后一层输出:猫 / 不是猫

差别不在「网络更深」这一个字上。原书把深度学习的不同点归成三条, 每一条都直接打在经典路线上4:

特征谁来做: 经典路线靠人设计特征,模型只管最后一步判断;深度学习路线靠表示学习——特征是训练的副产品,机器自己从原始数据里学出「边缘→部件→整体」的层级4

流程形态: 经典路线特征提取、模型训练两段分开,各自调;深度学习是端到端——从原始输入直通最终输出,一条流水线一起调。

代价: 不用设计特征,但要海量标注(人工标好答案)的数据,还要专门的算力(计算能力)。

具体说就是 GPU(图形处理器芯片)。

它擅长并行(把活拆开同时算),天生适合这件事。

书里对第三条说得很实:标注数据本身就要人力——认猫的图得先有人一张张标好「猫」, 标注大数据集是「费时费力」的活5

这一步的结论要记住: 深度学习不是「更聪明的算法」, 而是一次分工转移——把「什么算重要」从人的脑子里挪进了训练过程。 代价是数据量、算力和「黑盒程度」。全书后面每一章,都在讲这个转移在某一类数据上怎么落地。

3. 三层套娃:AI、机器学习、深度学习

这三个词经常被混用,原书给的包含关系值得记住6:

┌──────────────────────────────────────┐
│ 人工智能 AI:让机器做「需要人智能」的事 │
│ ┌────────────────────────────────┐ │
│ │ 机器学习 ML:不写死规则,从数据里学 │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ 深度学习 DL:专指用 │ │ │
│ │ │ 多层神经网络来做 ML │ │ │
│ │ └──────────────────────────┘ │ │
│ └────────────────────────────────┘ │
└──────────────────────────────────────┘

图说:每个内层都是外层的一个子集。会下棋的规则系统是 AI 但不是 ML;
决策树是 ML 但不是 DL;只有多层神经网络才是 DL。

机器学习内部再按「有没有标准答案」分三支,这三个词后面每一章都会用到7:

监督学习(supervised:有老师)——每条数据带标准答案。认猫、房价预测是它。

无监督学习(unsupervised:没老师)——只有数据,没有答案,任务是自动把相似数据归堆。

归堆的正式名字叫聚类。

把几百个特征压成几个还能看的,叫降维。

强化学习(reinforcement:试错拿奖惩)——没有答案,只有环境的奖惩信号。下棋、机器人控制是它。

另一个要当场说清的词是「模型」。 你会反复看到「训练一个模型」—— 它指的不是一台机器,而是**「一条从输入算出输出的规则,规则里带着一堆可以调的数」**。 训练 = 用数据把那些数调到输出与标准答案的差距(行话叫损失:预测与真值差了多少)最小为止。第 05 章讲那些数是怎么被调的。

4. 时间线:一个老想法怎么被解封

深度学习不是 2012 年凭空出现的。把原书散在两处的里程碑拼成一条线,看得更清楚8:

年份事件为什么重要
1940-50 年代McCulloch 与 Pitts 等人提出神经元的数学模型「模仿神经元」的想法诞生
1958Rosenblatt 的感知机:能学简单模式、做二分类(答案只有两种)的第一台机器证明「机器能从样本里学分类」
1956达特茅斯会议:「人工智能」作为学科立项领域有了名字
1980 年代反向传播算法被重新发掘,多层网络能训了神经网络第一次复兴

| 1990 年代 | 一类画「最宽分界线」的方法与集成方法等经典算法成熟(名字在第 02 章) | 第 02、03 章的主角们登场 |

| 2006 | Hinton 等人的深度信念网络 + 逐层预训练(先一层一层分开练) | 「深」网络第一次训得动 | | 2012 | AlexNet 赢下 ImageNet 图像分类大赛 | 深度学习从此成为主流 |

值得停一下的是 2012 年那一步。AlexNet 是一个深度卷积神经网络, 它在 ImageNet(一个一百多万张图、上千类的比赛数据集)上的成绩大幅甩开所有传统方法9。 从 1958 到 2012 中间的五十多年里,「神经网络」的想法没变, 变的是三件外部条件:数据(互联网攒出来的百万级标注图)、算力(GPU 并行计算)、 训练技巧(反向传播加各种修补)。想法等条件,条件到了想法才兑现。

5. 作者的判断与证据:一张质量地图

这一节是我们核对了全书正文之后给你的,不是书自己承认的。 六位作者合编、又大量改写公开材料,结果是章节可信度分成明显两档。 下面每一条都给证据,你可以自己回原文核。

可以放心引的部分

章节凭什么信
第 4 章 CNN(全书最大的一章)从全连接(每个部件都连上一层全部部件的接法)为什么撑不住图像开始的完整推导链,每一步带具体数字;两个可复算的手算例子(第 06、07 章会用)

| 第 6 章 GAN 的输赢算式(损失函数——算谁输谁赢的式子)与两个用例 | 生成器/判别器的输赢算式推导完整;MNIST 和 Pokemon 两个从数据下载到出图的全流程 |

| 第 7 章 RBF 的训练三步 | 把「训练」拆成三步可复现的算法,每步有代码 |

| 第 8 章 SOM 的 8.4 节 | 全书唯一一处逐个数字算到底的走查(第 11 章会整段搬用) |

要带怀疑读的部分

位置核对到的问题
第 2 章(经典机器学习)2.6.4 标题讲 Lasso 正则化(给可调数上刑罚防背题),贴的代码却和前面 2.6.1 那段一字不差,没有 Lasso10;2.18 的小结把第 2.2 节说的四种分析类型换成了另一套名字,前后对不上11

| 第 3 章 3.4-3.5(凸性与约束) | 与深度学习主线关系薄弱;规划例子(把工时分给两个项目)的输出「Project B: 4,950.0 hours」违反了它自己正文里「总工时 100 小时」的约束12;另一例打印的「最优解」违反自己写的约束(两数之和 ≤1,解里却有 3.0)13 | | 第 3 章 3.6 与 3.13 | 3.6.2 标题讲「每步只用一条数据」的调法,贴的却是每步十多条的代码;3.6.3 反过来14;3.13 标题许诺「随训练进度调步子」,代码里步子却是死的、没有任何调度15 | | 第 6 章的行文 | 残留两句聊天机器人口吻的原文:「beyond the scope of a single response」16;参考文献多处错位——GAN 的条目引到 2019 年另一篇论文、DCGAN 补引了一篇无关的 2009 年论文17 | | 第 8 章用例 | 信用卡数据集的描述把两个不同数据集的统计缝在一起18 |

判断(我们的,不是书里的): 这本书当「模型卡片手册」用——查一个架构的 结构、公式、代码骨架——第 4、6、7、8 章是合格甚至优秀的;当「可信教材」 从头读到尾,则会在第 2、3 章反复撞上贴错代码和自相矛盾的输出。 我们的拆解因此做了一个原书没做的事:逐章标注可信度,并把原书省略或讲错的解释补上。 如果错,会错在: 如果上表里某条其实是我们误读了原书的排版(比如公式平方号在转码时丢失), 那一条该撤销——但代码层面的错位(整段代码与标题不符)不受排版影响,那些条目是稳的。

6. 全书一条主线的预告

最后把我们要用的读法立在这里,后面十章都按它走:

每一种网络架构,都是往机器里塞进一条关于数据的假设(行话叫先验)。 假设越贴合数据,机器要学的参数就越少、要喂的数据就越少。 ——卷积网络假设「图案平移了也该认识」;循环网络假设「上一步影响下一步」; 生成对抗网络假设「分不出真假就是学到位」;RBF 与 SOM 假设「离得近就是像」。

这条线在第 06 章有一个能算出具体数字的证据: 同一个图像任务,不加假设要 10¹² 个参数(一万亿), 加两条假设后只要几百个——约十个数量级的差距,全部来自两条假设19。 那是全书最值得带走的一个数字。

7. 边界与局限:这本书不覆盖什么

读之前先知道别指望什么20:

  • 没有 Transformer 与大语言模型。 第 5 章只有一句「Transformer 已在部分应用上超过 RNN」; 注意力机制、预训练(先在海量文本上泛读)、微调(拿练好的模型小改成专用)这些今天的主角一个字没有。
  • 经典机器学习一章其实是另一本书的材料。 第 2 章开篇明义面向「社会科学与公共政策问题」, 举例全是选举、警察、铅中毒——与深度学习手册的定位脱节。
  • 没有部署与工程化。 怎么上线、响应快慢与成本怎么算,全书不讲。
  • RBF 与 SOM 是「历史展品」。 这两个架构今天在主流深度学习里几乎不用, 书里没有交代它们被边缘化的原因——第 10、11 章我们补上。

8. 可带走的

  1. 这是一本六人合编的代码实验手册,不是系统教材;先看质量地图(第 5 节)再选章读;
  2. AI ⊃ 机器学习 ⊃ 深度学习,三层是包含关系,不是三个并列词;
  3. 深度学习的三条分界:特征自己学(表示学习)、端到端吃数据吃算力;
  4. 监督/无监督/强化的分法看「训练时有没有标准答案」,这一个分法贯穿全书;
  5. 神经网络的「老想法 + 新条件」时间线:1958 年的想法,等 2012 年的数据和算力才兑现;
  6. 本书的可信度分层:第 4、6、7、8 章的核心推导可引;第 2、3 章的代码与小结要逐条核;
  7. 全书主线一句话:架构 = 先验;第 06 章那条「10¹² → 几百」的参数量(要调的数有多少)链是这条主线的锚点。

9. 原文地图

主题原书章原文位置
六位作者身份Biographytext/04-fm-biography.txt:3(搜「Anuj Bhardwaj」) · text/04-fm-biography.txt:36(搜「St. Joseph」)
书的定位:Keras 动手做Prefacetext/05-fm-preface.txt:16(搜「Keras API」) · text/05-fm-preface.txt:21(搜「journey from」)
经典路线靠特征工程1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:203(搜「feature engineering」)
DL 三条分界1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:431(搜「several key factors」)
标注数据费人力1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:552(搜「Data Labeling」)
AI⊃ML⊃DL1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:212(搜「DL is a subset of ML」)
监督/无监督/强化1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:90(搜「three main subcategories」)
里程碑列表1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:278(搜「Dartmouth Conference」) · text/06-ch01-1-introduction-to-deep-learning.txt:229(搜「Rosenblatt」)
深度信念网络 20061 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:376(搜「Geoffrey Hinton」)
AlexNet 20121 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:327(搜「AlexNet」)
第 2 章面向社会科学1 Introduction to Deep Learningtext/06-ch01-1-introduction-to-deep-learning.txt:1233(搜「social science」)
Lasso 代码贴错2.6 Linear Regressiontext/12-ch02-06-2-6-linear-regression.txt:216(搜「import numpy as np」) · text/12-ch02-06-2-6-linear-regression.txt:235(搜「Lasso」)
小结与 2.2 矛盾2.18 Summarytext/24-ch02-18-2-18-summary.txt:26(搜「diagnostic」) · text/08-ch02-02-2-2-types-of-data-analysis.txt:6(搜「description, detection」)
linprog 输出违反约束3.5 Constraintstext/30-ch03-05-3-5-constraints.txt:203(搜「4,950」) · text/30-ch03-05-3-5-constraints.txt:157(搜「100 hours」)
cvxpy 输出违反约束3.5 Constraintstext/30-ch03-05-3-5-constraints.txt:264(搜「5.9999」) · text/30-ch03-05-3-5-constraints.txt:240(搜「sum(x) <= 1」)
SGD 节贴错代码3.6 Gradient Descenttext/31-ch03-06-3-6-gradient-descent.txt:177(搜「mini_batch」) · text/31-ch03-06-3-6-gradient-descent.txt:101(搜「batch_gradient_descent」)
调度节无调度器3.13 Learning Rate Schedulingtext/38-ch03-13-3-13-learning-rate-scheduling.txt:131(搜「lr=0.001」)
聊天腔残留6 Generative Adversarial Networkstext/43-ch06-6-generative-adversarial-networks.txt:954(搜「single response」) · text/43-ch06-6-generative-adversarial-networks.txt:1436(搜「you shared」)
引用错位6 Generative Adversarial Networkstext/43-ch06-6-generative-adversarial-networks.txt:1515(搜「distinguishability criteria」) · text/43-ch06-6-generative-adversarial-networks.txt:1524(搜「Lee, H.」)
数据集描述错位8 Self-Organizing Mapstext/45-ch08-8-self-organizing-maps.txt:512(搜「284,807」) · text/45-ch08-8-self-organizing-maps.txt:708(搜「didn」)
参数量链预告4 Convolutional Neural Networkstext/41-ch04-4-convolutional-neural-networks.txt:352(搜「10」) · text/41-ch04-4-convolutional-neural-networks.txt:447(搜「hundred while still」)
Transformer 超越 RNN5 Recurrent Neural Networkstext/42-ch05-5-recurrent-neural-networks.txt:54(搜「transformer」)

Footnotes

  1. 出处:「Biography」第 3 段(text/04-fm-biography.txt:3,搜「Anuj Bhardwaj」)与第 36 段(text/04-fm-biography.txt:36,搜「St. Joseph」)。六位作者分别是:Anuj Bhardwaj(Chandigarh 大学教授)、Vaibhav Chaudhari(Nutanix 工程师)、Ankur Dumka(Dehradun 女子理工学院副教授)、Arnav Pandey(圣约瑟夫学院毕业生、已被 UCLA 录取)、Er. Devarasetty Purna Sankar(Data Foundry 高级软件工程师)、Parag Verma(AI 数据科学家)。

  2. 出处:「Preface」第 16 段(text/05-fm-preface.txt:16,搜「Keras API」)与第 21 段(text/05-fm-preface.txt:21,搜「journey from」)。原书工作标题是「Let's WorkOut With Deep Learning Models」。

  3. 出处:「1 Introduction to Deep Learning」第 203 段(text/06-ch01-1-introduction-to-deep-learning.txt:203,搜「feature engineering」)。原文说传统方法依赖领域专家手工设计与提取特征,深度学习「消除了对手工特征工程的需要」。

  4. 出处:「1 Introduction to Deep Learning」第 430 段起(text/06-ch01-1-introduction-to-deep-learning.txt:431,搜「several key factors」)。1.3 节列出表示学习、深度与复杂度、端到端、大数据与可扩展性、表示能力五项;本表取其中构成真正分界的三条。 2

  5. 出处:「1 Introduction to Deep Learning」第 552 段(text/06-ch01-1-introduction-to-deep-learning.txt:552,搜「Data Labeling」)。原文:标注大数据集「laborious and time-consuming」,常需要人工标注员或众包平台。

  6. 出处:「1 Introduction to Deep Learning」第 212 段(text/06-ch01-1-introduction-to-deep-learning.txt:212,搜「DL is a subset of ML」)。原话:「DL is a subset of ML, which in turn is a subset of AI」。

  7. 出处:「1 Introduction to Deep Learning」第 90 段(text/06-ch01-1-introduction-to-deep-learning.txt:90,搜「three main subcategories」)。

  8. 出处:「1 Introduction to Deep Learning」第 278 段(text/06-ch01-1-introduction-to-deep-learning.txt:278,搜「Dartmouth Conference」)、第 229 段(搜「Rosenblatt」)、第 299 段(搜「resurgence」)。里程碑列表在 1.2.2 节。

  9. 出处:「1 Introduction to Deep Learning」第 327 段(text/06-ch01-1-introduction-to-deep-learning.txt:327,搜「AlexNet」)。补充(不在书里,来自通用知识):ImageNet 比赛数据集约 1400 万张标注图、2 万余类别;参赛用的子集约 120 万张、1000 类。

  10. 出处:「2.6 Linear Regression」第 216 段(text/12-ch02-06-2-6-linear-regression.txt:216,搜「import numpy as np」)与第 235 段(text/12-ch02-06-2-6-linear-regression.txt:235,搜「Lasso」)。2.6.4 标题是 Lasso 回归,但代码导入的是 LinearRegression、没有 Lasso 类、没有正则化参数 alpha,与 2.6.1 的代码逐字相同;而其后的散文却说「we import the 'Lasso' class」。

  11. 出处:「2.18 Summary」第 26 段(text/24-ch02-18-2-18-summary.txt:26,搜「diagnostic」)与「2.2 Types of Data Analysis」第 6 段(text/08-ch02-02-2-2-types-of-data-analysis.txt:6,搜「description, detection」)。2.2 正文写的是 description/detection/prediction/behavior change 四类;2.18 小结却写成 descriptive/diagnostic/predictive/prescriptive。

  12. 出处:「3.5 Constraints」第 203 段(text/30-ch03-05-3-5-constraints.txt:203,搜「4,950」)与第 157 段(text/30-ch03-05-3-5-constraints.txt:157,搜「100 hours」)。正文设定的约束是「总可用劳动 100 小时」,而代码把 5000 的预算当成了工时上限,打印出 B 项目 4950 小时——总量已超约束五十倍。

  13. 出处:「3.5 Constraints」第 264 段(text/30-ch03-05-3-5-constraints.txt:264,搜「5.9999」)与第 240 段(搜「sum(x) <= 1」)。代码约束为 x≥0 且 sum(x)≤1,此时最小化平方和的最优解是 x=[0,0]、目标值 0;书里打印的却是目标值约 6.0、解 [≈0, 3.0]——分量 3.0 直接违反 sum≤1。

  14. 出处:「3.6 Gradient Descent」第 177 段(text/31-ch03-06-3-6-gradient-descent.txt:177,搜「mini_batch」)与第 296 段(搜「batch_gradient_descent」)。3.6.2 标题为随机梯度下降(SGD),其代码定义的却是 mini_batch_gradient_descent(batch_size=10);3.6.3 标题为小批量梯度下降,代码却是全数据集的 batch_gradient_descent。纯 SGD 的代码全书未出现。

  15. 出处:「3.13 Learning Rate Scheduling」第 131 段(text/38-ch03-13-3-13-learning-rate-scheduling.txt:131,搜「lr=0.001」)。该节概念部分讲了阶梯衰减、指数退火、warmup 等策略,但示例代码用固定 lr=0.001 的 SGD 训练 LeNet,未出现任何调度器;训练循环还有缩进错乱。

  16. 出处:「6 Generative Adversarial Networks」第 954 段(text/43-ch06-6-generative-adversarial-networks.txt:954,搜「single response」)与第 1436 段(搜「you shared」)。前者原话:「A full implementation of the DCGAN is beyond the scope of a single response」;后者:「the 'update_D' and 'update_G' functions are not provided in the code snippet you shared」——且这两个函数在书中确实没给出,照抄跑不通。

  17. 出处:「6 Generative Adversarial Networks」第 1515 段(text/43-ch06-6-generative-adversarial-networks.txt:1515,搜「distinguishability criteria」)与第 1524 段(搜「Lee, H.」)。正文说 GAN 由 Goodfellow 2014 年的开创性论文提出,但参考文献列的是他同年另一篇短文《On distinguishability criteria for estimating generative models》;DCGAN 处补引的 Lee et al. 2009 是卷积深度信念网络论文,与 DCGAN 无关。

  18. 出处:「8 Self-Organizing Maps」第 512 段(text/45-ch08-8-self-organizing-maps.txt:512,搜「284,807」)与第 707 段(搜「didn」)。8.5.1 给「Credit_Card_Applications.csv」配的统计(284,807 笔交易、492 笔欺诈、V1-V28 主成分)属于另一个公开的信用卡交易数据集;而代码与可视化(红圈=未获批、绿方=获批)讲的是客户申请审批数据。补充(不在书里,来自通用知识):284,807/492 这组数字出自 Kaggle 的 creditcard.csv 数据集说明页。

  19. 出处:「4 Convolutional Neural Networks」第 352 段(text/41-ch04-4-convolutional-neural-networks.txt:352,搜「10」)与第 447 段(搜「hundred while still」)。推导链:1000×1000 图像映射到同尺寸隐层需 10¹² 量级参数;加平移不变降为约 4×10⁶;再加局部性(Δ<10)后「只需几百个参数」。完整推导在第 06 章走一遍。

  20. 出处:「5 Recurrent Neural Networks」第 54 段(text/42-ch05-5-recurrent-neural-networks.txt:54,搜「transformer」);「1 Introduction to Deep Learning」第 1233 段(text/06-ch01-1-introduction-to-deep-learning.txt:1233,搜「social science」)。第 2 章引言原话:本章面向「machine learning for addressing social science and public policy problems」。