跳到主要内容

从一个神经元到一张网

这一章讲三件事: 一个神经元不够用,是卡在哪一道具体的题上; 叠成很多层之后信号是怎么一路算过去的(带全部数字); 以及 —— 为什么每层中间非要插一道「掰弯」的手续,不插会怎样。 它在全书链条里的位置是第 6 级台阶: 会算的单元有了、参数会学了, 现在问「一个不够怎么办」。 遇到的生词都在当场解释。

1. 顶层全景

一个神经元
│ 只画得出一条直线 ⇒ 有一类题它永远做不对

叠成很多层
│ 理论上能拼出任意复杂的形状

但如果每层只是「乘一乘加一加」……
│ ⚠️ 一百层 = 一层。整张网退化成一个神经元

所以每层后面插一道非线性的手续(激活函数)
│ 可它选谁?最直觉的那个 sigmoid 有毛病:信号往回传几层就没了

换成 ReLU(第 02 章那个 max(0,x))
│ 代价:负半轴那边会「死」掉一批神经元

于是又有了 Leaky-ReLU 和 ELU

图说:整条链上每一步都是被上一步的毛病逼出来的——
和第 06 章那把尺子推三版是同一个形状。

本章主走查: 书给的那个小网络的前半程。两个输入 i₁ = 0.02、i₂ = 0.7, 中间一层两个神经元,最后一层两个神经元,十个参数全部给定

(中间那种夹在里面、你既看不到它输入也看不到它输出的层叫隐藏层,第 3 节细讲。)

我们把信号从输入一路算到输出,每一步写出具体的数。 这条走查的后半程在第 08 章 —— 那是同一组数字的下半场。

2. 一个神经元卡在哪儿:一道小学题

这一节回答:为什么非要叠起来。而书恰恰没有回答这个问题。

先看现象

第 05 章那个神经元,本质上是在画一条直线,然后说「线这边的是一类,那边的是另一类」。 书自己也说了:它是一个二分类的线性分类模型

那么问题来了:有没有一种题,一条直线怎么画都分不开?

有,而且小到可以写在纸巾上。

纸上四个点,问「这两个坐标一样不一样」:

1 ┤ ●(0,1)不一样 ○(1,1)一样

0 ┤ ○(0,0)一样 ●(1,0)不一样
└──┬──────────────────┬──
0 1

● = 答「不一样」 ○ = 答「一样」

图说:两个「一样」在对角线上,两个「不一样」在另一条对角线上。
拿一把尺子试试——**你画不出一条直线,把两个 ● 分到一边、两个 ○ 分到另一边。**
这道题叫「异或」。

这件事的后果:第一个冬天

这本书讲了感知器(第 4 章),也讲了人工智能的低谷(第 1 章), 但从头到尾没有把这两件事连起来。 这是它的一个真实缺口,我们补上:

补充(不在书里,依据我们自己的书架): 1969 年,明斯基和佩珀特出版了一本书, 精确地证明了单层网络学不会异或。这本书的杀伤力不在数学上,在资金上 —— 政府的钱转去了别的方向,神经网络的第一个冬天从这里开始1

这条历史引用的时候要精确: 那本书证明的是**「单层」学不会异或**, 不是「神经网络不行」。 两层就能解决它 —— 而这正是下一节要讲的。

3. 叠起来:多层感知机

做法:把上一个的输出当下一个的输入

书讲得很直接:把多个单层感知机纵向、横向组合叠加,就形成了多层感知机, 也叫全连接神经网络;这时候单个感知机就变成了网络里的一个神经元2

层分三种3:

干什么
输入层第一层,接收原始数据
隐藏层中间那些层。叫「隐藏」是因为你既看不到它的输入、也看不到它的输出
输出层最后一层,给出结果

「全连接」是字面意思,不是形容词

书给的定义一点都不含糊:除输入层和输出层之外,每一层的每一个节点 都与上下层节点全部连接4。 (书这里说的「节点」就是上一节那个神经元。 这个词书后面还会拿去指别的东西, 所以本拆解在讲网络结构时一律说「神经元」,不说「节点」。)

