← 全部章节

P02 · 第 2 讲

深度学习基本概念简介

58:35

本章目录(9 节)
  1. 一、本节的问题与直观理解
  2. 二、核心知识:参数向量、batch、ReLU、深度
  3. 三、关键推导一:把维度从头数一遍
  4. 四、关键推导二:线性层叠还是线性(复习补充)
  5. 五、原讲义例子:三张表说明什么
  6. 六、易错点
  7. 七、自测
  8. 八、30 秒速记
  9. 九、和其他 P 的关系
项 内容
课程版本 李宏毅《機器學習 2021 Spring》第 1 讲下半:預測本頻道觀看人數(下)
视频分 P https://www.bilibili.com/video/BV1ou411N7X3?p=2 (58:35;搬运合集)
官方讲义 regression (v16).pdf,61 页(与 P1 同一份)
材料说明 对应官方讲义整理+必要补充,非视频逐字稿

页码为 PDF 物理页(封面第 1 页)。P1 已讲完「线性模型 → 损失 → 梯度下降 → sigmoid 叠加」,本文从「把参数收进一个向量」开始,讲到 ReLU、多层堆叠与过拟合;两篇按讲义主题切分,不重复推导同一件事。

一、本节的问题与直观理解

P1 结束时模型已经变成

$$y=b+\sum_{i=1}^{K}c_i\,\sigma\!\left(b_i+\sum_{j=1}^{D}w_{ij}x_j\right),$$

它有无穷多个候选函数(\(K\)、\(D\) 一定时,参数连续取值)。P2 要回答的是两个问题:这么多参数怎么一起更新?把同样的结构叠很多层会怎样?

直观理解分两层。第一层是工程上的:参数从几个变成几万个之后,不能再对每个参数单独写更新式,得把 \(W,\mathbf{b},\mathbf{c}\) 摊平成一个长向量 \(\boldsymbol{\theta}\),梯度也摊平成同样长的向量,一次更新全部。第二层是概念上的:一层 sigmoid 已经在做「把输入空间切成若干段、每段给一个高度」,多层则是「上一层的输出当作下一层的输入」,于是第二层切的不再是原始特征,而是第一层加工出来的特征。讲义第 55 页把这叫 hidden layer,并说「很多层 = deep」,深度学习这个名字就是这么来的——它描述的是层数,不是参数量。

二、核心知识:参数向量、batch、ReLU、深度

参数向量与更新。 第 38 页把 \(W\) 的每一行、\(\mathbf{b}\)、\(\mathbf{c}\) 全部排进

$$\boldsymbol{\theta}=\begin{bmatrix}\theta_1\\ \theta_2\\ \vdots\end{bmatrix},\qquad \boldsymbol{\theta}^{t+1}\leftarrow\boldsymbol{\theta}^{t}-\eta\,\mathbf{g}^{t},\qquad \mathbf{g}^{t}=\nabla L(\boldsymbol{\theta}^{t}).$$

\(\boldsymbol{\theta}\) 与 \(\mathbf{g}\) 必须同维;维数就是全部可学参数的个数。第 42–43 页强调:梯度是对当前参数算的,更新完要重算,不能拿旧梯度连走两步。

batch 与 epoch。 第 44 页把 \(N\) 个样本切成若干个 batch,每个 batch 算一次损失 \(L^1,L^2,\dots\) 并更新一次;「把所有 batch 看完一遍」叫一个 epoch。第 45 页给了两个算术例:\(N=10000\)、\(B=10\) 时一个 epoch 更新 \(10000/10=1000\) 次;\(N=1000\)、\(B=100\) 时更新 \(1000/100=10\) 次。所以 epoch 是数据遍数,iteration 是更新次数,二者只在 \(B=N\) 时相等。

ReLU 替换 sigmoid。 第 47–48 页把平滑的 S 形换成折线

$$\mathrm{ReLU}(z)=\max(0,z),\qquad y=b+\sum_{2i}c_i\max\!\left(0,\,b_i+\sum_j w_{ij}x_j\right).$$

下标写成 \(2i\) 不是笔误:一个 hard sigmoid 是「先上升、到顶后持平」,需要两个 ReLU 相减才能拼出来,所以 \(K\) 个折线要 \(2K\) 个 ReLU。第 48 页只问 “Which one is better?”,没有给理论答案,第 49 页直接上实验。

多层。 第 51 页把一层的输出接到下一层:

$$\mathbf{a}=\sigma(W\mathbf{x}+\mathbf{b}),\qquad \mathbf{a}'=\sigma(W'\mathbf{a}+\mathbf{b}'),\qquad y=\dots$$

第 52 页的实验设定是:输入为过去 56 天的观看次数,每层 100 个 ReLU,比较 1–4 层。第 55–57 页给出「deep = many hidden layers」以及 AlexNet(8 层,16.4%)、VGG(19 层,7.3%)、GoogleNet(22 层,6.7%)、ResNet(152 层,3.57%)的 ImageNet 错误率,并在第 57 页追问 “Why we want ‘Deep’ network, not ‘Fat’ network?”——这个问题本讲没有回答。

三、关键推导一:把维度从头数一遍

用第 52 页的设定:输入 56 维,三个隐藏层各 100 个 ReLU,输出 1 维。记 \(\mathbf{x}\in\mathbb{R}^{56}\),则

$$ \begin{aligned} \mathbf{z}^{1}&=W^{1}\mathbf{x}+\mathbf{b}^{1}, & W^{1}&\in\mathbb{R}^{100\times 56},\ \mathbf{b}^{1}\in\mathbb{R}^{100},\\ \mathbf{a}^{1}&=\max(0,\mathbf{z}^{1})\in\mathbb{R}^{100}, & &\\ \mathbf{z}^{2}&=W^{2}\mathbf{a}^{1}+\mathbf{b}^{2}, & W^{2}&\in\mathbb{R}^{100\times 100},\\ \mathbf{a}^{2}&=\max(0,\mathbf{z}^{2})\in\mathbb{R}^{100}, & &\\ \mathbf{z}^{3}&=W^{3}\mathbf{a}^{2}+\mathbf{b}^{3}, & W^{3}&\in\mathbb{R}^{100\times 100},\\ y&=\mathbf{w}^{4\top}\mathbf{a}^{3}+b^{4}, & \mathbf{w}^{4}&\in\mathbb{R}^{100}. \end{aligned} $$

参数个数逐层算是 \(100\times56+100=5700\)、\(100\times100+100=10100\)(两层)、\(100\times1+1=101\),合计 \(5700+10100+10100+101=26001\)。规则只有一条:第 \(l\) 层权重的形状是「本层神经元数 × 上层神经元数」,偏置长度等于本层神经元数。

批量版更容易错。若一个 batch 有 \(B\) 个样本,把输入写成 \(X\in\mathbb{R}^{B\times 56}\)(每行一个样本),则

$$Z^{1}=XW^{1\top}+\mathbf{1}_B\mathbf{b}^{1\top}\in\mathbb{R}^{B\times100},$$

偏置要靠广播加到每一行。很多人手写时把 \(XW^{1}\) 写成 \(W^{1}X\),维度立刻对不上——矩阵乘法不交换,形状就是最便宜的检查器。

四、关键推导二:线性层叠还是线性(复习补充)

这是本节最值得亲手验证的一句话。设两层都没有激活函数:

$$\mathbf{h}=W_1\mathbf{x}+\mathbf{b}_1,\qquad \mathbf{y}=W_2\mathbf{h}+\mathbf{b}_2.$$

代入得

$$\mathbf{y}=W_2(W_1\mathbf{x}+\mathbf{b}_1)+\mathbf{b}_2 =\underbrace{(W_2W_1)}_{W_{\text{eff}}}\mathbf{x}+\underbrace{(W_2\mathbf{b}_1+\mathbf{b}_2)}_{\mathbf{b}_{\text{eff}}}.$$

两个线性层严格等于一个线性层,层数没有增加任何表达能力。数值验证(复习补充,自编权重):取 \(W_1\in\mathbb{R}^{4\times3}\)、\(W_2\in\mathbb{R}^{1\times4}\)、5 个随机输入,分别算「两层串联」与「等效单层」,最大绝对差 \(6.66\times10^{-16}\),就是浮点舍入。参数却从 \(4\times3+4+1\times4+1=21\) 个变成等效的 \(1\times3+1=4\) 个——多出来的 17 个参数没有换来任何新函数。

反过来,只要中间夹一个非线性,等式立刻失效:\(\max(0,\cdot)\) 或 sigmoid 都不能被矩阵吸收。所以「深度有用」的前提是每层之间有非线性;把激活函数去掉做消融,网络会退化成线性回归,这是调试时常见的低级错误。

五、原讲义例子:三张表说明什么

