跳转至

深度学习期末复习 · 全 Wiki 合集

wiki/ 自动合并导出。公式 LaTeX、结构图 Mermaid;图片为相对路径(需与 wiki/ 同在根目录)。

目录

深度学习期末复习 Wiki

面向期末考试的复习资料。课本(李航《机器学习方法》)= 知识全集;本 Wiki 在此基础上, 结合课件、课堂录音(老师强调)、同学 LSQ 的思维导图、作业,把最可能考的内容梳理成 人话 + 公式 + 流程图,并标注每个知识点要掌握到什么程度。

实事求是说明:内容多的地方我尽量写全;个别太深或老师明确"了解即可"的,会写梗概并标注 > 🚧 此处需拓展, 提示你需要时再回课本/课件深挖。公式用 LaTeX、结构图用 Mermaid(GitHub / VS Code Markdown 预览可直接渲染), 少量必须的真实插图复制在各章 assets/ 下、相对引用,整个 wiki/ 可独立携带。

📌 考试信息(来自教材封面手写,已交叉核对)

  • 范围:第 7 章 SVM、第 23 章 前馈神经网络、第 24 章 CNN、第 25 章 RNN、第 26 章 序列到序列/Transformer、第 29.1 节 优化算法。
  • 题型(4 种):填空题、简答题、计算题、解答题。
  • 可带计算器
  • 优化器必须掌握:SGD(批量/随机)、动量 SGD、RMSProp、Adam;额外补充 AdaDelta、AdaGrad、AdamW。

🗺️ 先看这个

00-复习重点地图.md —— 各章重要度排序 + 每个知识点"要掌握到什么程度"(背/会写/会画/会算/了解),这是复习的总导航。

📚 章节目录(按重要度排序)

优先级 章节 一句话考点
🔴 高 01-前馈神经网络 会写网络数学模型+画图、4 种激活函数公式及导数、反向传播 3 式、实现 XOR
🔴 高 02-支持向量机 三类 SVM 的模型与算法要背、对偶问题+KKT、软间隔、核函数
🟠 必考 04-优化算法 SGD/动量/RMSProp/Adam 等更新公式与区别(封面点名必考)
🟡 中 03-卷积神经网络 卷积/池化/输出尺寸计算题、CNN 定义公式要会写、三大性质
🟡 中 06-序列到序列与Transformer 注意力公式、Transformer 七大技术、多头注意力、图 26.7
🟢 基础 05-循环神经网络 5 种 RNN 架构要会画、LSTM/GRU 门控、梯度消失
✏️ 练习 07-练习题 作业原题 + 详解:NN 前向反向、CNN 卷积/池化、SVM 核+对偶(计算题主力)

图例约定

  • > 🎯 考点 :期末很可能考、要重点准备的。
  • > ✍️ 要求:到底要掌握到什么程度(背 / 会写 / 会画 / 会算 / 了解)。
  • > 🚧 此处需拓展:我只写了梗概,需要时回课本/课件深挖。
  • > ⚠️ 坑:易错点、老师特别提醒处。

00 · 复习重点地图(总导航)

三路信号合一:课堂录音(老师讲了多久 + 强调原话)、同学 LSQ 思维导图(每个点要掌握到什么程度)、作业/课件/手写批注。 ⚠️ 考试范围内 6 块都要过,下面的"优先级"只代表该花多少力气。

一览表

优先级 章节 课堂讲解 必须达到的程度(综合 LSQ + 录音)
🔴 高 第23章 前馈神经网络 ~36 min(最多) 会写网络数学模型(线性变换用 \(z=W^{\mathsf T}x+b\)公式里偏置 \(+b\) 必写,不写扣分;图上画不画都行)并画图会写 4 种激活函数公式及导数会写反向传播 3 个核心式;实现 XOR(例 23.3);损失函数/学习的一般与具体形式
🔴 高 第7章 支持向量机 ~35 min 三类 SVM(硬间隔/软间隔/非线性)的模型与算法都要背;对偶问题数学模型 + KKT 条件;分离超平面与决策函数;例题 7.2 会算;软间隔注意五角星区别
🟠 必考 第29.1 优化算法 融入第23章讲 SGD/动量/RMSProp/Adam 等更新公式与区别(封面点名"必须掌握");BN、Dropout 等技巧
🟡 中 第24章 卷积神经网络 ~14 min 计算题:二维卷积、填充与步幅、输出矩阵尺寸、三维卷积、池化(最大/平均/求和);CNN 定义公式一定要会写;三大性质;反向传播=一次前向+一次反向;能说出常见模型名
🟡 中 第26章 序列到序列/Transformer ~5 min(强调密度高) 注意力机制公式;RNN Search(26.2.2 定义、图 26.5);Transformer 七大技术必须会、关注图 26.7 与多头注意力、模型特点
🟢 基础 第25章 循环神经网络 ~10 min 5 种架构要会画:SRNN(图25.1)、LSTM(定义25.2/图25.6)、GRU(定义25.3/图25.8)、深度RNN(图25.9)、双向RNN(图25.10);反向传播是核心算法;梯度消失/爆炸概念

按题型倒推怎么准备

  • 计算题(可带计算器):CNN 卷积/池化/输出尺寸(必出)、前馈网络前向+反向数值计算、SVM 对偶/核矩阵(例 7.2)。→ 见各章"计算"小节。
  • 解答/简答题:SVM 三类模型与算法推导、反向传播推导、激活函数及导数、正则化方法、Transformer 七大技术。
  • 画图题:前馈网络结构(偏置可画可不画,但数学模型公式里 \(+b\) 必写)、RNN 五种架构、计算图。
  • 填空题:定义、公式要素、各优化器特点、CNN 性质、常见模型名。

各章速记导航

来源说明:录音强调原话见 ../txt/voice/(带时间戳);LSQ 思维导图原始大纲见 ../txt/aligned/xmind_outline.md;量化重要度见 ../txt/复习重点地图.md

第 23 章 · 前馈神经网络(🔴 最高优先级)

课堂讲解最多(≈36 分钟)、强调最多、批注最多、作业最多。这是整门课的核心, 也是后面 CNN/RNN 的基础。

🎯 考点:本章几乎每种题型都会出——画图题(网络结构)、计算题(前向+反向)、 简答题(激活函数/正则化)、填空题(定义/公式要素)。

本章必须达到的程度(来自 LSQ 思维导图 + 老师录音)

知识点 要求 对应小节
网络数学模型 + 画图 会写、会画(公式 \(z=W^{\mathsf T}x+b\)偏置 \(+b\) 必写,不写扣分;图上偏置可画可不画) 01-神经元与网络结构
4 种激活函数 会写公式及其导数 02-激活函数
实现 XOR(例 23.3) 会写 01-神经元与网络结构
学习算法(损失/一般与具体形式) 会写数学形式 03-学习算法与反向传播
反向传播 3 个核心式 会写、会推 03-学习算法与反向传播
计算图 会画(⚠️ 书 图23.22–23.24 反向箭头印错了,应逆向) 03-学习算法与反向传播
优化算法 掌握数学形式/概念(详见 第29.1 优化算法 03
实现技巧 / 正则化 了解概念(能简答) 04-正则化与训练技巧

✍️ 老师原话(录音):「神经网络首先第一个要掌握什么叫神经元」「这本书画前馈神经网络的时候都会把偏置画上去……这是要掌握的」「导数长啥样很重要,因为后面要用导」「这 3 个式子是需要掌握的」。

一句话总览

前馈神经网络 = 多层神经元的复合非线性函数。给定输入向量 → 逐层「线性变换 + 非线性激活」→ 输出。 学习 = 用反向传播算出损失对所有参数(\(W,b\))的梯度,再用梯度下降更新。

flowchart LR
    X["输入向量 x"] --> Z1["z⁽¹⁾ = W⁽¹⁾ᵀx + b⁽¹⁾"]
    Z1 --> H1["h⁽¹⁾ = a(z⁽¹⁾)\n隐层"]
    H1 --> Z2["z⁽²⁾ = W⁽²⁾ᵀh⁽¹⁾ + b⁽²⁾"]
    Z2 --> Y["y = g(z⁽²⁾)\n输出"]

子页: 1. 神经元与网络结构 2. 激活函数(4 种 + 输出层 softmax) 3. 学习算法与反向传播 4. 正则化与训练技巧

📷 课件原图参考

来自课程 PPT(4 合 1 讲义版),对照本章公式/结构图看老师的原图。

神经元定义与网络结构:

神经元定义与结构

四种激活函数(Sigmoid/Tanh/ReLU):

激活函数

01 · 神经元与网络结构

✍️ 要求:网络数学模型会写(线性变换 \(z=W^{\mathsf T}x+b\)公式里偏置 \(+b\) 必写,不写扣分;图上偏置画不画都行)、结构会画、能实现 XOR。

1. 神经元(Neuron)

神经元是神经网络的基本单元:以实数向量为输入、实数为输出的非线性函数

标量形式

\[y = f(x_1,\dots,x_n) = a\!\left(\sum_{i=1}^n w_i x_i + b\right) = a(z),\qquad z=\sum_{i=1}^n w_i x_i + b\]

向量形式(考试更常用,老师强调用转置):

\[y = f(\boldsymbol{x}) = a(\boldsymbol{w}^{\mathsf T}\boldsymbol{x} + b) = a(z),\qquad z=\boldsymbol{w}^{\mathsf T}\boldsymbol{x}+b\]
  • \(z\)仿射函数 / 净输入(线性变换部分);\(a(\cdot)\)激活函数(非线性部分)。
  • \(\boldsymbol{w}\) 一般写成列向量\(\boldsymbol{w}^{\mathsf T}\boldsymbol{x}\) 就是点积。
  • \(\boldsymbol{x}\) 的各分量是一个样本的属性(如身高、体重),不是多个样本。

⚠️ 坑:\(x_1,\dots,x_n\)一个样本\(n\) 个属性构成的向量,不是 \(n\) 个样本(老师说往年很多人搞错)。

flowchart LR
    x1((x₁)) -- w₁ --> S
    x2((x₂)) -- w₂ --> S
    xn((xₙ)) -- wₙ --> S
    b((+1)) -- b --> S
    S["Σ → z"] --> A["a(z)"] --> y((y))

2. 前馈神经网络

前馈神经网络:由多层神经元组成;层间全连接、层内不连接;前一层的输出是后一层的输入;信息单向前传(无环)。

  • 只能处理向量型输入。图像这类矩阵数据必须先展平成列向量才能喂进去(这正是 CNN 出现的动机之一)。

两层(双层)前馈神经网络

⚠️ 为什么叫"双层"?输入层一般不算一层,所以"输入层 + 隐层 + 输出层"算两层(= 隐层 + 输出层),也叫"单隐层"。

矩阵形式(要会写)

\[\boldsymbol{h}^{(1)} = f^{(1)}(\boldsymbol{x}) = a\!\left(\boldsymbol{W}^{(1)\mathsf T}\boldsymbol{x} + \boldsymbol{b}^{(1)}\right)\]
\[\boldsymbol{y} = f^{(2)}(\boldsymbol{h}^{(1)}) = g\!\left(\boldsymbol{W}^{(2)\mathsf T}\boldsymbol{h}^{(1)} + \boldsymbol{b}^{(2)}\right)\]

整体是复合函数 \(\boldsymbol{y}=f^{(2)}(f^{(1)}(\boldsymbol{x}))\)\(a(\cdot)\) 隐层激活,\(g(\cdot)\) 输出层激活。

flowchart LR
    subgraph 输入层["输入层 (不计层数)"]
      x1((x₁)); x2((x₂)); xn((xₙ))
    end
    subgraph 隐层["隐层 h⁽¹⁾"]
      h1((h₁)); h2((h₂)); hm((hₘ))
    end
    subgraph 输出层["输出层 y"]
      y1((y₁)); yl((y_l))
    end
    x1 --> h1 & h2 & hm
    x2 --> h1 & h2 & hm
    xn --> h1 & h2 & hm
    h1 --> y1 & yl
    h2 --> y1 & yl
    hm --> y1 & yl
    bias1((+1)) --> h1 & h2 & hm
    bias2((+1)) --> y1 & yl

🎯 偏置:数学模型/公式里必须写出偏置 \(+b\)\(z=W^{\mathsf T}x+b\),老师强调不写要扣分);结构图上偏置画不画都行(老师确认;课本习惯是把 +1 节点及其连接画上,照画更稳妥)。