输入层 隐藏层 输出层
i₁ ────┬────▶ h₁ ────┬────▶ o₁
╳ ╳
i₂ ────┴────▶ h₂ ────┴────▶ o₂

图说:每个箭头是一个权重。这里 2×2 + 2×2 = 8 条箭头,加两个偏置,
一共 10 个参数——正好是下面那条走查要用的。
「全连接」的意思就是:这些箭头一根不缺。

书顺带点了这件事的后果:反映在数学模型上,就是参数很多、模型很复杂5这句话是第 10 章那整章的伏笔 —— 到那里你会看到,一张 16×16 的小图接上这种网络, 参数就要两百多万个。

「深度」的两个意思,以及层数的常见量级

书给了「深度」的两层含义6:一是网络层数深,二是能学到样本更深层次的特征。

隐藏层数叫法
早期(受限于算力和理论)大多只有 3—5 层浅层神经网络
后来十几层到上百层深层神经网络 = 深度学习

但隐藏层不是越多越好:过拟合

书在同一段里给了一个反向的提醒:隐藏层可以更好地分离数据的特征, 但是过多的隐藏层会导致过拟合问题7

「过拟合」这个词在这里第一次出现,就地讲透:

过拟合 = 模型把训练那批数据背下来了。 它在见过的数据上分数很漂亮,一换成没见过的数据就掉下去。

一堆散点,你要拟合它们:

欠拟合(太简单) 刚好 过拟合(太复杂)
● ● ● ● ● ●
──────── ╱‾‾‾‾╲ ╱\ ╱\ ╱\
● ● ● ● ● \╱ \╱ ●
一条直线, 一条平滑曲线, 一条扭来扭去的线,
啥也没抓住 抓住了趋势 **每个点都穿过去了**
——包括那些本来就是噪声的点

图说:第三条线在这批点上「一分不差」,但它把噪声也当成规律学了。
换一批新点,它会错得比第二条离谱得多。

为什么参数越多越容易过拟合(补充,不在书里,来自通用知识): 参数多就意味着这条线能扭得更花;能扭得更花,就更有可能去迁就每一个具体的点, 而不是抓那个总的趋势。

怎么治它,这本书分两处讲: 网络结构这一侧用 Dropout(第 11 章); 数据这一侧靠增强(第 13 章)。

4. 多层为什么行:书给了类比,但没点名那条定理

书的说法

书的理由是一个类比:傅里叶变换、多项式的泰勒展开,都可以分解为简单基本函数的叠加; 也就是说,用简单的函数组合出复杂的函数是有理论支撑的8

这个类比方向没错,但书没有点名它指的是哪条定理。

我们补上:那条定理叫什么

补充(不在书里,但书自己的参考文献里有): 它指的是通用逼近定理。 书末参考文献 [15] 就是 CYBENKO G.《Approximation by superpositions of a sigmoidal function》, 1989 年9参考文献里有,正文却没接上。

这条定理粗略说的是:只要隐藏层足够宽,一个单隐藏层的网络就能表示任意函数。

但它有一条硬边界,而且书完全没提

补充(不在书里,依据我们自己的书架): 「能表示」和「能学到」是两回事。 定理保证「存在一组参数能表示这个函数」,它不保证你能找到那组参数; 也不保证找到之后在没见过的数据上还管用 —— 前者是表达力问题,后者是优化和泛化的问题10

为什么这条边界要紧: 因为它划清了后面九章的分工 —— 第 08 章讲怎么「找」(优化),第 11 和 13 章讲怎么让找到的东西在新数据上还管用(泛化)。 如果通用逼近定理什么都保证了,那后面九章就都不必写了。

一句要记住的区分

书还澄清了「神经元」和「感知器」的关系:本质上是一样的, 只不过感知器的激活函数是阶跃函数(输出只有 +1 和 −1 两种), 而神经元的激活函数往往选 sigmoid 或者 ReLU 这类11

5. 主走查:信号从输入一路算到输出

这是本章的落点。这条走查的每一个数,除了中间结果,全部是书给的。

网络长什么样,以及全部十个参数

