Lecture 3 总体进化树

监督学习概率模型
P(y | x)

深度学习视角
x → h = f(x; θ) → P(y | h)

Feedforward Neural Network / MLP
多层仿射变换 + 非线性激活

训练问题
min_θ J(θ)

反向传播
高效计算所有参数梯度

优化算法
SGD → Momentum → AdaGrad/RMSProp → Adam

泛化控制
Weight decay + Dropout

理论问题
Universal approximation + approximation rate + SGD convergence

重要程度标注: ★★★:期末核心,必须掌握公式与推导。 ★★:重要概念,常用于解释或简答。 ★:理解即可,通常不深考。

1. 从传统概率模型到 FNN:本章核心目标 ★★★

之前的监督学习通常直接学习:

深度学习把这个过程拆成两部分:

其中:

是神经网络学到的特征表示;而

是在特征空间上的概率模型。整体仍然是:

其中 包括所有隐藏层参数和输出层概率模型参数。

逻辑直觉:传统机器学习依赖人工特征;FNN 的目标是自动学习特征变换 (h=f(x)),让后面的分类或回归模型更容易工作。

2. Feedforward Neural Network 基本结构 ★★★

一个 FNN 定义函数:

训练目标是让它逼近某个目标函数:

一个神经元接受输入向量 (x),先做仿射变换:

再经过非线性激活:

符号说明:

是输入向量;

是权重向量;

是偏置;

称为 net input,即激活前输入;

是激活函数。

如果网络有 (L) 层,则整体是函数复合:

关键点:如果所有层都是线性的,那么多层线性函数复合仍然是线性函数。因此深度本身不够,必须加入非线性激活。

3. 权重初始化 ★★★

初始化的目标是避免前向信号或反向梯度在层间爆炸或消失。

Xavier initialization

其中 (n) 是该神经元的输入维度。通常用于 tanh。

直觉:保持每层输入输出方差大致稳定。

He / Kaiming initialization

课件写作:

更常见标准表述是:

或标准差为:

通常用于 ReLU,因为 ReLU 会把一部分负值截断为 0,需要更大的方差补偿。

4. 激活函数演进:从 Sigmoid 到 GELU ★★★

激活函数的核心问题是:既要提供非线性表达能力,又要保证梯度好传播。

4.1 Sigmoid:概率解释强,但隐藏层不推荐 ★★★

导数为:

问题:当 时, 接近 1 或 0,导数接近 0,产生 vanishing gradient。

所以 sigmoid 不推荐作为隐藏层激活,但适合二分类输出层。

4.2 ReLU:解决梯度消失,但引入 dead neuron ★★★

导数为:

优点:当 z > 0 时梯度恒为 1,训练更快。

缺点:如果某个神经元对所有训练样本都有 z < 0,则梯度为 0,参数无法更新,称为 dead neuron。

缓解方法:把 bias 初始化为小正数,例如:

4.3 ReLU variants:给负半轴保留梯度 ★★

统一形式:

不同取值:

是 absolute value rectification;

是 Leaky ReLU;

可学习时是 Parametric ReLU。

核心改进:当 时仍有非零梯度,缓解 dead neuron。

4.4 Tanh:零中心但仍会饱和 ★★

相比 sigmoid,tanh 输出范围是 ([−1,1]),零中心,梯度通常更大。但当 (|z|) 很大时仍然饱和。

4.5 Swish, Mish, GELU:现代深层网络常用 ★★

Swish:

其中 可以固定或学习。

Mish:

其中:

是 softplus。

GELU:

其中 是标准高斯分布的 CDF。

共同特点:平滑、负半轴非零梯度、非单调、上方无界,因此深层网络中通常比 ReLU 更稳定。

4.6 Softplus:ReLU 的光滑版本 ★

它是 ReLU 的平滑近似,但经验上通常不如 ReLU。

5. 输出层概率模型 ★★★

FNN 的前面层给出:

最后一层先产生 logits:

其中 (W) 是权重矩阵,(b) 是偏置向量,

5.1 Linear-Gaussian 输出:回归 ★★★

当 (y) 是实值向量时:

负对数似然为:

对 logit (z_k) 求导:

直觉:预测值减真实值,就是回归误差。

5.2 Sigmoid 输出:二分类 ★★★

当:

使用 Bernoulli:

损失为:

关键导数:

推导直觉:交叉熵和 sigmoid 的导数会抵消一部分复杂项,因此输出层即使 sigmoid 饱和,也只有在模型已经答对且非常自信时梯度才接近 0。

5.3 Softmax 输出:多分类 ★★★

当:

softmax 定义为:

交叉熵损失对 logit 的导数为:

其中 ) 是指示函数。

直觉:梯度 = 预测概率 − 真实 one-hot 标签。

6. 训练目标与 SGD ★★★

总体经验风险:

SGD minibatch 更新:

其中 (B) 是 minibatch, 是学习率。

核心问题:如何高效计算所有参数的梯度?

答案:Backpropagation。

7. Backpropagation 反向传播 ★★★

课件使用三层局部结构:

其中:

(u_i):上一层第 (i) 个单元输出; (z_j):当前隐藏单元 (j) 的激活前输入; (u_j):隐藏单元 (j) 的激活后输出; (z_k):下一层或输出层单元 (k) 的激活前输入; :从 (i) 到 (j) 的权重; :从 (j) 到 (k) 的权重。

7.1 输出层梯度

因为:

所以:

定义 error signal:

因此:

7.2 隐藏层梯度

链式展开:

其中:

所以:

定义:

得到:

偏置梯度:

核心直觉:每个权重的梯度 = 输入激活 × 目标单元误差信号。

8. 优化算法演进 ★★★

8.1 SGD:只看当前梯度 ★★★

问题:梯度噪声大,路径震荡,尤其在狭长 valley 中收敛慢。

8.2 Momentum:引入速度,减少震荡 ★★★

其中 (v) 是速度, 是 momentum 系数,常用:

直觉:参数像物理粒子一样在 loss landscape 中运动。过去梯度方向会累积,随机震荡会相互抵消,稳定方向会被加强。

8.3 AdaGrad:每个参数自适应学习率 ★★

累积平方梯度:

更新:

其中 表示 element-wise multiplication。

优点:对稀疏特征友好,历史梯度小的参数学习率较大。

问题:(r) 单调增加,学习率会越来越小,后期可能几乎不动。

8.4 RMSProp:遗忘太久远历史 ★★★

相比 AdaGrad,RMSProp 使用指数滑动平均,不会无限累积历史梯度。

问题:它有 adaptive scaling,但没有显式 momentum,因此方向仍可能噪声较大。

8.5 Adam:Momentum + RMSProp ★★★

Adam 同时维护一阶矩和二阶矩:

bias correction:

更新:

默认值:

直觉: 像 momentum,稳定方向; 像 RMSProp,自适应缩放每个维度。

9. Learning Rate Scheduling ★★

优化器决定“如何使用梯度”,learning rate schedule 决定“步长如何随时间变化”。

常见策略:

固定学习率

逐步衰减 step decay

指数衰减 exponential decay

cosine annealing / warm restart

Cosine annealing 的直觉:周期性降低再重启学习率,相当于模拟重新开始搜索,但使用已有较好权重作为 warm start。

10. Overfitting 与 Dropout ★★★

深度模型参数多,容易 overfit。常用 weight decay:

其中 控制正则化强度。

10.1 Bagging 思想 ★★

Bagging 训练多个模型,每个模型使用不同 bootstrap sample,预测时投票。它降低 variance,因为不同模型不太可能犯同样错误。

但对 FNN 来说,训练多个大网络太贵。

10.2 Dropout:廉价近似 bagging ★★★

Dropout 给输入单元和隐藏单元加二值 mask:

训练时实际输出:

如果 (m_j=0),该单元被临时移除;如果 (m_j=1),该单元保留。