多层(深度)前馈神经网络

定义:\(s\) 层(\(s\ge 2\)),第 1 到 \(s-1\) 层是隐层。第 \(t\) 层第 \(j\) 个神经元:

\[h_j^{(t)} = a\!\left(z_j^{(t)}\right) = a\!\left(\sum_{i=1}^n w_{ji}^{(t)}\, h_i^{(t-1)} + b_j^{(t)}\right),\qquad h_i^{(0)}=x_i\]

本质:深度学习 = 深度神经网络 = 具有深度结构的人工神经网络(本课定义)。前馈网络的本质是多次线性变换与非线性变换的组合

例:异或 (XOR) {#例-异或-xor}

✍️ 要求:会写实现 XOR 的网络(例 23.3)。XOR 线性不可分,单个神经元(感知机)做不到,必须用带隐层的网络。

XOR 真值表:\((0,0)\to0,\ (0,1)\to1,\ (1,0)\to1,\ (1,1)\to0\)

一种经典构造(隐层 2 个神经元,激活用阶跃/ReLU 思路):

  • 隐层:\(h_1=a(x_1+x_2-0.5)\)(相当于 OR),\(h_2=a(x_1+x_2-1.5)\)(相当于 AND)。
  • 输出:\(y=a(h_1 - h_2 - 0.5)\),即 OR 且非 AND = XOR。
flowchart LR
    x1((x₁)) --> h1 & h2
    x2((x₂)) --> h1 & h2
    h1["h₁ ≈ OR"] --> y
    h2["h₂ ≈ AND"] -- "−" --> y
    y["y = OR ∧ ¬AND = XOR"]

🚧 此处需拓展:例 23.3 在书 P382 附近还配了三维函数图形(用 Python 画),老师说"图别管,掌握数学表达式怎么写"即可。具体权重数值以课本例题为准。

📌 关联:前馈网络用于分类的输出层选择,见 02-激活函数

02 · 激活函数(4 种)+ 输出层

🎯 考点 / ✍️ 要求:会写公式,更要会写导数(老师:"导数长啥样很重要,因为后面要用导"——反向传播要用)。

激活函数给网络引入非线性。隐层常用以下几种(按发展顺序)。

1. 二值 / 阶跃激活函数

最早的激活,输出离散(如 \(\{+1,-1\}\)\(\{0,1\}\)):

\[a(z)=\begin{cases}1,& z\ge 0\\[2pt] 0,& z<0\end{cases}\]
  • 导数:除 \(z=0\) 外处处为 \(0\)(不可导/不利于梯度学习)→ 所以后续被连续激活取代。

2. S 型函数(Sigmoid / Logistic)

\[\sigma(z)=\frac{1}{1+e^{-z}}\in(0,1)\]

导数(要会写,形式很漂亮):

\[\sigma'(z)=\sigma(z)\bigl(1-\sigma(z)\bigr)\]
  • 输出可当概率(二分类输出层常用)。
  • ⚠️ 缺点:两端饱和(导数趋 0)→ 梯度消失;输出非零中心。

3. 双曲正切(tanh)

\[\tanh(z)=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}\in(-1,1)\]

导数

\[\tanh'(z)=1-\tanh^2(z)\]
  • 零中心,通常比 Sigmoid 好;但同样会饱和、梯度消失。

4. 整流线性单元(ReLU)

\[\mathrm{ReLU}(z)=\max(0,z)=\begin{cases}z,& z>0\\[2pt]0,& z\le 0\end{cases}\]

导数(分段、不连续):

\[\mathrm{ReLU}'(z)=\begin{cases}1,& z>0\\[2pt]0,& z<0\end{cases}\]
  • 优点:正区间不饱和、缓解梯度消失、计算快。缺点:负区间梯度为 0("死亡 ReLU")。

✍️ 小结记忆表(必背公式 + 导数):

函数 \(a(z)\) \(a'(z)\) 值域
Sigmoid \(\dfrac{1}{1+e^{-z}}\) \(\sigma(1-\sigma)\) \((0,1)\)
tanh \(\dfrac{e^z-e^{-z}}{e^z+e^{-z}}\) \(1-\tanh^2 z\) \((-1,1)\)
ReLU \(\max(0,z)\) \(\mathbb 1[z>0]\) \([0,\infty)\)
阶跃 \(\mathbb 1[z\ge0]\) \(0\)(a.e.) \(\{0,1\}\)

🚧 此处需拓展:若课件把"第 4 种"定为 LeakyReLU / Softplus 而非阶跃,公式为 \(\text{LeakyReLU}(z)=\max(\alpha z, z)\)\(\text{Softplus}(z)=\ln(1+e^z)\)(导数即 Sigmoid)。以课件 PPT 列出的 4 种为准

输出层与任务匹配 {#输出层与任务匹配}

输出层激活 \(g(\cdot)\)任务选(老师重点讲):

任务 输出层激活 损失函数
回归 线性 \(g(z)=z\) 平方误差
二分类 Sigmoid 二值交叉熵
多分类 Softmax 交叉熵
多标签分类 每个神经元各用 Sigmoid 二值交叉熵

Softmax(多分类输出,重点)

\(l\) 维实向量 \(\boldsymbol z\) 映射为概率向量 \(\boldsymbol p\)\(p_k\ge0,\ \sum_k p_k=1\)):

\[p_k=g(z_k)=\frac{e^{z_k}}{\sum_{i=1}^{l} e^{z_i}}\]
  • 名字来源:它是 \(\max\)光滑近似——若 \(z_k\gg z_j\),则 \(p_k\approx1\)、其余 \(\approx0\)
  • 预测时可省略 softmax,直接取净输入 \(z_k\) 最大的类别(结果等价,分母对各类是常数、指数单调递增)。\(z_k\) 又叫对数几率 (logit)

Softmax 的偏导(雅可比,书式 23.24)

\[\frac{\partial p_k}{\partial z_j}=\begin{cases}p_k(1-p_k),& j=k\\[4pt]-\,p_j p_k,& j\neq k\end{cases}\]

📌 这条导数在多分类反向传播里要用,见 03-学习算法与反向传播

03 · 学习算法与反向传播

🎯 考点(高频):反向传播 3 个核心式要会写会推;损失的一般形式与具体形式要会写;计算图会画。 老师:"这 3 个式子是需要掌握的"。

1. 学习的四要素

flowchart LR
    D["① 数据\n(x,y)"] --> M["② 模型\n前馈网络 f(x;θ)"]
    M --> C["③ 学习准则\n损失/目标函数"]
    C --> O["④ 优化算法\n(随机)梯度下降"]
    O -.更新 θ=(W,b).-> M

参数 \(\theta\) = 所有层的 \(\boldsymbol W\)\(\boldsymbol b\) 的集合。前提:网络结构(层数、每层神经元数、各层类型)已定。

2. 损失函数

一般形式(经验风险 + 正则项):

\[ \mathcal L(\theta)=\underbrace{\frac1N\sum_{i=1}^N \ell\bigl(f(\boldsymbol x_i;\theta),\,\boldsymbol y_i\bigr)}_{\text{empirical loss}}+\underbrace{\lambda\,R(\theta)}_{\text{regularizer}} \]

目标让预测 \(f\) 与真实 \(y\) 尽量接近;等价于极大似然 → 损失 = 负对数似然。

具体形式(按任务,要会写):

任务 单样本损失 \(\ell\)
回归 平方误差 \(\tfrac12\lVert f-\boldsymbol y\rVert^2\)
二分类 二值交叉熵 \(-\bigl[y\ln f+(1-y)\ln(1-f)\bigr]\)
多分类 交叉熵 \(-\sum_k y_k\ln p_k\)\(\boldsymbol y\) 为 one-hot)

⚠️ 二分类里 \(y\in\{0,1\}\),所以 \(y\)\(1-y\) 恰好"二选一"地激活两项;多分类用 one-hot 后同理只剩真实类那一项。

3. 前向传播(Forward)

按网络公式逐层算到输出(见 01):\(\boldsymbol z^{(t)}=\boldsymbol W^{(t)\mathsf T}\boldsymbol h^{(t-1)}+\boldsymbol b^{(t)}\)\(\boldsymbol h^{(t)}=a(\boldsymbol z^{(t)})\),最终得 \(\hat{\boldsymbol y}\) 与损失。

4. 反向传播(Backward)——核心 3 式 ⭐

定义误差项 \(\boldsymbol\delta^{(t)}=\dfrac{\partial \mathcal L}{\partial \boldsymbol z^{(t)}}\)(损失对第 \(t\)净输入的导数)。

① 输出层误差项(分类用 softmax+交叉熵、回归用平方误差时,形式都很简洁):

\[\boxed{\;\boldsymbol\delta^{(s)}=\hat{\boldsymbol y}-\boldsymbol y\;}\]

② 误差项逐层反向递推(当前层依赖后一层,所以是"反向"):

\[\boxed{\;\boldsymbol\delta^{(t)}=a'\!\bigl(\boldsymbol z^{(t)}\bigr)\odot\bigl(\boldsymbol W^{(t+1)}\boldsymbol\delta^{(t+1)}\bigr)\;}\]

\(\odot\) 为逐元素乘;这里要用到激活函数的导数 \(a'\)——所以前面才强调"导数很重要"。)

③ 损失对参数的梯度(拿到 \(\delta\) 就能求全部梯度):

\[\boxed{\;\frac{\partial \mathcal L}{\partial \boldsymbol W^{(t)}}=\boldsymbol\delta^{(t)}\,\bigl(\boldsymbol h^{(t-1)}\bigr)^{\mathsf T},\qquad \frac{\partial \mathcal L}{\partial \boldsymbol b^{(t)}}=\boldsymbol\delta^{(t)}\;}\]
flowchart RL
    L["损失 L"] --> ds["δ⁽ˢ⁾ = ŷ − y"]
    ds --> dh["δ⁽ᵗ⁾ = a'(z⁽ᵗ⁾) ⊙ (W⁽ᵗ⁺¹⁾δ⁽ᵗ⁺¹⁾)"]
    dh --> g["∂L/∂W⁽ᵗ⁾ = δ⁽ᵗ⁾(h⁽ᵗ⁻¹⁾)ᵀ\n∂L/∂b⁽ᵗ⁾ = δ⁽ᵗ⁾"]

✍️ 记忆口诀:输出层 δ = 预测 − 真实;往前传一层乘激活导数和权重;参数梯度 = δ × 前一层输出

5. 计算图 {#计算图}

计算图把复合函数拆成节点,每个节点都有正向(左→右求值)和反向(右→左传梯度)两步。

  • 乘法节点 \(f=x\cdot y\):反向时 \(\partial f/\partial x=y\)\(\partial f/\partial y=x\)(梯度互换乘上游)。
  • 加法节点 \(f=x+y\):反向时梯度原样分发给两路。
flowchart LR
    subgraph 正向["正向传播 →"]
      a1["x, y"] --> m1["× / +"] --> o1["输出"]
    end
    subgraph 反向["反向传播 ←"]
      o2["上游梯度"] --> m2["按节点规则回传"] --> a2["∂L/∂x, ∂L/∂y"]
    end

⚠️ 坑(老师 & LSQ 都点了):课本 图 23.22–23.24 里反向传播的箭头方向印错了,反向传播应当是从右往左(逆向)。考试若画计算图,反向箭头记得画成逆向。

6. 优化:梯度下降 → 小批量 SGD

参数更新(沿负梯度):

\[\theta \leftarrow \theta-\eta\,\nabla_\theta \mathcal L,\qquad \eta:\ \text{learning rate}\]
  • 批量梯度下降 (GD):每步用全部 \(N\) 个样本——精确但样本量大时内存爆炸
  • 小批量随机梯度下降 (mini-batch SGD):先打乱,分成 \(M\) 组、每组 \(n\) 个(\(N=M\times n\)),每步只用一个小批量 (batch)。公式同上,只是把 \(N\) 换成 \(n\)。这是深度学习实际用的。

神经网络损失对参数是高度非凸优化问题(老师强调)。更细的优化器(动量/RMSProp/Adam)见 第29.1 优化算法

📌 反向传播整体 = 一次正向传播 + 一次(误差/梯度的)反向传播。这是所有深度学习模型(含 CNN/RNN)通用的学习骨架。

04 · 正则化与训练技巧

✍️ 要求:了解概念、能简答(老师列为"通过 ppt 了解")。常作简答/填空题。

训练深网会遇到三类问题:梯度消失/爆炸内部协变量偏移过拟合。对应三组技巧。

1. 梯度消失与梯度爆炸

反向传播中梯度逐层连乘:若每层因子普遍 \(<1\) → 越传越小(消失);普遍 \(>1\) → 越传越大(爆炸)。

三种解决思路

flowchart TD
    P["梯度消失 / 爆炸"] --> A["① 恰当的随机参数初始化"]
    P --> B["② 选合适的激活函数\n(如 ReLU,正区间不饱和)"]
    P --> C["③ 特定网络结构\n(ResNet 残差连接)"]
  • ResNet 残差连接:让梯度有"高速通道"直接回传,有效防止梯度消失/爆炸(CNN/Transformer 都用)。

2. 内部协变量偏移(Internal Covariate Shift)

定义:训练时中间层参数不断变化 → 该层输入分布也跟着变,导致后层要反复适应、学习变慢。

两类归一化(本质不同,但都缓解此问题):

方法 归一化对象
批归一化 (BN) 对一个小批量在每个特征维上归一化
正则化 / 层归一化 单个样本/神经元层面约束

🚧 此处需拓展:BN 的具体算法(求批量均值方差 → 标准化 → 再加可学习的缩放 \(\gamma\) 与平移 \(\beta\))课本有完整流程,需要时回 ppt/课本看算法步骤。

3. 正则化(缓解过拟合)

目标:提高泛化能力(测试集上的表现)。常见 4 种

方法 做法 备注
L1 正则化 损失加 \(\lambda\lVert\theta\rVert_1\) 产生稀疏
L2 正则化 / 权重衰减 损失加 \(\lambda\lVert\theta\rVert_2^2\) 两者近似等价
Dropout 每次迭代随机冻结一部分神经元不参与训练 等价于训练许多"退化子网络"
早停 (Early Stopping) 训练误差一直降,但测试误差先降后升;在测试效果最好处停 见下图
flowchart LR
    subgraph 误差随迭代
      direction TB
      tr["训练误差: 一直下降 ↓"]
      te["测试误差: 先降后升 ∨ → 在最低点早停"]
    end
\[\mathcal L_{\mathrm{reg}}(\theta)=\mathcal L(\theta)+\lambda R(\theta),\quad R(\theta)=\lVert\theta\rVert_1\ (\text{L1})\ \text{or}\ \lVert\theta\rVert_2^2\ (\text{L2})\]

本章一句话回顾

网络数学模型与画图(含偏置)→ 4 种激活函数公式及导数 → 损失(一般式+具体式)→ 反向传播 3 式 → 优化(mini-batch SGD)→ 训练技巧(梯度问题/BN/正则化)。这条主线贯穿全章,也是 CNN/RNN 的基础。

第 7 章 · 支持向量机 SVM(🔴 最高优先级)

课堂讲解 ≈35 分钟(最多之一),第三节课又重讲了 20 分钟。数学模型老师说"背也得背下来"

🎯 考点:解答/计算题主力——三类 SVM 的模型与算法推导、对偶问题、KKT、核矩阵计算(例 7.2)。 ✍️ LSQ 原话:"他说数学模型背也得背下来";软间隔处"特别注意我打五角星的区别";"三类可分要记一下,他复习完还提问"。

本章要求(LSQ + 录音)

知识点 要求 小节
基本概念、三类 SVM 要记(按训练数据类型分 3 类) 01-基本概念与三类SVM
函数间隔 / 几何间隔 了解概念 02-间隔与硬间隔SVM
间隔最大化、支持向量定义 会写、会推 02-间隔与硬间隔SVM
对偶问题数学模型 + KKT 条件 要背、会推 03-对偶问题与KKT
分离超平面 / 决策函数 会写 03-对偶问题与KKT
例题 7.2 会算 03-对偶问题与KKT
软间隔(⚠️ 五角星区别) 会写模型与算法 04-软间隔与核函数
合页损失、核函数 了解概念 04-软间隔与核函数

ppt 明确要求掌握:① 硬间隔线性可分 SVM 的模型、算法;② 软间隔线性 SVM 的模型、算法;③ 非线性 SVM 的模型、算法(基于变换的 SVM 与基于核的 SVM)。

一图总览:三类 SVM 怎么来的

flowchart TD
    D{训练数据可分性?} -->|线性可分| A["硬间隔最大化\n→ 线性可分SVM\n(硬间隔SVM)"]
    D -->|近似线性可分| B["软间隔最大化(加松弛ξ)\n→ 线性SVM\n(软间隔SVM)"]
    D -->|线性不可分| C["核技巧 + 软间隔\n→ 非线性SVM"]

核心思想一句话:找一个分离超平面,使两类样本的间隔最大。间隔最大 → 解唯一(感知机解不唯一)。

子页: 1. 基本概念与三类 SVM 2. 间隔与硬间隔 SVM 3. 对偶问题与 KKT(核心) 4. 软间隔与核函数

📷 课件原图参考

来自课程 PPT(4 合 1 讲义版)。

硬间隔 / 几何间隔:

硬间隔与几何间隔

对偶问题与支持向量:

对偶问题与支持向量

01 · 基本概念与三类 SVM

✍️ 要求:三类要记(老师复习完当场提问过)。

1. SVM 是什么

  • 支持向量机 (SVM):一种二分类模型(可通过"一对一/一对多"转化为多分类——本质仍是多个二分类)。
  • 核心思想:通过最大化类别间的间隔来寻找最优分离超平面,把不同类别的数据分开。
  • 学习策略 = 间隔最大化,可形式化为凸二次规划问题,也等价于正则化的合页损失最小化

2. 三类 SVM(按训练数据类型)

数据情况 学习方法 得到的模型 别名
线性可分 硬间隔最大化 线性可分 SVM 硬间隔 SVM
近似线性可分 软间隔最大化(引入松弛变量 \(\xi\) 线性 SVM 软间隔 SVM
线性不可分 核技巧 + 软间隔最大化 非线性 SVM (核方法)

简单模型是复杂模型的基础与特例:硬间隔 ⊂ 软间隔 ⊂ 非线性。

flowchart LR
    s1["线性可分\n硬间隔SVM"] --> s2["近似线性可分\n软间隔SVM\n(+松弛ξ)"] --> s3["线性不可分\n非线性SVM\n(+核技巧)"]

3. 分离超平面与决策函数

分离超平面:

\[\boldsymbol w\cdot\boldsymbol x + b = 0\]

由法向量 \(\boldsymbol w\)(决定方向)和截距 \(b\) 决定。法向量指向的一侧为正类。

分类决策函数:

\[f(\boldsymbol x)=\operatorname{sign}(\boldsymbol w\cdot\boldsymbol x + b)\]

数据线性可分时,能正确分开的超平面有无穷多个;感知机用"误分类最小"求得的解不唯一。 而 SVM 用间隔最大化求最优超平面,解唯一 —— 这是 SVM 区别于感知机的关键。

4. 输入空间 → 特征空间

  • 线性(可分/不可分)SVM:假设输入空间与特征空间元素一一对应,把输入直接映射为特征向量。
  • 非线性 SVM:用一个非线性映射 \(\phi\) 把输入映到(更高维的)特征空间,再在特征空间里做线性 SVM。
  • SVM 的学习都是在特征空间进行的。

📌 下一步:怎么定义"间隔"、怎么把"间隔最大"写成优化问题 → 02-间隔与硬间隔SVM

02 · 间隔与硬间隔 SVM

✍️ 要求:函数/几何间隔了解;间隔最大化模型会写、支持向量定义要会

1. 函数间隔 vs 几何间隔

对样本 \((\boldsymbol x_i,y_i)\)、超平面 \((\boldsymbol w,b)\)

函数间隔(表示分类的正确性与确信度):

\[\hat\gamma_i = y_i(\boldsymbol w\cdot\boldsymbol x_i + b)\]

数据集的函数间隔取所有样本的最小值:\(\hat\gamma=\min_i\hat\gamma_i\)

⚠️ 坑:函数间隔有个问题——若把 \((\boldsymbol w,b)\) 同比例放大为 \((2\boldsymbol w,2b)\),超平面没变,函数间隔却翻倍。所以需要"几何间隔"。

几何间隔(对 \(\boldsymbol w\) 规范化,得到真实的点到超平面距离):

\[\gamma_i = \frac{y_i(\boldsymbol w\cdot\boldsymbol x_i + b)}{\lVert\boldsymbol w\rVert}=\frac{\hat\gamma_i}{\lVert\boldsymbol w\rVert}\]
  • 关系:\(\gamma=\dfrac{\hat\gamma}{\lVert\boldsymbol w\rVert}\)。当 \(\lVert\boldsymbol w\rVert=1\) 时,函数间隔 = 几何间隔。
flowchart LR
    A["函数间隔 γ̂ = y(w·x+b)\n会随 w,b 缩放而变"] -- "除以 ‖w‖" --> B["几何间隔 γ = γ̂/‖w‖\n真实距离, 不随缩放变"]

2. 硬间隔最大化(线性可分 SVM)

目标:找到几何间隔最大的超平面。

\[\max_{\boldsymbol w,b}\ \gamma\quad \text{s.t.}\quad \frac{y_i(\boldsymbol w\cdot\boldsymbol x_i+b)}{\lVert\boldsymbol w\rVert}\ge\gamma,\ \forall i\]

令函数间隔 \(\hat\gamma=1\)(可这样取,不影响最优超平面),上式化为标准形式:

\[\boxed{\;\min_{\boldsymbol w,b}\ \frac12\lVert\boldsymbol w\rVert^2 \quad \text{s.t.}\quad y_i(\boldsymbol w\cdot\boldsymbol x_i+b)\ge 1,\ i=1,\dots,N\;}\]

🎯 这就是硬间隔 SVM 的原始问题(要会写):最大化间隔 \(\Leftrightarrow\) 最小化 \(\tfrac12\lVert\boldsymbol w\rVert^2\)。 它是一个凸二次规划问题,解存在且唯一

3. 支持向量

支持向量 = 离最优分离超平面最近的点,即满足

\[y_i(\boldsymbol w\cdot\boldsymbol x_i + b) = 1\]

的样本(函数间隔正好 \(=1\),落在边界 \(\boldsymbol w\cdot\boldsymbol x+b=\pm1\) 上)。

flowchart TB
    subgraph 几何直观
      H["分离超平面 w·x+b=0"]
      Hp["间隔边界 w·x+b=+1"]
      Hn["间隔边界 w·x+b=−1"]
    end
    SV["支持向量: 落在 ±1 边界上的点\n(只有它们决定超平面)"]

关键性质:只有支持向量影响最优超平面,其余点去掉也不变。这也是"支持向量机"得名的原因。

📌 怎么实际求解?通过拉格朗日对偶转化(更高效)→ 03-对偶问题与KKT

03 · 对偶问题与 KKT(核心,要背)

🎯 高频考点。老师:"数学模型背也得背下来"。这页的式子建议默写到能复现

1. 为什么转对偶

原始问题(硬间隔):\(\min\ \tfrac12\lVert\boldsymbol w\rVert^2\) s.t. \(y_i(\boldsymbol w\cdot\boldsymbol x_i+b)\ge1\)。 直接解不方便,用拉格朗日乘子法转成对偶问题:① 求解更高效;② 自然引出内积 → 方便后面上核函数

2. 构造拉格朗日函数

每个约束配一个乘子 \(\alpha_i\ge0\)。先把约束写成 \(\le 0\) 的形式:\(1-y_i(\boldsymbol w\cdot\boldsymbol x_i+b)\le0\)

\[L(\boldsymbol w,b,\boldsymbol\alpha)=\frac12\lVert\boldsymbol w\rVert^2-\sum_{i=1}^N\alpha_i\bigl[y_i(\boldsymbol w\cdot\boldsymbol x_i+b)-1\bigr],\quad \alpha_i\ge0\]

原始问题 \(=\min_{\boldsymbol w,b}\max_{\boldsymbol\alpha} L\);对偶问题 \(=\max_{\boldsymbol\alpha}\min_{\boldsymbol w,b} L\)

3. 对 \(\boldsymbol w,b\) 求偏导并代回

\(\dfrac{\partial L}{\partial \boldsymbol w}=0,\ \dfrac{\partial L}{\partial b}=0\)

\[\boldsymbol w=\sum_{i=1}^N\alpha_i y_i\boldsymbol x_i,\qquad \sum_{i=1}^N\alpha_i y_i=0\]

代回 \(L\),消去 \(\boldsymbol w,b\),得到只含 \(\alpha\) 和样本内积的对偶问题。

4. 对偶问题(⭐ 要背)

\[\boxed{\;\max_{\boldsymbol\alpha}\ \sum_{i=1}^N\alpha_i-\frac12\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_j y_i y_j(\boldsymbol x_i\cdot\boldsymbol x_j)\;}\]
\[\text{s.t.}\quad \sum_{i=1}^N\alpha_i y_i=0,\qquad \alpha_i\ge 0,\ i=1,\dots,N\]

(也常写成等价的最小化形式:\(\min_{\boldsymbol\alpha}\ \tfrac12\sum_i\sum_j\alpha_i\alpha_j y_iy_j(\boldsymbol x_i\cdot\boldsymbol x_j)-\sum_i\alpha_i\),约束同上。)

5. KKT 条件(⭐ 要背)

\((\boldsymbol w^\*,b^\*)\) 是原始解、\(\boldsymbol\alpha^\*\) 是对偶解,则满足 KKT:

\[ \begin{aligned} &\alpha_i^\*\ge0\\ &y_i(\boldsymbol w^\*\cdot\boldsymbol x_i+b^\*)-1\ge0\\ &\alpha_i^\*\bigl[y_i(\boldsymbol w^\*\cdot\boldsymbol x_i+b^\*)-1\bigr]=0\quad(\text{complementary slackness}) \end{aligned} \]

互补松弛的含义(重点理解):

flowchart TD
    K{"αᵢ* 的取值?"} -->|"αᵢ* > 0"| SV["该点必为支持向量\ny(w·x+b)=1, 在边界上"]
    K -->|"αᵢ* = 0"| NSV["非支持向量\n对 w 无贡献(可去掉)"]
  • \(\alpha_i^\*>0\Rightarrow\) 该点是支持向量(在边界 \(y_i(\boldsymbol w\cdot\boldsymbol x_i+b)=1\) 上)。
  • 非支持向量的 \(\alpha_i^\*=0\),对 \(\boldsymbol w\) 没有贡献。

6. 求出超平面与决策函数

由支持向量解出参数:

\[\boldsymbol w^\*=\sum_{i}\alpha_i^\* y_i\boldsymbol x_i,\qquad b^\*=y_j-\sum_i\alpha_i^\* y_i(\boldsymbol x_i\cdot\boldsymbol x_j)\ \ (j:\ \text{any support vector})\]

决策函数(只与支持向量的内积有关,为核函数埋下伏笔):

\[f(\boldsymbol x)=\operatorname{sign}\!\left(\sum_i\alpha_i^\* y_i(\boldsymbol x_i\cdot\boldsymbol x)+b^\*\right)\]

求解流程

flowchart LR
    P["原始问题\nmin ½‖w‖²"] --> L["拉格朗日 L(w,b,α)"]
    L --> D["对 w,b 求导代回\n→ 对偶问题(只含α)"]
    D --> A["解出 α*"]
    A --> W["w*=Σαᵢyᵢxᵢ, b* 由支持向量定"]
    W --> F["决策函数 f(x)=sign(Σαᵢyᵢ(xᵢ·x)+b*)"]

例题 7.2 {#例题-72}

✍️ 要求:会算。给定几个带标签的样本点,求分离超平面与决策函数。

解题套路: 1. 写出对偶问题(代入各样本两两内积 \(\boldsymbol x_i\cdot\boldsymbol x_j\))。 2. 用约束 \(\sum_i\alpha_iy_i=0\) 消元,对目标求极值解出 \(\alpha^\*\)。 3. 由 \(\boldsymbol w^\*=\sum_i\alpha_i^\*y_i\boldsymbol x_i\)\(\boldsymbol w^\*\);取一个 \(\alpha_j^\*>0\) 的支持向量求 \(b^\*\)。 4. 写出分离超平面 \(\boldsymbol w^\*\cdot\boldsymbol x+b^\*=0\) 与决策函数。

🚧 此处需拓展:例 7.2 的具体数字计算请对着课本例题练 1–2 遍(可带计算器)。作业里也有同类题;LSQ 提示"作业 4.2 的数字要重新算、4.3 是右下角那块"。SVM 的异或问题太难,老师说不用看

04 · 软间隔与核函数

🎯 考点:软间隔的模型/算法(⚠️ 五角星区别!)、核函数定义与常用核、非线性 SVM 决策函数。

1. 软间隔最大化(线性 SVM)

现实数据常有噪声/异常点,不是严格线性可分。给每个样本一个松弛变量 \(\xi_i\ge0\),允许它"违规"一点:

原始问题

\[\min_{\boldsymbol w,b,\boldsymbol\xi}\ \frac12\lVert\boldsymbol w\rVert^2+C\sum_{i=1}^N\xi_i \quad\text{s.t.}\quad y_i(\boldsymbol w\cdot\boldsymbol x_i+b)\ge 1-\xi_i,\ \ \xi_i\ge0\]
  • 约束从硬间隔的 \(\ge1\) 放宽成 \(\ge 1-\xi_i\)
  • \(C>0\)惩罚参数\(C\) 越大越不容忍误分类(趋近硬间隔),越小越宽松。

2. ⚠️ 五角星区别:软间隔对偶 vs 硬间隔对偶

软间隔的对偶问题与硬间隔几乎一模一样,唯一区别在 \(\alpha_i\) 的约束多了上界 \(C\)

\[\max_{\boldsymbol\alpha}\ \sum_i\alpha_i-\frac12\sum_i\sum_j\alpha_i\alpha_j y_iy_j(\boldsymbol x_i\cdot\boldsymbol x_j)\quad\text{s.t.}\quad \sum_i\alpha_iy_i=0,\ \ \boxed{0\le\alpha_i\le C}\]

这就是老师"打五角星"的区别: - 硬间隔:\(\alpha_i\ge0\) - 软间隔:\(0\le\alpha_i\le \boldsymbol C\)(多了上界 \(C\)

目标函数和等式约束完全相同。记住这一点,两个模型就都拿下了。

软间隔支持向量更丰富:\(\alpha_i=0\) 非支持向量;\(0<\alpha_i<C\) 在边界上;\(\alpha_i=C\) 在边界内部或被误分。

3. 合页损失(Hinge Loss)

软间隔 SVM 等价于正则化的合页损失最小化

\[\min_{\boldsymbol w,b}\ \sum_{i=1}^N\bigl[\,1-y_i(\boldsymbol w\cdot\boldsymbol x_i+b)\,\bigr]_{+}+\lambda\lVert\boldsymbol w\rVert^2\]

其中 \([z]_+=\max(0,z)\)。即"分类正确且间隔够大就不罚,否则线性惩罚"。

🚧 此处需拓展:合页损失曲线与 0-1 损失、逻辑损失的对比,老师列为"了解概念",需要时看 ppt。

4. 核函数(非线性 SVM)

数据线性不可分时,用非线性映射 \(\phi\) 把样本送到高维特征空间,在那里做线性 SVM。

关键观察:对偶问题和决策函数里,样本只以内积形式 \(\boldsymbol x_i\cdot\boldsymbol x_j\) 出现。于是定义核函数

\[K(\boldsymbol x,\boldsymbol z)=\phi(\boldsymbol x)\cdot\phi(\boldsymbol z)\]

直接用 \(K\) 替换内积,无需显式计算高维 \(\phi\)——这就是核技巧 (kernel trick)

对偶问题(核化)决策函数(核化)

\[\max_{\boldsymbol\alpha}\ \sum_i\alpha_i-\frac12\sum_i\sum_j\alpha_i\alpha_j y_iy_j\,K(\boldsymbol x_i,\boldsymbol x_j),\quad 0\le\alpha_i\le C,\ \sum_i\alpha_iy_i=0\]
\[f(\boldsymbol x)=\operatorname{sign}\!\left(\sum_i\alpha_i^\* y_i\,K(\boldsymbol x_i,\boldsymbol x)+b^\*\right)\]

常用核函数

表达式
线性核 \(K(\boldsymbol x,\boldsymbol z)=\boldsymbol x\cdot\boldsymbol z\)
多项式核 \(K(\boldsymbol x,\boldsymbol z)=(\boldsymbol x\cdot\boldsymbol z+1)^p\)
高斯核 (RBF) \(K(\boldsymbol x,\boldsymbol z)=\exp\!\left(-\dfrac{\lVert\boldsymbol x-\boldsymbol z\rVert^2}{2\sigma^2}\right)\)

核方法比 SVM 更一般——核技巧 = 隐式地在高维特征空间学线性模型。

flowchart LR
    X["原空间: 线性不可分"] -->|"φ 映射(隐式, 用核K)"| H["高维特征空间: 线性可分"]
    H --> SVM["在高维做线性SVM\n内积→K(xᵢ,xⱼ)"]

本章一句话回顾

间隔(函数/几何)→ 硬间隔原始问题 \(\min\tfrac12\lVert w\rVert^2\) → 拉格朗日对偶 + KKT → 支持向量 → 软间隔(约束 \(0\le\alpha\le C\),⚠️五角星)→ 核函数(内积换 \(K\))。三类 SVM 的"模型 + 算法"都要会写。

第 24 章 · 卷积神经网络 CNN(🟡 中,计算题重点)

🎯 考点:计算题必出——二维卷积、填充与步幅、输出矩阵尺寸、三维卷积、池化(最大/平均/求和)。 ✍️ LSQ:"CNN 定义的数学模型公式一定要会写";"凡是书上的例题都有,考试会考"(老师原话)。

本章要求

知识点 要求 小节
二维卷积计算 会算 01-卷积与池化计算
填充与步幅、输出尺寸 会算公式 01-卷积与池化计算
三维卷积 看例题、会算 01-卷积与池化计算
池化(最大/平均/求和) 会算 01-卷积与池化计算
CNN 定义(数学模型) 一定会写 02-CNN定义与性质
三大性质 会简答 02-CNN定义与性质
反向传播 概念(一次前向+一次反向) 02-CNN定义与性质
图像分类常见模型 能举出名字 02-CNN定义与性质

为什么要 CNN

前馈网络只能吃向量,图像是矩阵,展平会丢空间结构、参数爆炸。CNN 直接处理矩阵/张量数据, 靠局部连接 + 参数共享大幅减少参数。

flowchart LR
    I["输入特征图\n(矩阵/张量)"] --> C["卷积层\n提特征"] --> A["激活\n(ReLU)"] --> P["池化层\n下采样"] --> F["...堆叠... → 全连接 → 分类"]

数据类型对应(老师口头强调,常考填空):CNN—矩阵数据;前馈—向量数据;RNN—序列数据

子页: 1. 卷积与池化计算(含例题) 2. CNN 定义与性质

📷 课件原图参考

来自课程 PPT(4 合 1 讲义版)。

二维卷积:

二维卷积

池化与输出尺寸:

池化与输出尺寸

01 · 卷积与池化计算(计算题重点)

🎯 必出计算题(可带计算器)。把下面的输出尺寸公式逐元素求和练熟。

1. 二维卷积(机器学习里其实是"互相关")

⚠️ 概念坑:数学上的卷积要把核翻转;本书/CNN 里说的"卷积"其实是互相关(不翻转),二者不满足交换律。 因为核是学出来的,翻不翻转效果一样,所以工程上直接用互相关。

给定输入矩阵 \(\boldsymbol X=[x_{ij}]_{I\times J}\)、卷积核 \(\boldsymbol W=[w_{mn}]_{M\times N}\)\(M\ll I,\ N\ll J\)), 核在输入上从左到右、从上到下滑动,每个位置做子矩阵与核的内积,得到输出 \(\boldsymbol Y=[y_{kl}]_{K\times L}\)

\[\boldsymbol Y=\boldsymbol W * \boldsymbol X,\qquad y_{kl}=\sum_{m=1}^{M}\sum_{n=1}^{N} w_{mn}\, x_{k+m-1,\;l+n-1}\]

基本输出尺寸(无填充、步幅 1):\(K=I-M+1,\quad L=J-N+1\)

2. 例题(务必会算){#例题}

输入 \(\boldsymbol X\)\(4\times4\))与核 \(\boldsymbol W\)\(3\times3\)):

\[\boldsymbol X=\begin{bmatrix}3&2&0&1\\0&2&1&2\\2&0&0&3\\2&3&1&2\end{bmatrix},\qquad \boldsymbol W=\begin{bmatrix}2&1&2\\0&0&3\\0&0&2\end{bmatrix}\]

输出尺寸 \(K\times L=(4-3+1)\times(4-3+1)=2\times2\)。逐位置算(核与对应 \(3\times3\) 子矩阵逐元素乘后求和):

  • \(y_{11}\):左上 \(3\times3\) 子块 \(\begin{bmatrix}3&2&0\\0&2&1\\2&0&0\end{bmatrix}\)\(2\cdot3+1\cdot2+2\cdot0+3\cdot1+2\cdot0=\mathbf{11}\)
  • \(y_{12}\):右上子块 \(\begin{bmatrix}2&0&1\\2&1&2\\0&0&3\end{bmatrix}\)\(2\cdot2+1\cdot0+2\cdot1+3\cdot2+2\cdot3=\mathbf{18}\)
  • \(y_{21}\):左下子块 \(\begin{bmatrix}0&2&1\\2&0&0\\2&3&1\end{bmatrix}\)\(2\cdot0+1\cdot2+2\cdot1+3\cdot0+2\cdot1=\mathbf{6}\)
  • \(y_{22}\):右下子块 \(\begin{bmatrix}2&1&2\\0&0&3\\3&1&2\end{bmatrix}\)\(2\cdot2+1\cdot1+2\cdot2+3\cdot3+2\cdot2=\mathbf{22}\)
\[\boldsymbol Y=\begin{bmatrix}11&18\\6&22\end{bmatrix}\]

⚠️ LSQ 提示:作业 4.2"数字要重新算",注意题目里给的数据。本书例题不加偏置 \(b\);若题目要求加 \(b\),每个输出再 \(+b\)

3. 填充与步幅、输出尺寸 {#输出尺寸}

  • 填充 (Padding) \(P,Q\):在输入四周补 0,保边缘信息、控制输出大小。
  • 步幅 (Stride) \(S\):核每次滑动的格数,\(S\) 越大输出越小。

通用输出尺寸公式(要背、会算):

\[K=\left\lfloor\frac{I+2P-M}{S}\right\rfloor+1,\qquad L=\left\lfloor\frac{J+2Q-N}{S}\right\rfloor+1\]

例:\(I=J=7\)、核 \(3\times3\)\(P=Q=1\)\(S=2\)\(K=\lfloor(7+2-3)/2\rfloor+1=\lfloor3\rfloor+1=4\)。输出 \(4\times4\)

4. 三维卷积 {#三维卷积}

输入有多个通道(如 RGB 3 通道)时:用 3 个不同的二维卷积核分别对 3 个通道做二维卷积, 再把 3 个输出矩阵对应相加,得到一个二维输出(一个输出通道)。多个输出通道就用多组这样的核。

flowchart LR
    R["R 通道"] --> cR["⊛ 核R"] --> Sum
    G["G 通道"] --> cG["⊛ 核G"] --> Sum
    B["B 通道"] --> cB["⊛ 核B"] --> Sum["逐元素相加\n→ 一个输出特征图"]

5. 池化 / 汇聚 (Pooling) {#池化}

对特征图分块下采样,减小尺寸、增强不变性。三种(会算):

池化 取值
最大池化 每个窗口取最大值
平均池化 每个窗口取平均值
求和池化 每个窗口取

例:对 \(\begin{bmatrix}1&3\\2&4\end{bmatrix}\)\(2\times2\) 池化:最大 \(=4\),平均 \(=2.5\),求和 \(=10\)。 池化窗口大小、步幅同样用上面的输出尺寸公式。

📌 输入/输出又称特征图 (feature map)。二维卷积的输入输出是矩阵;三维卷积处理多通道张量。

02 · CNN 定义与性质

✍️ 要求:CNN 定义的数学模型公式一定要会写(老师强调);三大性质会简答;反向传播懂概念;能举常见模型名。

1. CNN 的定义(数学模型,要会写)

一个卷积层把上一层特征图 \(\boldsymbol X\) 经"卷积 + 偏置 + 激活"得到输出特征图,常再接池化

\[\boldsymbol Y=a\!\bigl(\boldsymbol W * \boldsymbol X + b\bigr)\]

其中 \(*\) 是二维(互相关)卷积,\(a(\cdot)\) 是激活函数(常用 ReLU)。 CNN = 多个"卷积层(+池化)"堆叠,最后接全连接层做分类

flowchart LR
    X["输入特征图 X"] --> conv["卷积 W*X + b"] --> act["激活 a(·)"] --> pool["池化(下采样)"] --> more["… 堆叠 …"] --> fc["全连接"] --> out["Softmax 分类"]

2. CNN 三大性质 {#三大性质}

性质 含义
表示效率(参数共享) 同一个卷积核在整张图滑动复用 → 参数量远小于全连接,表示更高效
不变性 对平移(及一定程度的旋转/缩放)具有不变/等变性 → 物体换位置仍能识别
感受野 (Receptive Field) 输出上一个点"看得到"的输入区域;网络越深,感受野越大,能捕捉更大范围特征

🎯 这三条常考简答/填空。一句话记:参数共享省参数、平移不变更鲁棒、感受野随深度变大

3. 反向传播(概念)

和前馈网络一样:一次正向传播(算输出/损失)+ 一次反向传播(回传梯度、更新核与偏置)。 卷积层的反向传播本质仍是链式法则,只是梯度也以"卷积"的形式回传。

🚧 此处需拓展:卷积层反向传播的具体推导(对核、对输入的梯度)较繁,老师列为"掌握概念",会说"完成一次前向 + 一次反向梯度传播"即可。需要时看课本。

4. 图像分类中的常见模型 {#常见模型}

✍️ 要求:能举出名字即可(填空/简答)。

  • LeNet:最早的 CNN(手写数字识别)。
  • AlexNet:深度 CNN 引爆点(ImageNet)。
  • VGG:用大量 \(3\times3\) 小卷积堆叠。
  • GoogLeNet / Inception:多尺度并行卷积。
  • ResNet残差连接,可训练极深网络、缓解梯度消失(见 前馈/04 正则化技巧)。
flowchart LR
    LeNet --> AlexNet --> VGG --> GoogLeNet --> ResNet["ResNet (残差连接)"]

本章一句话回顾

卷积/池化会算(输出尺寸公式 + 逐元素求和)→ CNN 定义 \(\boldsymbol Y=a(\boldsymbol W*\boldsymbol X+b)\) 会写 → 三大性质(参数共享/不变性/感受野)→ 反向传播=一次前向+一次反向 → 常见模型能点名。

第 29.1 节 · 优化算法(🟠 封面点名必考)

🎯 教材封面手写明确标注:"优化器必须掌握",并列出 7 个。课堂里相关内容主要融在第 23 章讲, 所以独立讲解时间短,但必考——主要考更新公式与各优化器区别(填空/简答)。

要掌握的优化器(封面列出)

类别 优化器
必考 SGD(批量 / 随机)、动量 SGD(Momentum)、RMSProp、Adam
额外补充(旁注"还有") AdaDelta、AdaGrad、AdamW

它们的演化关系(一张图理清)

flowchart TD
    GD["批量梯度下降 GD\n用全部样本"] --> SGD["随机/小批量 SGD\n用一个 batch"]
    SGD --> M["+动量 Momentum\n累积历史梯度方向"]
    SGD --> AG["AdaGrad\n按参数自适应学习率\n(累积梯度平方)"]
    AG --> RMS["RMSProp\n梯度平方的滑动平均\n(修正AdaGrad学习率衰减过快)"]
    AG --> AD["AdaDelta\n类似RMSProp, 无需设学习率"]
    M --> ADAM["Adam\n= 动量 + RMSProp\n(一阶矩+二阶矩+偏差校正)"]
    RMS --> ADAM
    ADAM --> ADAMW["AdamW\n= Adam + 解耦权重衰减"]

✍️ 复习要点:能写出每个优化器的更新公式,能一句话说清它解决了前一个的什么问题

详见 01-梯度下降与优化器家族

📌 配套:BN、Dropout 等训练技巧见 前馈神经网络/04-正则化与训练技巧

01 · 梯度下降与优化器家族

🎯 必考。建议把每个的更新公式一句话动机背下来。记号:\(g_t=\nabla_\theta\mathcal L\) 为当前梯度,\(\eta\) 学习率,\(\epsilon\) 防除零小量。

0. 基础:梯度下降

沿负梯度方向更新参数:

\[\theta_{t+1}=\theta_t-\eta\,g_t\]
  • 批量梯度下降 (BGD):每步用全部 \(N\) 个样本算梯度——准但慢、内存大。
  • 随机梯度下降 (SGD):每步用1 个(或一个小批量 mini-batch)样本——快、可在线,但梯度有噪声、震荡。
  • 小批量是实际默认:\(N=M\times n\),每步用 \(n\) 个样本的平均梯度。

问题:纯 SGD 在"峡谷"地形震荡、对所有参数用同一学习率、易陷在鞍点 → 引出下面的改进。

1. 动量法 Momentum(解决震荡 / 加速收敛)

引入"速度" \(v\),累积历史梯度(像小球带惯性):

\[v_t=\beta v_{t-1}+g_t,\qquad \theta_{t+1}=\theta_t-\eta\,v_t\]

\(\beta\approx0.9\)。)一致方向上累积加速、来回方向上相互抵消 → 减少震荡、加快收敛

2. AdaGrad(按参数自适应学习率)

累积梯度平方 \(r\),让更新频繁的参数学习率变小、稀疏参数学习率大:

\[r_t=r_{t-1}+g_t^2,\qquad \theta_{t+1}=\theta_t-\frac{\eta}{\sqrt{r_t}+\epsilon}\,g_t\]

⚠️ 缺点:\(r\) 单调增 → 学习率单调衰减、后期过小,可能提前停止学习。

3. RMSProp(修正 AdaGrad 衰减过快)

把"累加"改成指数滑动平均,让 \(r\) 不会无限增大:

\[r_t=\beta r_{t-1}+(1-\beta)g_t^2,\qquad \theta_{t+1}=\theta_t-\frac{\eta}{\sqrt{r_t}+\epsilon}\,g_t\]

\(\beta\approx0.9\)。)适合非平稳目标,深度学习常用。

4. AdaDelta(RMSProp 的近亲,几乎不用设学习率)

在 RMSProp 基础上,用参数更新量的滑动平均替代全局学习率,无需手工设 \(\eta\)

🚧 此处需拓展:AdaDelta 完整公式(含 \(\Delta\theta\) 的均方根项)较繁,考"概念/区别"即可——记住"它是不用设学习率的自适应法"。

5. Adam(动量 + RMSProp,最常用)⭐

同时维护梯度的一阶矩 \(m\)(动量)和二阶矩 \(v\)(RMSProp),并做偏差校正

\[ \begin{aligned} m_t&=\beta_1 m_{t-1}+(1-\beta_1)g_t &&\text{(1st moment, momentum)}\\ v_t&=\beta_2 v_{t-1}+(1-\beta_2)g_t^2 &&\text{(2nd moment, RMSProp)}\\ \hat m_t&=\frac{m_t}{1-\beta_1^{\,t}},\quad \hat v_t=\frac{v_t}{1-\beta_2^{\,t}} &&\text{(bias correction)}\\ \theta_{t+1}&=\theta_t-\frac{\eta}{\sqrt{\hat v_t}+\epsilon}\,\hat m_t \end{aligned} \]

(常用 \(\beta_1=0.9,\ \beta_2=0.999\)。)兼具动量的方向平滑与自适应学习率,鲁棒、收敛快,是默认首选。

6. AdamW(Adam + 解耦权重衰减)

Adam 里把 L2 正则塞进梯度会和自适应学习率耦合、效果打折。AdamW 把权重衰减从梯度里解耦,单独作用在参数上:

\[\theta_{t+1}=\theta_t-\eta\!\left(\frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}+\lambda\,\theta_t\right)\]

正则更干净,是现代大模型常用优化器。

一句话对比表(背这个)

优化器 一句话
SGD 沿负梯度走,最基础
Momentum 加惯性,减震荡、加速
AdaGrad 按参数自适应学习率,但后期学习率过小
RMSProp 用梯度平方滑动平均,修正 AdaGrad 衰减
AdaDelta 类 RMSProp,几乎不用设学习率
Adam 动量 + RMSProp + 偏差校正,最常用
AdamW Adam + 解耦权重衰减

🎯 答题提示:填空常考"哪个引入动量""哪个自适应学习率""Adam = 谁 + 谁";简答常考"Adam 相比 SGD 的优点""AdaGrad 的缺点及 RMSProp 如何改进"。

第 25 章 · 循环神经网络 RNN(🟢 基础,但 5 种架构要会画)

课堂讲得相对少(≈10 分钟),但 LSQ 明确记:"要求掌握的模型与网络架构(要会画!)"。 老师:"它的图和公式是这一章的重点,要能一一对应"。

本章要求

知识点 要求
5 种架构(会画图 + 写公式) SRNN(图25.1)、LSTM(定义25.2/图25.6)、GRU(定义25.3/图25.8)、深度RNN(图25.9)、双向RNN(图25.10)
学习算法 反向传播(BPTT)是核心算法,懂概念
梯度消失/爆炸 概念(长序列时严重,LSTM/GRU 缓解)
门控机制 基于门控的有 LSTM 与 GRU

数据类型对应(常考填空):RNN—序列数据;CNN—矩阵;前馈—向量。

为什么需要 RNN

序列数据(文本、语音、时间序列)有时间依赖,前馈/CNN 不擅长。RNN 用隐状态 \(h_t\) 沿时间传递信息, 让"现在"能记住"过去"。

flowchart LR
    x1["x₁"] --> h1["h₁"] --> y1["y₁"]
    x2["x₂"] --> h2["h₂"] --> y2["y₂"]
    x3["x₃"] --> h3["h₃"] --> y3["y₃"]
    h1 -->|"隐状态传递"| h2 -->|"隐状态传递"| h3

详见 01-五种RNN架构

📷 课件原图参考

来自课程 PPT(4 合 1 讲义版)。

简单循环神经网络 SRNN:

SRNN

门控 RNN / LSTM:

门控RNN/LSTM

01 · 五种 RNN 架构(会画 + 会写公式)

🎯 考点:老师"图和公式要能一一对应"。下面每种都给结构图 + 公式。考试画图时把时间展开画清楚。

1. 简单循环神经网络 SRNN(图 25.1)

隐状态由"上一时刻隐状态 + 当前输入"决定,再产生输出:

\[\boldsymbol h_t=a\!\bigl(\boldsymbol U\boldsymbol h_{t-1}+\boldsymbol W\boldsymbol x_t+\boldsymbol b\bigr),\qquad \boldsymbol y_t=g\!\bigl(\boldsymbol V\boldsymbol h_t+\boldsymbol c\bigr)\]
  • \(\boldsymbol U\):隐→隐(循环权重);\(\boldsymbol W\):输入→隐;\(\boldsymbol V\):隐→输出。三组权重在所有时间步共享
flowchart LR
    subgraph 按时间展开
      x1["x₁"]-->h1["h₁"]; h1-->o1["y₁"]
      x2["x₂"]-->h2["h₂"]; h2-->o2["y₂"]
      x3["x₃"]-->h3["h₃"]; h3-->o3["y₃"]
      h1 -->|U| h2 -->|U| h3
    end

⚠️ SRNN 长序列时梯度消失/爆炸严重(同样的 \(\boldsymbol U\) 连乘)→ 难记住远处信息。LSTM/GRU 就是来解决它的。

2. 长短期记忆网络 LSTM(定义 25.2 / 图 25.6)

引入细胞状态 \(\boldsymbol c_t\)(信息高速公路)和三个门控制信息流:

作用 公式(\(\sigma\)=Sigmoid)
遗忘门 \(\boldsymbol f_t\) 丢弃多少旧记忆 \(\sigma(\boldsymbol W_f[\boldsymbol h_{t-1},\boldsymbol x_t]+\boldsymbol b_f)\)
输入门 \(\boldsymbol i_t\) 写入多少新信息 \(\sigma(\boldsymbol W_i[\boldsymbol h_{t-1},\boldsymbol x_t]+\boldsymbol b_i)\)
输出门 \(\boldsymbol o_t\) 输出多少 \(\sigma(\boldsymbol W_o[\boldsymbol h_{t-1},\boldsymbol x_t]+\boldsymbol b_o)\)

候选记忆与更新:

\[\tilde{\boldsymbol c}_t=\tanh(\boldsymbol W_c[\boldsymbol h_{t-1},\boldsymbol x_t]+\boldsymbol b_c),\quad \boldsymbol c_t=\boldsymbol f_t\odot\boldsymbol c_{t-1}+\boldsymbol i_t\odot\tilde{\boldsymbol c}_t,\quad \boldsymbol h_t=\boldsymbol o_t\odot\tanh(\boldsymbol c_t)\]
flowchart LR
    cprev["c_{t-1}"] --> mulf["× 遗忘门 f"] --> add["+"] --> ct["c_t"]
    inp["[h_{t-1}, x_t]"] --> ig["输入门 i"] --> muli["×"] --> add
    inp --> cand["候选 c̃ (tanh)"] --> muli
    ct --> tanhc["tanh"] --> mulo["× 输出门 o"] --> ht["h_t"]

细胞状态 \(\boldsymbol c_t\) 的加性更新让梯度更容易回传 → 缓解梯度消失,能记住长程依赖。

3. 门控循环单元 GRU(定义 25.3 / 图 25.8)

LSTM 的简化版,只有两个门(重置门 \(\boldsymbol r_t\)、更新门 \(\boldsymbol z_t\)),没有单独的细胞状态:

\[\boldsymbol r_t=\sigma(\boldsymbol W_r[\boldsymbol h_{t-1},\boldsymbol x_t]),\quad \boldsymbol z_t=\sigma(\boldsymbol W_z[\boldsymbol h_{t-1},\boldsymbol x_t])$$ $$\tilde{\boldsymbol h}_t=\tanh(\boldsymbol W[\boldsymbol r_t\odot\boldsymbol h_{t-1},\boldsymbol x_t]),\quad \boldsymbol h_t=(1-\boldsymbol z_t)\odot\boldsymbol h_{t-1}+\boldsymbol z_t\odot\tilde{\boldsymbol h}_t\]
  • 参数比 LSTM 少、更快,效果常相近。

🎯 LSQ 提示(常考填空/简答):基于门控机制的 RNN 有 LSTM 与 GRU

4. 深度循环神经网络(图 25.9)

把多个 RNN 层纵向堆叠:下层的隐状态序列作为上层的输入序列,增强表达能力。

flowchart LR
    x["x_t"] --> l1["第1层 RNN"] --> l2["第2层 RNN"] --> y["y_t"]
    l1 -->|时间| l1b["..."]
    l2 -->|时间| l2b["..."]

5. 双向循环神经网络(图 25.10)

同时有正向(从前往后)和反向(从后往前)两条 RNN,把两者的隐状态拼起来 → 每个时刻都能利用整句的上下文。

\[\boldsymbol h_t=[\;\overrightarrow{\boldsymbol h}_t\,;\,\overleftarrow{\boldsymbol h}_t\;]\]
flowchart LR
    x1["x₁"] --> f1["→ h₁"] --> f2["→ h₂"] --> f3["→ h₃"]
    x1 --> b1["← h₁"]; b2["← h₂"] --> b1; b3["← h₃"] --> b2
    f1 --> y1["y₁ = [→h₁;←h₁]"]; b1 --> y1

学习算法与梯度问题

  • 学习算法 = 沿时间的反向传播 (BPTT),是 RNN 的核心算法(概念即可)。
  • 长序列时梯度连乘 → 梯度消失/爆炸;LSTM/GRU 的门控 + 加性记忆缓解之。

本章一句话回顾

SRNN(基础,会梯度消失)→ LSTM(三门 + 细胞状态)→ GRU(两门,简化)→ 深度 RNN(纵向堆叠)→ 双向 RNN(正反向拼接)。5 种都要会画图、会写公式,图与公式一一对应

第 26 章 · 序列到序列模型 / Transformer(🟡 中)

课堂讲解时间短(≈5 分钟)但强调密度极高(注意力/Transformer 反复点到)。LSQ:"整体过一遍 ppt"。 老师原话:"这 7 个技术必须要会"。别因为讲得快就跳过。

本章要求

知识点 要求
基本模型(编码器-解码器) 了解概念
RNN Search 模型 26.2.2 数学定义、图 26.5
注意力机制公式 会写
Transformer 七大技术 必须会(关注图 26.7)
多头注意力 重点关注
模型特点 老师强调,要会简答

演进脉络(一句话串起来)

flowchart LR
    A["基本 Seq2Seq\n(编码器-解码器, RNN)\n瓶颈: 定长上下文向量"] --> B["RNN Search\n(+注意力, 双向RNN编码器)"]
    B --> C["Transformer\n完全依赖注意力, 抛弃循环"]

详见 01-注意力与Transformer

📷 课件原图参考

来自课程 PPT(4 合 1 讲义版)。

注意力机制:

注意力机制

Transformer 架构(含图 26.7):

Transformer架构

01 · 注意力与 Transformer

🎯 考点:注意力公式、RNN Search、Transformer 七大技术、多头注意力、模型特点。

1. 基本序列到序列(编码器-解码器)

把一个序列映射成另一个序列(翻译、摘要等)。编码器(RNN)把输入序列压成一个上下文向量 \(\boldsymbol c\)解码器(RNN)从 \(\boldsymbol c\) 逐步生成输出序列。

flowchart LR
    subgraph 编码器
      x1["x₁"]-->e1["h₁"]-->e2["h₂"]-->e3["h₃"]
      x2["x₂"]-->e2; x3["x₃"]-->e3
    end
    e3 --> c["上下文向量 c"]
    subgraph 解码器
      c --> d1["s₁"]-->y1["y₁"]
      d1-->d2["s₂"]-->y2["y₂"]
    end

⚠️ 瓶颈:把整句压进一个定长向量 \(\boldsymbol c\),长句会丢信息 → 引出注意力

2. 注意力机制(公式要会写)

思想:解码每一步,动态地从编码器所有隐状态里"按需取信息",而不是只用一个 \(\boldsymbol c\)。 注意力 = 用一个查询 (query) 去一组键值对 (key-value) 里加权检索:

\[\alpha_i=\operatorname{softmax}_i\bigl(\text{score}(\boldsymbol q,\boldsymbol k_i)\bigr)=\frac{\exp(\text{score}(\boldsymbol q,\boldsymbol k_i))}{\sum_j\exp(\text{score}(\boldsymbol q,\boldsymbol k_j))},\qquad \text{Attention}(\boldsymbol q,\{\boldsymbol k_i,\boldsymbol v_i\})=\sum_i\alpha_i\boldsymbol v_i\]

缩放点积注意力(Transformer 用,矩阵形式):

\[\text{Attention}(\boldsymbol Q,\boldsymbol K,\boldsymbol V)=\operatorname{softmax}\!\left(\frac{\boldsymbol Q\boldsymbol K^{\mathsf T}}{\sqrt{d_k}}\right)\boldsymbol V\]

(除以 \(\sqrt{d_k}\) 防止点积过大导致 softmax 梯度过小。)

flowchart LR
    Q["查询 Q"] --> S["打分 QKᵀ/√dₖ"]
    K["键 K"] --> S
    S --> A["softmax → 权重 α"]
    A --> O["加权求和 αV"]
    V["值 V"] --> O

3. RNN Search 模型(26.2.2)

= 带注意力的 seq2seq:编码器用双向 RNN得到每个位置的隐状态作为 key/value; 解码每步用当前解码状态作 query,对编码器隐状态做注意力,得到随步变化的上下文向量 \(\boldsymbol c_t\)

✍️ 要求:26.2.2 的数学定义要会;图 26.5(LSQ 打了 ✔,可能要求会画——以 ppt 要求为准)。

4. Transformer(图 26.7)

完全依赖注意力抛弃循环结构的编码器-解码器。因为没有循环,可并行、更擅长长程依赖

七大技术(老师:"这 7 个必须会")

🚧 此处需拓展:以下为按课堂录音 + 标准 Transformer 重建的 7 项,请对照 ppt 图 26.7 的官方表述核对措辞

  1. 自注意力 (Self-Attention):序列内部每个位置对其它所有位置做注意力。
  2. 多头注意力 (Multi-Head Attention):并行多组注意力(不同子空间),再拼接 → 捕捉多种关系。
  3. 编码器-解码器注意力 (Cross-Attention):解码器用 query 去查编码器输出(信息传递)。
  4. 掩码自注意力 (Masked Self-Attention):解码器中遮住未来位置,保证自回归(只能看已生成的)。
  5. 位置编码 (Positional Encoding):Transformer 不含位置信息,需额外注入(常用正弦/余弦编码)。
  6. 残差连接 (Residual Connection):每个子层加残差,防止信息/梯度丢失(老师:"没有残差连接很容易使位置信息丢失")。
  7. 层归一化 (Layer Norm) + 前馈网络 (FFN):每子层后接 LN;每块含一个逐位置前馈网络。
flowchart TB
    subgraph 编码器块
      sa["多头自注意力"] --> an1["Add & Norm (残差+层归一化)"] --> ff1["前馈网络 FFN"] --> an2["Add & Norm"]
    end
    subgraph 解码器块
      msa["掩码多头自注意力"] --> an3["Add & Norm"] --> ca["编码器-解码器注意力"] --> an4["Add & Norm"] --> ff2["FFN"] --> an5["Add & Norm"]
    end
    pe["+ 位置编码"] --> sa
    pe2["+ 位置编码"] --> msa
    an2 -.编码信息.-> ca

多头注意力(重点关注)

\(\boldsymbol Q,\boldsymbol K,\boldsymbol V\) 线性投影成 \(h\) 组,各自做注意力,再拼接、再投影:

\[\text{MultiHead}=\text{Concat}(\text{head}_1,\dots,\text{head}_h)\boldsymbol W^O,\quad \text{head}_i=\text{Attention}(\boldsymbol Q\boldsymbol W_i^Q,\boldsymbol K\boldsymbol W_i^K,\boldsymbol V\boldsymbol W_i^V)\]

老师:"多头本质上就是注意力的并列,表示成矩阵的形式。"

位置编码

因为没有循环/卷积,模型本身不知道词的先后,需要把位置信息加到输入嵌入上(常用不同频率的正弦/余弦函数)。

模型特点(会简答)

  • 完全基于注意力,无循环、可高度并行(训练快)。
  • 擅长捕捉长程依赖
  • 位置编码补充顺序信息,靠残差 + 层归一化稳定训练。

本章一句话回顾

基本 seq2seq(编码器-解码器,定长上下文有瓶颈)→ 注意力(query 对 key-value 加权检索,公式要会写)→ RNN Search(双向 RNN + 注意力)→ Transformer(完全靠注意力,七大技术必须会,重点多头注意力 + 图 26.7)。

第 7 部分 · 练习题(带详解)

🎯 取自本课作业原题,聚焦考试主力题型(计算题),答案均经程序核算。 解答放在折叠块里(HTML 里可点开、PDF 里默认展开),建议先自己做再看

目录

  • 01 · 计算题精练
  • 前馈网络:前向传播 + 反向传播求梯度
  • CNN:二维卷积(步幅/填充 4 种组合)
  • CNN:最大/平均池化
  • SVM:核矩阵 + 对偶 + 决策函数(异或例)
  • 02 · 概念题速答
  • 四个概念的隶属关系(韦恩图)
  • 激活函数、神经元局限、CNN 三层、RNN 例子等简答/填空

题型对应(见 00-复习重点地图):计算题占大头,且可带计算器——把下面这些算熟,计算题基本稳了。

01 · 计算题精练(带详解)

答案均经程序核算。先做再看解答。


题 1 · 前馈网络:前向 + 反向传播(作业二·5)

两层前馈网络:输入 \(\boldsymbol x\in\mathbb R^2\) →第一层线性变换→ ReLU →第二层线性变换→ 输出 \(\hat y\)

⚠️ 这道题是本课最容易丢分的约定坑,务必看完下面三部分。 本课程/课本的线性变换统一用 \(\boldsymbol z=\boldsymbol W^{\mathsf T}\boldsymbol x+\boldsymbol b\)(即 \(\boldsymbol w\)\(\boldsymbol x\) 做内积),输出层同理 \(\hat y=\boldsymbol W_2^{\mathsf T}\boldsymbol h+b_2\)。 依据:课本原文"每一层的输入到净输入的仿射变换实际根据 \(z=W^{\mathsf T}x\) 进行"。 偏置:本题虽标"不含偏置"(数值上 \(\boldsymbol b=\boldsymbol 0\)),但公式里必须把 \(+\,\boldsymbol b\) 写出来(老师强调,\(z\)\(\hat y\) 两式都要写,不写扣分);结构图上画不画都行。

原题(照抄作业): 输入 \(\boldsymbol x=[1,2]^{\mathsf T}\);第一层 \(\boldsymbol W_1=\begin{bmatrix}1&2\\-1&0\end{bmatrix}^{\mathsf T}\);第二层 \(\boldsymbol W_2=[1,2]^{\mathsf T}\);激活 ReLU;\(y=1\)\(L=\tfrac12(\hat y-y)^2\);不含偏置。

(1) 求前向 \(\hat y\)\(L\)(2)\(\partial L/\partial \boldsymbol W_1,\ \partial L/\partial \boldsymbol W_2\)。 老师给的标准答案是 \(\boxed{\hat y=5,\ L=8}\)

📝 解答(三部分:原题为何对不上 / 怎么改 / 标准算法) #### 第一部分 · 原题 + 误用 $\boldsymbol z=\boldsymbol W\boldsymbol x$ → 和老师答案对不上 若忽略课程约定,把题里的 $\boldsymbol W_1=\begin{bmatrix}1&2\\-1&0\end{bmatrix}^{\mathsf T}=\begin{bmatrix}1&-1\\2&0\end{bmatrix}$ 直接当成乘 $\boldsymbol x$ 的矩阵(即 $\boldsymbol z_1=\boldsymbol W_1\boldsymbol x$): $$\boldsymbol z_1=\begin{bmatrix}1&-1\\2&0\end{bmatrix}\begin{bmatrix}1\\2\end{bmatrix}=\begin{bmatrix}-1\\2\end{bmatrix}\Rightarrow \boldsymbol h_1=\begin{bmatrix}0\\2\end{bmatrix}\Rightarrow \hat y=[1,2]\begin{bmatrix}0\\2\end{bmatrix}=4,\ L=4.5$$ 得 $\hat y=4\neq5$ —— **原题(带 $^{\mathsf T}$)配 $z=Wx$ 和老师答案对不上**,这是最常见的踩坑写法。 #### 第二部分 · 把题目改对(删掉 $^{\mathsf T}$),老师的写法就对 老师的修法是"**把题目改一下**":删掉 $\boldsymbol W_1$ 的转置号,令 $\boldsymbol W_1=\begin{bmatrix}1&2\\-1&0\end{bmatrix}$,再按 $\boldsymbol z_1=\boldsymbol W_1\boldsymbol x$: $$\boldsymbol z_1=\begin{bmatrix}1&2\\-1&0\end{bmatrix}\begin{bmatrix}1\\2\end{bmatrix}=\begin{bmatrix}5\\-1\end{bmatrix}\Rightarrow \boldsymbol h_1=\begin{bmatrix}5\\0\end{bmatrix}\Rightarrow \hat y=5,\ L=8\ \checkmark$$ 梯度(此框架 $\boldsymbol z_1=\boldsymbol W_1\boldsymbol x$,$\boldsymbol W_1=\begin{bmatrix}1&2\\-1&0\end{bmatrix}$):$\delta=\hat y-y=4$ $$\frac{\partial L}{\partial \boldsymbol W_2}=\delta\boldsymbol h_1=[20,0]^{\mathsf T},\quad \boldsymbol\delta_1=(\delta\boldsymbol W_2)\odot\mathrm{ReLU}'(\boldsymbol z_1)=[4,0]^{\mathsf T},\quad \frac{\partial L}{\partial \boldsymbol W_1}=\boldsymbol\delta_1\boldsymbol x^{\mathsf T}=\begin{bmatrix}4&8\\0&0\end{bmatrix}$$ #### 第三部分 · 不改题目,用课程标准约定 $\boldsymbol z=\boldsymbol W^{\mathsf T}\boldsymbol x$(**考试按这套写**) 保留原题 $\boldsymbol W_1=\begin{bmatrix}1&2\\-1&0\end{bmatrix}^{\mathsf T}$ 不动,按课本约定 $\boldsymbol z=\boldsymbol W^{\mathsf T}\boldsymbol x+\boldsymbol b$($\boldsymbol b=\boldsymbol 0$,但公式写出 $+\boldsymbol b$): $$\boldsymbol z_1=\boldsymbol W_1^{\mathsf T}\boldsymbol x+\boldsymbol b_1=\Big(\begin{bmatrix}1&2\\-1&0\end{bmatrix}^{\mathsf T}\Big)^{\mathsf T}\begin{bmatrix}1\\2\end{bmatrix}+\boldsymbol 0=\begin{bmatrix}1&2\\-1&0\end{bmatrix}\begin{bmatrix}1\\2\end{bmatrix}=\begin{bmatrix}5\\-1\end{bmatrix}$$ $$\boldsymbol h_1=\mathrm{ReLU}(\boldsymbol z_1)=\begin{bmatrix}5\\0\end{bmatrix},\qquad \hat y=\boldsymbol W_2^{\mathsf T}\boldsymbol h_1+b_2=[1,2]\begin{bmatrix}5\\0\end{bmatrix}+0=5,\qquad L=\tfrac12(5-1)^2=\boxed{8}$$ > 关键:$\boldsymbol W_1^{\mathsf T}=\big([\cdots]^{\mathsf T}\big)^{\mathsf T}=\begin{bmatrix}1&2\\-1&0\end{bmatrix}$,**两个转置抵消**,乘 $\boldsymbol x$ 的矩阵正好是 $\begin{bmatrix}1&2\\-1&0\end{bmatrix}$ —— 所以用 $z=W^{\mathsf T}x$ 时,原题的 $^{\mathsf T}$ 根本不用删,结果就是 5。 **反向**($\boldsymbol z=\boldsymbol W^{\mathsf T}\boldsymbol x$ 下 $\partial L/\partial\boldsymbol W=\boldsymbol x\,\boldsymbol\delta^{\mathsf T}$):$\delta=\hat y-y=4$ - $\dfrac{\partial L}{\partial \boldsymbol W_2}=\delta\,\boldsymbol h_1=4\begin{bmatrix}5\\0\end{bmatrix}=\boxed{[20,\ 0]^{\mathsf T}}$, $\dfrac{\partial L}{\partial b_2}=\delta=4$ - $\dfrac{\partial L}{\partial \boldsymbol h_1}=\delta\,\boldsymbol W_2=[4,8]^{\mathsf T}$;$\mathrm{ReLU}'(\boldsymbol z_1)=[1,0]$($\boldsymbol z_1=[5,-1]$)$\Rightarrow \boldsymbol\delta_1=[4,0]^{\mathsf T}$, $\dfrac{\partial L}{\partial \boldsymbol b_1}=\boldsymbol\delta_1=[4,0]^{\mathsf T}$ - $\dfrac{\partial L}{\partial \boldsymbol W_1}=\boldsymbol x\,\boldsymbol\delta_1^{\mathsf T}=\begin{bmatrix}1\\2\end{bmatrix}[4,0]=\boxed{\begin{bmatrix}4&0\\8&0\end{bmatrix}}$ > 第二、三部分的 $\hat y,L$ 完全相同;$\partial L/\partial\boldsymbol W_1$ 互为转置(因两套里 $\boldsymbol W_1$ 本身就互为转置)。**考试按第三部分写最稳**——这是课本/老师的标准约定,且原题不用改。

⚠️ 两个易错点: ① 把 \(\boldsymbol W_1\)\(^{\mathsf T}\) 先转置成 \(\begin{bmatrix}1&-1\\2&0\end{bmatrix}\),又用 \(z=Wx\) → 乘错矩阵 → 得 \(\hat y=4\)。 ② 用 \(z=Wx\) 代替本课的 \(z=\boldsymbol W^{\mathsf T}\boldsymbol x\),或公式里漏写偏置 \(+\boldsymbol b\)。 牢记本课约定:\(\boldsymbol z=\boldsymbol W^{\mathsf T}\boldsymbol x+\boldsymbol b\)


题 2 · CNN:二维卷积(作业四·补充1)

输入图像 \(I\) 与卷积核 \(W\)(偏置 \(b=0\)):

\[I=\begin{bmatrix}0&0&1&1&0\\0&1&0&0&1\\0&0&1&0&1\\1&1&0&1&0\\0&0&0&0&0\end{bmatrix},\qquad W=\begin{bmatrix}0&1&0\\1&0&0\\0&0&0\end{bmatrix}\]

分别求:(1) 步幅 \(S=1\)、填充 \(P=0\);(2) \(S=2,P=0\);(3) \(S=1,P=1\);(4) \(S=2,P=1\) 的输出特征图及尺寸。

尺寸公式:\(K=\left\lfloor\dfrac{M+2P-W}{S}\right\rfloor+1\)。该核只挑两个位置:\(y=I[k,l{+}1]+I[k{+}1,l]\)

📝 解答 **(1) $S=1,P=0$**:尺寸 $(5-3)/1+1=3$ → $3\times3$ $$Y=\begin{bmatrix}0&2&1\\1&0&1\\1&2&0\end{bmatrix}$$ 例:$y_{12}=I[0,2]+I[1,1]=1+1=2$。 **(2) $S=2,P=0$**:$\lfloor(5-3)/2\rfloor+1=2$ → $2\times2$ $$Y=\begin{bmatrix}0&1\\1&0\end{bmatrix}$$ **(3) $S=1,P=1$**:四周补一圈 0,$(5+2-3)/1+1=5$ → $5\times5$ $$Y=\begin{bmatrix}0&0&0&1&1\\0&0&2&1&0\\0&1&0&1&1\\0&1&2&0&2\\1&1&0&1&0\end{bmatrix}$$ **(4) $S=2,P=1$**:$\lfloor(5+2-3)/2\rfloor+1=3$ → $3\times3$ $$Y=\begin{bmatrix}0&0&1\\0&0&1\\1&0&0\end{bmatrix}$$

题 3 · CNN:池化(作业四·补充2)

特征图 \(F=\begin{bmatrix}2&4&6&1\\6&4&3&2\\0&2&2&1\\7&3&0&1\end{bmatrix}\),用 \(2\times2\)、步幅 2 的池化。求平均池化与最大池化结果。

📝 解答 四个 $2\times2$ 窗口(不重叠):左上 $\{2,4,6,4\}$、右上 $\{6,1,3,2\}$、左下 $\{0,2,7,3\}$、右下 $\{2,1,0,1\}$。 **平均池化**(每窗取均值): $$\begin{bmatrix}\frac{2+4+6+4}{4}&\frac{6+1+3+2}{4}\\[4pt]\frac{0+2+7+3}{4}&\frac{2+1+0+1}{4}\end{bmatrix}=\begin{bmatrix}4&3\\3&1\end{bmatrix}$$ **最大池化**(每窗取最大): $$\begin{bmatrix}6&6\\7&2\end{bmatrix}$$

题 4 · SVM:核函数 + 对偶 + 决策(异或例)

⚠️ 老师说 SVM 异或问题"太难、不一定考";但它是核 SVM 计算的标准范例,把流程吃透,例题 7.2 同理可解。

4 个样本(异或型,线性不可分):

\[x_1=[-1,-1],y_1=-1;\quad x_2=[-1,1],y_2=1;\quad x_3=[1,-1],y_3=1;\quad x_4=[1,1],y_4=-1\]

取多项式核 \(K(x,z)=(1+x^{\mathsf T}z)^2\)(对应映射 \(\phi(x)=[1,x_1^2,\sqrt2 x_1x_2,x_2^2,\sqrt2 x_1,\sqrt2 x_2]^{\mathsf T}\))。 求:(1) 核矩阵 \(K\);(2) 对偶问题;(3) 决策函数。

📝 解答 **(1) 核矩阵**:$x_i^{\mathsf T}x_i=2\Rightarrow K(x_i,x_i)=(1+2)^2=9$;任意 $i\ne j$ 有 $x_i^{\mathsf T}x_j\in\{0\}$ 使 $K=(1+0)^2=1$: $$K=\begin{bmatrix}9&1&1&1\\1&9&1&1\\1&1&9&1\\1&1&1&9\end{bmatrix}$$ **(2) 对偶问题**: $$\min_{\boldsymbol\alpha}\ \tfrac12\sum_{i}\sum_{j}\alpha_i\alpha_j y_iy_jK(x_i,x_j)-\sum_i\alpha_i\quad\text{s.t.}\ \sum_i\alpha_iy_i=0,\ \alpha_i\ge0$$ 约束代入 $y$:$-\alpha_1+\alpha_2+\alpha_3-\alpha_4=0$。对各 $\alpha_i$ 求偏导联立解得 $$\alpha_1^\*=\alpha_2^\*=\alpha_3^\*=\alpha_4^\*=\tfrac18\ (>0)\ \Rightarrow\ \text{all 4 are support vectors}$$ **(3) 决策函数**:最优超平面 $\sum_i\alpha_i^\*y_iK(x_i,x)=\tfrac18\bigl[-K(x_1,x)+K(x_2,x)+K(x_3,x)-K(x_4,x)\bigr]$。 代入 $K(x_i,x)=(1+x_i^{\mathsf T}x)^2$ 展开化简得 $-x_1x_2=0$,故 $$f(x)=\operatorname{sgn}(-x_1x_2)$$ (验证:$x_1$ 处 $-(-1)(-1)=-1<0$ 判 $-1$ ✓,与 $y_1$ 一致;其余同理。) > 套路通用(例题 7.2 也这样):写核/内积矩阵 → 写对偶目标 + 约束 → 求 $\alpha^\*$ → 由支持向量得超平面与决策函数。

🔗 相关原理:SVM/03-对偶问题与KKTSVM/04-软间隔与核函数

02 · 概念题速答(简答 / 填空)

取自各章作业的概念题,按"简答能答上、填空不丢分"整理。


1. 人工智能/机器学习/表示学习/深度学习的隶属关系(作业一·1)

四者是层层包含关系(韦恩图:一个套一个):

flowchart TB
    AI["人工智能 AI"] --> ML["机器学习 ML"] --> RL["表示学习"] --> DL["深度学习 DL"]

深度学习 ⊆ 表示学习 ⊆ 机器学习 ⊆ 人工智能

  • 人工智能:让机器模拟/延伸人的智能。
  • 机器学习:从有限观测数据学出一般规律,用于预测。
  • 表示学习:能自动学出有效特征的机器学习方法。
  • 深度学习:用有深度的模型自动学习多层次特征表示(底层→中层→高层),也称深度神经网络。

⚠️ 画韦恩图:四个同心椭圆从外到内 AI⊃ML⊃表示学习⊃DL。


2. 三种激活函数及表达式(作业二·2)

名称 表达式 导数
Sigmoid \(\sigma(z)=\dfrac1{1+e^{-z}}\) \(\sigma(1-\sigma)\)
tanh \(\dfrac{e^z-e^{-z}}{e^z+e^{-z}}\) \(1-\tanh^2 z\)
ReLU \(\max(0,z)\) \(\mathbb 1[z>0]\)

详见 前馈/02-激活函数


3. 神经元(感知机)模型的局限(作业二·3)

单个神经元/感知机是线性分类器不能解决线性不可分问题,典型如异或 (XOR)。 需要引入隐层(多层网络)才能解决。详见 前馈/01 例:异或


4. 多层前馈网络结构图(作业二·1 / 三·4)

✍️ 画图要点:标注符号层间全连接偏置 +1 可画可不画(图上随意,但数学模型公式里 \(z=W^{\mathsf T}x+b\)\(+b\) 必写)。中间多个隐层可用省略号;注意是全连接

例:输入 \(\boldsymbol x=(x_1,x_2,x_3,x_4)\)、隐层1 为 5 个神经元、隐层2 为 4 个神经元、输出 \(\boldsymbol y=(y_1,y_2,y_3)\)

flowchart LR
    subgraph 输入["输入层 (4)"]
      x1; x2; x3; x4
    end
    subgraph H1["隐层1 (5)"]
      a1; a2; a3; a4; a5
    end
    subgraph H2["隐层2 (4)"]
      b1; b2; b3; b4
    end
    subgraph OUT["输出层 (3)"]
      y1; y2; y3
    end
    输入 --> H1 --> H2 --> OUT
    bias1["+1"] --> H1
    bias2["+1"] --> H2
    bias3["+1"] --> OUT

(实际作答时把每个结点和权重 \(w^{(t)}_{ji}\)、偏置 \(b^{(t)}_j\) 标全。)


5. CNN 的三个主要构成层及数学表达(作业四·补充3)

flowchart LR
    C["卷积层\nY=W*X+b"] --> A["激活层\na(·), 如 ReLU"] --> P["池化层\nmax/avg 下采样"]
  1. 卷积层\(\boldsymbol Y=\boldsymbol W*\boldsymbol X+b\)(局部连接、参数共享)。
  2. 激活层:逐元素非线性 \(a(\cdot)\),常用 ReLU。
  3. 池化层:对邻域取最大/平均,下采样、增强不变性。

6. 卷积 / 池化输出尺寸公式(作业四·补充4)

输入 \(M\times N\)、核 \(W\times W\)、填充 \(P\)、步幅 \(S\)

\[M_1=\left\lfloor\frac{M+2P-W}{S}\right\rfloor+1,\qquad M_2=\left\lfloor\frac{N+2P-W}{S}\right\rfloor+1\]

池化通常不填充(\(P=0\)):\(M_1=\left\lfloor\dfrac{M-W}{S}\right\rfloor+1\),同理 \(M_2\)


7. RNN 相关(作业五)

  • 5 个循环神经网络的例子:简单循环网络 SRNN、LSTM、GRU、深度循环网络、双向循环网络。
  • 2 个基于门控机制的循环网络LSTMGRU
  • 三类网络对应的数据:前馈→向量;CNN→矩阵;RNN→序列

详见 RNN/01-五种RNN架构