结构:2 个输入 → 隐藏层(2 个神经元 h₁ h₂) → 输出层(2 个神经元 o₁ o₂)
全连接 ⇒ 8 条连线 = 8 个权重,再加隐藏层偏置 b₁ 和输出层偏置 b₂ = 10 个参数
每个神经元的激活函数都是 sigmoid

输入: i₁ = 0.02 i₂ = 0.7
期望: o₁ 应该是 0 o₂ 应该是 1

权重: w₁ = 0.1 w₂ = 0.2 w₃ = 0.3 w₄ = 0.4 (输入 → 隐藏)
w₅ = 0.2 w₆ = 0.3 w₇ = 0.1 w₈ = 0.2 (隐藏 → 输出)
偏置: b₁ = 0.3(隐藏层共用) b₂ = 0.2(输出层共用)

↑ 这十个数、两个输入、两个期望值,全部是书给的。

sigmoid 是什么,这里就地解释: 它把任何一个数压到 0 和 1 之间 —— 很大的数压成接近 1,很小的(负得厉害的)压成接近 0,0 压成 0.5。 它的形状是一条平滑的 S 曲线。

1 ┤ ╭────────
│ ╱
0.5 ┼────╱
│ ╱
0 ┤─╯
└────┬──────── 输入
0

图说:两头都趴得很平,中间那一段最陡。
「两头趴平」这件事在第 7 节会变成一个大麻烦。

逐步走

── 第 1 步:输入层 → 隐藏层 ──────────────────────────────

h₁ 的加权和(书叫「净活值」):
net_h1 = w₁×i₁ + w₂×i₂ + b₁
= 0.1×0.02 + 0.2×0.7 + 0.3
= 0.002 + 0.14 + 0.3
= 0.442 ← 书给的数,对得上
过 sigmoid:
out_h1 = sigmoid(0.442) = 0.60874 ← 书写作 0.6087

h₂ 同法:
net_h2 = 0.3×0.02 + 0.4×0.7 + 0.3 = 0.006 + 0.28 + 0.3 = 0.586
out_h2 = sigmoid(0.586) = 0.64245

── 第 2 步:隐藏层 → 输出层 ──────────────────────────────

o₁:
net_o1 = w₅×out_h1 + w₆×out_h2 + b₂
= 0.2×0.60874 + 0.3×0.64245 + 0.2
= 0.12175 + 0.19273 + 0.2
= 0.51448
out_o1 = sigmoid(0.51448) = 0.62586 ← 书给的数,一位不差

o₂:
net_o2 = 0.1×0.60874 + 0.2×0.64245 + 0.2
= 0.06087 + 0.12849 + 0.2 = 0.38936
out_o2 = sigmoid(0.38936) = 0.59613 ← 书给的数,一位不差

── 结果 ──────────────────────────────────────────────

这一轮输出:[0.62586, 0.59613]
期望: [0, 1 ]
差得很远。

图说:**两端的数是书给的,中间那几个净活值和激活值是我们按书给的初值自己算出来的**
——公式本体在书里是图片。我们算完对得上书给的输出,所以这条走查可以放心用。
第 08 章会接着这一组数字往下走:怎么把这个「差得很远」变成「差一点点」。

这一步在书里叫「信号前向传播」:信息只朝一个方向走,从输入穿过隐藏层到输出, 整个网络里没有循环、没有回路12

一句定位

书自己下了个很好的结论:整个神经网络叠起来可以抽象成一个函数 —— 它的输入就是那两个数,输出就是那两个数; 而参数学习要做的事情,就是不断调整权重和偏置,快速找到一组能给出理想输出的参数13

6. 为什么每层中间非插一道手续不可

这是本章第一个承重点。而且这次我们能把它当场算出来。

书的那句话

书说得很重:如果不用激活函数,那么每层节点的输入都是上层节点输出的线性函数; 此时无论网络有多少层,最终输出都是输入的线性组合,整个网络的逼近能力将极其有限14

这句话很对,但读起来只能点头。下面把它算出来。

走查的一个变体:把 sigmoid 换成「原样输出」

同一张网、同一组参数,唯一的改动是:每个神经元算完加权和之后直接输出,不做任何变形。

隐藏层:
out_h1 = net_h1 = 0.442
out_h2 = net_h2 = 0.586

