李沐深度学习 · 第33-35集 三合集知识卡
第33-35集:多层感知机三部曲
MLP 首次完整落地 🧠
33 · 22:40
MLP 理论
34 · 08:27
代码实现
35 · 26:49
QA 答疑
35 / 191
进度 18.3%
🏗️ 第33集:多层感知机
隐藏层 + 非线性 = 万能逼近
h = σ(W₁x + b₁) → o = W₂h + b₂ (σ = 激活函数,注入非线性)
激活函数
公式
值域
特点
sigmoid
1/(1+e⁻ˣ)
(0,1)
易梯度消失、非零中心
tanh
(eˣ−e⁻ˣ)/(eˣ+e⁻ˣ)
(−1,1)
零中心,仍有饱和区
ReLU ⭐
max(0, x)
[0,+∞)
计算最快、无饱和区,默认首选
📐 无隐藏层之痛
线性套线性仍是线性 → 多少层都画不出 XOR 的分界线
⚡ 非线性是灵魂
没有 σ 网络再深也只是线性模型;有 σ 才能逼近任意函数
🎯 万能近似
足够宽的单隐藏层可逼近任意连续函数(实践用深度换效率)
💻 第34集:代码实现
nn.Sequential 十行搭网络
Sequential(Flatten → Linear(784,256) → ReLU → Linear(256,10))
🧱 架构
28×28=784 输入 → 256 隐藏单元(2 的幂,GPU 友好)→ 10 类输出
♻️ 训练流程复用
交叉熵 + SGD 原封不动,只换模型定义——框架解耦的好处
📈 效果
Fashion-MNIST 10 epoch ≈ 88%,比纯 Softmax(≈84%) 高 4 个点
❓ 第35集:QA 精选
调参与设计的实战心法
Q:隐藏层多大?
256 是经验值;取 2 的幂方便硬件计算,过大过拟合、过小欠拟合
Q:越深越好?
不是。深而窄 ≈ 浅而宽的表达力,但更深训练更难(梯度问题)
Q:非凸能训吗?
损失函数非凸,但 SGD 实践中总能找到足够好的局部解
Q:不收敛咋办?
先查学习率(最常见元凶),再查数据归一化与参数初始化
Generated with
Tabbit.