激活函数(第 49 页)。 训练/测试损失:linear \(0.32/0.46\),10 个 ReLU \(0.32/0.45\),100 个 ReLU \(0.28/0.43\),1000 个 ReLU \(0.27/0.43\)(单位 k)。从线性换到 10 个 ReLU,训练损失几乎没动——参数明明变多了,拟合却没变好,说明光有非线性与少量神经元不一定有用;加到 100 个才明显下降,再往上收益递减。

层数(第 52 页)。 1 层 \(0.28/0.43\)、2 层 \(0.18/0.39\)、3 层 \(0.14/0.38\)、4 层 \(0.10/0.44\)。训练损失一路降到 0.10,测试损失却在第 4 层反弹到 0.44。第 59 页把这件事命名为 overfitting:训练集上更好,没看过的数据上更差。第 60 页说「要预测今天的人数该选哪个模型」,并把模型选择留到下一讲——这句话很关键,它承认「看测试集挑模型」本身是不合法的,正确做法是再切一份验证集。

深度(第 56–57 页)。 8 层 16.4%、19 层 7.3%、22 层 6.7%、152 层 3.57%,趋势是越深越准,但 ResNet 那一行还标了 “Special structure”——不是把层数堆上去就自动变好,残差连接是额外设计。讲义没有解释这个结构,本笔记也不展开。

六、易错点

  1. 线性层叠仍线性。 见上节推导;判断一个网络是否真的「深」,看层间有没有非线性,而不是数 Linear 的个数。
  2. 训练损失下降不等于模型变好。 第 52 页 4 层模型训练最好、测试最差;调模型复杂度时,眼睛要盯验证集。
  3. epoch 与 iteration 混用。 一个 epoch 的更新次数是 \(\lceil N/B\rceil\),不是 1;说「训练了 100 步」和「训练了 100 轮」差一个 \(N/B\) 的因子。
  4. ReLU 的下标 \(2i\)。 一个折线要两个 ReLU 拼,写模型或数参数时漏掉一半,参数量会算错一倍。
  5. sigmoid 与 ReLU 不是「新旧替代」的简单关系。 第 47–48 页只做了替换并给了实验数字;ReLU 的梯度在正区间恒为 1,缓解了 sigmoid 两端饱和导致的梯度消失,但在 \(z<0\) 时梯度为 0,神经元可能「死掉」。
  6. 「深」不等于「胖」。 第 57 页的问题本讲未答,别把「深层更好」当成已证明的定理;后面的 CNN、ResNet 才逐步给出结构上的理由。

七、自测

Q1. 输入 56 维、两个隐藏层各 100 个 ReLU、输出 1 维,共有多少可学参数?

参考答案

第一层 \(100\times56+100=5700\),第二层 \(100\times100+100=10100\),输出层 \(1\times100+1=101\),合计 \(15901\)。若再加一层 100,则多 \(10100\),变成 \(26001\)(与正文三隐藏层的算法一致)。

Q2. 把两层 Linear 中间的 ReLU 删掉,模型表达能力会怎样变化?

参考答案

不变。两层线性复合仍是线性映射 \(W_2W_1\mathbf{x}+W_2\mathbf{b}_1+\mathbf{b}_2\),等价于一层;参数量变多但函数集合没变大,反而更难优化、更容易过拟合。

Q3. \(N=5000\)、batch size 为 50,训练 3 个 epoch 一共更新多少次?

参考答案

每个 epoch 更新 \(5000/50=100\) 次,3 个 epoch 共 300 次。注意这是「参数更新次数」,不是「看过的样本数」;看过的样本数是 \(3N=15000\)。

Q4. 第 52 页 4 层模型训练损失 0.10k 比 3 层的 0.14k 低,为什么反而说它不好?

参考答案

因为评价标准是没见过的数据。4 层测试损失 0.44k,比 3 层的 0.38k 差,训练集的优势没有迁移到测试集,属于过拟合;模型选择应看验证/测试表现,而不是训练损失。

八、30 秒速记

参数摊平成 \(\boldsymbol{\theta}\) → 梯度同维 → 每个 batch 更新一次、一个 epoch 看完所有 batch → ReLU \(=\max(0,z)\)、一个折线要两个 → 形状规则「本层神经元 × 上层神经元」→ 线性层叠仍线性(\(W_2W_1\) 可合并)→ 1/2/3/4 层测试 \(0.43/0.39/0.38/0.44\) → 第 4 层训练最好、测试最差 = 过拟合 → 模型选择要看验证集。

九、和其他 P 的关系

来源与说明

基于对应官方讲义整理,未取到完整视频字幕;不冒充逐字稿。