输出层:
net_o1 = 0.2×0.442 + 0.3×0.586 + 0.2
= 0.0884 + 0.1758 + 0.2 = 0.4642
net_o2 = 0.1×0.442 + 0.2×0.586 + 0.2
= 0.0442 + 0.1172 + 0.2 = 0.3614

到这里还看不出问题。现在把中间那一层拆开代进去:

out_h1 = 0.1 i₁ + 0.2 i₂ + 0.3
out_h2 = 0.3 i₁ + 0.4 i₂ + 0.3

o₁ = 0.2 × (0.1 i₁ + 0.2 i₂ + 0.3) + 0.3 × (0.3 i₁ + 0.4 i₂ + 0.3) + 0.2
= (0.02 + 0.09) i₁ + (0.04 + 0.12) i₂ + (0.06 + 0.09 + 0.2)
= 0.11 i₁ + 0.16 i₂ + 0.35 ← ⚠️ 隐藏层整个消失了

验一下:0.11×0.02 + 0.16×0.7 + 0.35 = 0.0022 + 0.112 + 0.35 = 0.4642 ✅ 对得上

同理 o₂ = 0.07 i₁ + 0.10 i₂ + 0.29
验:0.07×0.02 + 0.10×0.7 + 0.29 = 0.0014 + 0.07 + 0.29 = 0.3614 ✅

看清楚发生了什么:那个两层网络,和一个「权重 (0.11, 0.16)、偏置 0.35」的 单个神经元,给出的答案一模一样。 隐藏层白加了。 而且这个推导和层数无关 —— 再叠一百层,照样能这么合并掉。 一百层等于一层,不是修辞,是算出来的。

(这段推导是我们做的:书给了结论,没给这个演算。)

所以激活函数的职责只有一个:掰弯

激活函数的全部作用就是让这条链条不再是「一条直线套一条直线」。 只要中间插了一个不是直线的函数,上面那个合并就做不成了 —— 隐藏层才真正开始起作用。

书给的正面说法是:引入非线性函数作为激励函数之后,深层网络的表达能力就强大得多, 几乎可以逼近任意函数15

「非线性」这个词在这里就地解释: 画出来是一条直线的函数叫线性的 (比如 y = 2x + 1);画出来是弯的,就是非线性的。 sigmoid 那条 S 曲线是弯的,第 02 章那个 max(0, x) 在原点拐了个弯,也是弯的。

这个词后面还要用: 第 10 章讲池化(把特征图缩小的一道手续)时会说它提供 「不可学习的非线性变换」,说的就是这里这件事。

7. 那选哪个函数:又一条被毛病逼出来的链

这是本章第二个承重点。

毛病一:sigmoid 两头趴得太平

回头看第 5 节那条 S 曲线:输入很大或者很小的时候,曲线几乎是平的。 书把这个性质叫饱和性,并指出它的后果: 在误差反向传播的过程中,输入非常大或非常小时,导数会趋近于零; 往下一层传递的梯度就非常小,由此引起梯度消失的问题16

「梯度消失」这个词就地讲透。 要理解它得先接受一件事(第 08 章会讲透): 训练时,「该往哪调」这个信号是从最后一层往前一层层传的, 而每经过一层,信号都要乘上那一层激活函数的斜率。

sigmoid 的斜率最大只有 0.25(在正中间那一点),两头趋近于 0。

信号从输出层往回传:
第 1 层回传: ×0.25
第 2 层回传: ×0.25 ⇒ 累计 0.0625
第 3 层回传: ×0.25 ⇒ 累计 0.0156

第 10 层回传: ⇒ 累计 0.00000095

图说:**这还是最理想的情况**(每次都撞在斜率最大的那一点上)。
实际上多数时候斜率远小于 0.25,衰减得更快。
传到靠近输入的那几层时,信号已经小到几乎不动那些参数了——那几层等于没在学。
0.25 这个最大值和上面的连乘是我们算的,书只给了「导数会趋近于零」这个结论。

治法:换一个在正半轴不衰减的

ReLU 正是为此而来 —— 就是第 02 章 §4 留过名的那个 max(0, x): 大于 0 原样输出,小于等于 0 输出 0。