每个 minibatch 随机采样 mask,然后做一次梯度下降。只有 mask 为 1 的单元对应参数会被更新。

核心直觉:Dropout 在一个大网络中随机训练许多子网络,防止神经元之间形成过强 co-adaptation,从而减少 overfitting。

11. 近似理论 Appendix ★★

11.1 单隐藏层网络形式 ★★

其中:

(m):隐藏单元数; (a_i):输出层线性组合系数; (w_i):第 (i) 个隐藏单元权重; (b_i):偏置; :非线性激活函数。

直觉:每个隐藏单元是一个非线性 basis function,输出是这些 basis 的线性组合。

11.2 Universal Approximation Theorem ★★★

是 compact set, 是连续非多项式激活函数,则对任意连续函数 (f) 和任意 ,存在足够大的 (m),使得:

结论:单隐藏层 MLP 理论上可以逼近任意连续函数。

但注意:这只说明存在性,不说明需要多少神经元,也不说明容易训练。

11.3 Barron class 与浅层网络近似率 ★★

Barron norm:

如果 ,则存在一个 (m) 个隐藏单元的单隐藏层网络,使得:

即:

优点:维度无关。 缺点:收敛慢,而且没有利用 compositional structure。

11.4 深层网络近似率 ★★★

如果函数具有层级组合结构:

每个 component function 只依赖至多:

个变量,且属于 Sobolev space:

则存在 (N) 个参数的深层网络:

而一般浅层网络对:

的最优近似率为:

关键对比:浅层网络有 curse of dimensionality;深层网络可以利用组合结构,把高维函数拆成低维组合,从而显著提升近似效率。

12. SGD 收敛理论 Appendix ★★

12.1 SGD 更新与假设 ★★★

其中 (g_t) 是 stochastic gradient,并满足无偏性:

方差有界:

目标函数 (L)-smooth:

12.2 One-step progress ★★★

代入:

得到:

取条件期望:

利用:

得到:

12.3 Non-convex 收敛 ★★★

若:

则:

最终得到:

含义:非凸 SGD 通常不能保证到全局最优,只能保证趋近 first-order stationary point。

12.4 Convex 收敛 ★★

若 (f) convex 且:

展开距离:

利用 convexity:

得到:

选:

则:

即:

12.5 Strongly convex 收敛 ★★

若 (f) 是 -strongly convex:

得到递推:

当:

有:

13. 方法对比总表

| 模块 | 方法 | 解决什么问题 | 局限 | | —- | ————— | ————————— | ——————- | | 激活函数 | Sigmoid | 概率输出自然 | 隐藏层易梯度消失 | | 激活函数 | ReLU | 正半轴梯度稳定,训练快 | dead neuron | | 激活函数 | Leaky/PReLU | 负半轴保留梯度 | 多一个斜率超参或参数 | | 激活函数 | GELU/Swish/Mish | 平滑、现代深层网络优化好 | 计算略复杂 | | 优化 | SGD | 简单、基础 | 噪声大,收敛慢 | | 优化 | Momentum | 减少震荡,加速 | 需调 momentum | | 优化 | AdaGrad | 参数级自适应学习率 | 学习率单调衰减 | | 优化 | RMSProp | 遗忘久远历史 | 缺少 momentum | | 优化 | Adam | Momentum + adaptive scaling | 有时泛化不如 SGD | | 正则化 | Weight decay | 惩罚大权重 | 不能完全防 co-adaptation | | 正则化 | Dropout | 近似 bagging,减少 co-adaptation | 训练噪声增加 |

14. 期末最可能考的核心公式

必须熟练:

15. 一句话总结

本章的主线是:FNN 用多层非线性函数复合学习特征表示,用概率输出层定义监督学习目标,用反向传播高效计算梯度,用 SGD/Adam 等算法优化参数,并通过 weight decay/dropout 控制过拟合;理论上,浅层网络保证“能表示”,深层网络进一步解释“为什么更高效”。