书给的理由很干脆:ReLU 在 x > 0 时可以保证梯度不变, 从而非常有效地解决了梯度消失的问题;它是「现代神经网络中最常用的激活函数, 是大多数前馈神经网络默认使用的激活函数」——「前馈」就是第 5 节那种走法: 信号只朝一个方向走,不回头17

sigmoid ReLU
1 ┤ ╭───── ┤ ╱
│ ╱ │ ╱
0.5 ┼╱ │ ╱
│ 0 ┼──────
0 ┤─╯ └──┬───
斜率最大 0.25,两头趋 0 x>0 那一侧斜率恒等于 1

图说:正半轴斜率永远是 1,连乘一百次还是 1——梯度传多深都不衰减。
这就是它取代 sigmoid 的全部理由。

但它有自己的代价:会「死」

书紧接着给了它的毛病:x < 0 时梯度为 0,于是 「这个神经元及之后的神经元梯度永远为 0,不再对任何数据有所响应, 导致相应参数永远不会被更新」18

说人话:一个神经元一旦被推到负半轴那边,它就再也回不来了 —— 它死了。 因为要靠梯度才能把它推回来,而它那边的梯度恒等于 0。

于是又有了改进版:Leaky-ReLU 和 ELU19。 它们的思路是同一个:别让负半轴那一侧彻底归零,留一点点斜率。

ReLU Leaky-ReLU
│ ╱ │ ╱
│ ╱ │ ╱
─────┼────── ───╱───┼──────
│ ╱ │
负半轴完全是平的 负半轴留一个很小的固定斜率
⇒ 掉进去就再也出不来 ⇒ 还能被慢慢推回来

图说:第 13 章那个巡航网络用的正是 Leaky-ReLU,理由就是这一条。

这条链完整了,而且它和第 06 章那把尺子推三版是同一个形状: 每一步都不是凭空提出来的,是上一步的毛病逼出来的。 看到一个新的激活函数时,先问「它治的是上一个的什么病」。

8. 最后一层的一个特例:Softmax

这一节交代一个后面要用的东西,但只讲到「它做什么」为止。

现象先行

分类任务的最后一层要给出「这张图是哪一类」。 可网络吐出来的是几个大小随意的数,比如 [2.0, 1.0, 0.1] —— 这不是「概率」。

做法

Softmax 把一串数变成一串加起来正好等于 1 的正数, 于是它们可以被当成「各类别的可能性」来读20

网络最后一层吐出: [2.0, 1.0, 0.1]
│ Softmax

变成: [0.66, 0.24, 0.10] 加起来 = 1.00

图说:大的还是最大,小的还是最小,只是被压成了一组「份额」。
这三个数是我们按标准公式算的,书没有给具体数值。

书还点了一句:Softmax 层常和交叉熵损失函数结合使用21

为什么这两个总是配对出现,这里先欠着 —— 第 09 章讲。 那里会看到一个具体的数:模型说「第一类的可能性是 0.7」,而答案正是第一类, 它要挨多重的罚。

9. 作者的判断与证据

说法是哪一类
那条走查的输入、十个初值、两个输出有证据: 书直接给出。我们完整重算过,中间值能推出书给的输出
「全连接」的定义、隐藏层数量的量级有证据: 定义与常识性描述
没有激活函数则多层退化成一层有证据(结论),推导是我们补的。 书只给结论,没给演算
「过多的隐藏层会导致过拟合」作者的判断,没有给实验。 机制上说得通,但这句话本身是经验陈述
「用简单函数组合出复杂函数有理论支撑」作者的类比,而且没有点名那条定理。 它指的是通用逼近定理,书的参考文献 [15] 就是,正文却没接上
sigmoid 饱和导致梯度消失;ReLU 解决它;ReLU 会死有证据: 这是行业共识,书的表述准确。连乘那几个数是我们算的
「ReLU 是大多数前馈神经网络默认使用的激活函数」作者的观察。 在 2024 年成立;它的变体(Leaky-ReLU、GELU 等)在不同场景下各有偏好
1969 年那本书与第一次冬天不在这本书里。 是我们从另一本书补的,已标明来源

我们的一条判断

判断(我们的,不是书里的): 这一章和第 06 章合起来,暴露了这本书真正的教学法 —— 每一个新东西都不是被「介绍」出来的,是被上一个东西的毛病「逼」出来的。 尺子推三版是这个形状,激活函数从 sigmoid 换到 ReLU 再到 Leaky-ReLU 也是这个形状。 拿到任何一个你没见过的技术名词,先问「它治的是上一个的什么病」 —— 答得上来,你就真懂了它;答不上来,你只是记住了一个名字。 如果错,会错在: 有些东西确实不是被毛病逼出来的,而是从别的领域直接搬过来的。 对那一类,这条追问会问出一个不存在的病来。 判据是:文献里有没有一篇明确写着「上一代的什么问题促使我们这么做」。

10. 边界与局限

  • 这一章对应原书 §8.1—8.2.2。 原书第 8 章内容极密,我们把它拆成三章: 本章管「信号往前怎么走」,第 08 章管「误差往回怎么传」,第 09 章管「怎么变成一个项目」。 那条数值走查横跨本章和第 08 章,是同一组数字的前半程和后半程。
  • 书没有解释为什么需要多层。 它讲了感知器(第 4 章)也讲了低谷(第 1 章), 但没有把「单层解不了异或」这件事说出来 —— 我们从书架上补了。
  • 书没有点名通用逼近定理,尽管它自己的参考文献里就有那篇。 更要紧的是它没有讲这条定理的边界(能表示 ≠ 能学到),我们补了。
  • 激活函数的完整清单在书里是一张图片。 正文只讲了 sigmoid、tanh、ReLU、 Leaky-ReLU、ELU、Softmax 这几个名字和它们的关系,公式本体我们引不到。
  • 书没有讲权重的初值从哪儿来。 那条走查的十个初值是「假定」的; 真实训练里初值怎么定(以及为什么不能全设成 0)一个字没提。
  • 书没有讲一层该放多少个神经元。 这是实践中最常被问的问题之一。

11. 可带走的

全章主走查一行写完:

i₁ = 0.02、i₂ = 0.7 进来 → net_h1 = 0.1×0.02 + 0.2×0.7 + 0.3 = 0.442 → 过 sigmoid → out_h1 = 0.60874;net_h2 = 0.586 → out_h2 = 0.64245

→ net_o1 = 0.2×0.60874 + 0.3×0.64245 + 0.2 = 0.51448 → out_o1 = 0.62586; net_o2 = 0.38936 → out_o2 = 0.59613 → 输出 [0.62586, 0.59613],期望是 [0, 1],差得很远。

两端的数是书给的,中间值是我们算的,算完对得上。

  1. 一个神经元只画得出一条直线,遇到「异或」那种题就永远做不对;
  2. 1969 年那本书证明的是「单层」学不会异或,不是「神经网络不行」 —— 引用这段历史要精确到这两个词;
  3. 「全连接」是字面意思: 相邻两层之间的连线一根不缺;
  4. 「深度」指层数多(以及能学到更深层次的特征);早期常见 3—5 层,后来十几到上百层;
  5. 隐藏层不是越多越好 —— 过多会过拟合,也就是把训练数据背下来、换新数据就掉;
  6. 多层能拼出复杂函数是有定理支撑的(通用逼近定理), 但那条定理只保证「表示得出来」,不保证「学得到」;
  7. 前向传播就是:每层做「乘权重、加起来、加偏置」,再过一道激活函数,一路传到输出;
  8. 不插激活函数,一百层等于一层 —— 本章把这个退化当场算了出来: 那个两层网络等价于一个「权重 (0.11, 0.16)、偏置 0.35」的单神经元;
  9. 激活函数的全部职责就是「掰弯」,所以它必须是非线性的;
  10. sigmoid 两头趴平 ⇒ 梯度往回传几层就没了(梯度消失); ReLU 正半轴斜率恒为 1 所以不衰减,代价是负半轴会「死」; Leaky-ReLU 和 ELU 就是来救这一条的;
  11. Softmax 把一串数压成加起来等于 1 的一组份额,用在分类的最后一层。

12. 原文地图

主题原书章原文位置
多层感知机 = 全连接神经网络;三种层第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:49(搜「多层感知机」)
「全连接」的定义;参数很多、模型复杂第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:63(搜「都与上下层节点全部连接」)
「深度」的两个含义;浅层 3—5 层、深层十几到上百层第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:59(搜「网络层数深」)
过多的隐藏层会导致过拟合第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:63(搜「过多的隐藏层会导致过拟合」)
「用简单函数组合出复杂函数有理论支撑」;神经元与感知器的区别第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:53(搜「泰勒展开」) · text/09-ch08.txt:53(搜「感知器的激活函数是阶跃函数」)
前向传播的定义:信息只朝一个方向走第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:69(搜「没有循环或者回路」)
训练分前向、反向两个过程第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:65(搜「前向传播、反向传播两个过程」)
整个网络可以抽象为一个函数;参数学习要做的事第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:75(搜「抽象为一个函数」) · text/09-ch08.txt:77(搜「不断学习调整权重和偏置」)
走查用的网络结构与十个初值第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:175(搜「8条连接线」) · text/09-ch08.txt:183(搜「本实例中输入信息」)
第一轮输出 [0.62586,0.59613]第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:203(搜「0.62586」)
净活值的写法第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:193(搜「净活值为neth1」)
没有激活函数则输出是输入的线性组合第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:81(搜「都是输入的线性组合」)
sigmoid / tanh 的饱和性与梯度消失;ReLU 的作用与死区;Leaky-ReLU 与 ELU第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:83(搜「饱和性」) · text/09-ch08.txt:83(搜「不再对任何数据有所响应」)
Softmax 归一化为概率分布;常与交叉熵配对第8章 深度学习基础及车辆识别项目实践text/09-ch08.txt:89(搜「归一化为一个概率分布向量」) · text/09-ch08.txt:89(搜「交叉熵损失函数一起结合使用」)
通用逼近定理那篇文献(书自己列了,正文没接上)参考文献text/13-fm.txt:33(搜「Approximation by superpositions」)

Footnotes

  1. 补充(不在书里,依据我们自己的书架):1969 年明斯基与佩珀特出版《感知机》,其打击点正是异或问题 —— 平面上四个点,一条直线无法把「同色」和「异色」分开;这本书的实际后果是政府资金转向别处。依据: shelf=ai-book-reference/genius-makers#02-winter-and-backprop.md 事实=该章写明「明斯基的书证明的是『单层网络学不会异或』,而不是『神经网络不行』」,并记述了随后的资金撤离与第一次寒冬。

  2. 出处:「第8章 深度学习基础及车辆识别项目实践」第 49 段(text/09-ch08.txt:49,搜「多层感知机」)。原文:把多个单层感知机纵向、横向组合叠加,就形成了多层感知机,或者说全连接神经网络。

  3. 出处:「第8章 深度学习基础及车辆识别项目实践」第 49 段(text/09-ch08.txt:49,搜「输入层、隐藏层和输出层」)。

  4. 出处:「第8章 深度学习基础及车辆识别项目实践」第 63 段(text/09-ch08.txt:63,搜「都与上下层节点全部连接」)。原文:「除输入层和输出层之外,每一层的每一个节点都与上下层节点全部连接,这就是『全连接』的由来。」

  5. 出处:「第8章 深度学习基础及车辆识别项目实践」第 63 段(text/09-ch08.txt:63,搜「参数很多」)。

  6. 出处:「第8章 深度学习基础及车辆识别项目实践」第 59 段(text/09-ch08.txt:59,搜「网络层数深」)。原文同段给出了浅层 3~5 个隐藏层、深层十几层到上百层这两个量级。

  7. 出处:「第8章 深度学习基础及车辆识别项目实践」第 63 段(text/09-ch08.txt:63,搜「过多的隐藏层会导致过拟合」)。「过拟合」这个词书在这里第一次用,但没有当场解释,我们补了一段;「参数越多越容易过拟合」的机制说明是通用知识,不在书里。

  8. 出处:「第8章 深度学习基础及车辆识别项目实践」第 53 段(text/09-ch08.txt:53,搜「泰勒展开」)。

  9. 出处:「参考文献」(text/13-fm.txt:33,搜「Approximation by superpositions」)。书末参考文献 [15] 是 CYBENKO G.《Approximation by superpositions of a sigmoidal function》,发表于 Mathematics of Control Signals and Systems 1989 年第 2 卷第 4 期。这篇文献在书里,但正文那句「有理论支撑」没有引它。

  10. 补充(不在书里,依据我们自己的书架):依据: shelf=ai-book-reference/dive-into-deep-learning#06-mlp.md 事实=该章在「万能逼近:能表示 ≠ 能学到」一节写明,只要隐藏层足够宽,单隐层网络能表示任何函数(Cybenko 1989 等),但「能表示」是表达力问题、「能学到」是优化与泛化问题,两回事。

  11. 出处:「第8章 深度学习基础及车辆识别项目实践」第 53 段(text/09-ch08.txt:53,搜「感知器的激活函数是阶跃函数」)。

  12. 出处:「第8章 深度学习基础及车辆识别项目实践」第 69 段(text/09-ch08.txt:69,搜「没有循环或者回路」)。走查的结构与初值见第 175 段(text/09-ch08.txt:175,搜「8条连接线」)与第 183 段(text/09-ch08.txt:183,搜「本实例中输入信息」);第一轮输出见第 203 段(text/09-ch08.txt:203,搜「0.62586」)。清洗文本里下标掉成了独立的行(如 text/09-ch08.txt:185,搜「12121234567812」),那是排版残留;各参数的对应关系可以从正文文字推回来,我们据此重算,结果与书给的输出完全一致。

  13. 出处:「第8章 深度学习基础及车辆识别项目实践」第 75 段(text/09-ch08.txt:75,搜「抽象为一个函数」)与第 77 段(text/09-ch08.txt:77,搜「不断学习调整权重和偏置」)。

  14. 出处:「第8章 深度学习基础及车辆识别项目实践」第 81 段(text/09-ch08.txt:81,搜「都是输入的线性组合」)。本节把 sigmoid 换成恒等函数之后的那段合并推导是我们做的,书只给了结论。

  15. 出处:「第8章 深度学习基础及车辆识别项目实践」第 81 段(text/09-ch08.txt:81,搜「几乎可以逼近任意函数」)。

  16. 出处:「第8章 深度学习基础及车辆识别项目实践」第 83 段(text/09-ch08.txt:83,搜「饱和性」)。补充(不在书里,来自通用知识):sigmoid 的导数最大值是 0.25(在输入为 0 处取到),本节那串连乘是按这个最大值算的上界。

  17. 出处:「第8章 深度学习基础及车辆识别项目实践」第 83 段(text/09-ch08.txt:83,搜「大多数前馈神经网络默认使用」)。ReLU 的定义(f(x)=max(0,x))书在第 2 章就给了,见「第2章 Python基本语法元素及数据类型」第 33 段(text/03-ch02-2-python.txt:33,搜「Rectified Linear Unit」)——第 02 章 §4 留的名,到这里回收。

  18. 出处:「第8章 深度学习基础及车辆识别项目实践」第 83 段(text/09-ch08.txt:83,搜「不再对任何数据有所响应」)。

  19. 出处:「第8章 深度学习基础及车辆识别项目实践」第 83 段(text/09-ch08.txt:83,搜「Leaky-ReLU」)。这两个改进版的具体形状在书里是表格图片,正文只给了名字;Leaky-ReLU「用一个非零固定斜率保留部分负值」的说法见「第10章 智能车自动巡航算法设计及部署」第 207 段(text/11-ch10.txt:207,搜「有选择地保留部分负值」)。

  20. 出处:「第8章 深度学习基础及车辆识别项目实践」第 89 段(text/09-ch08.txt:89,搜「归一化为一个概率分布向量」)。原文:Softmax 可以把一个数值向量归一化为一个概率分布向量,各个概率之和为 1,用作神经网络的最后一层解决多分类问题。本节那三个数是我们按标准公式算的,书没有给具体数值。

  21. 出处:「第8章 深度学习基础及车辆识别项目实践」第 89 段(text/09-ch08.txt:89,搜「交叉熵损失函数一起结合使用」)。