沐神-动手学深度学习4.1多层感知机MLP课后习题
·
这篇文章正式带你进入了**“深度学习”的大门。之前的线性回归和 Softmax 回归都只有一层,而这一节介绍的多层感知机(MLP)**通过增加“隐藏层”,让模型拥有了处理复杂非线性问题的能力。
- 通俗解释:什么是多层感知机?
核心概念:打破“线性”的诅咒
- 为什么要加层? 线性模型(如前几章内容)只能处理简单的线性规律(比如“房价随面积线性增长”)。但现实世界更复杂,比如图像识别,像素之间的关系是非线性的。
- 隐藏层(Hidden Layer):在输入和输出之间加入一层或多层神经元,这些层被称为“隐藏层”。
- 激活函数(Activation Function):这是 MLP 的灵魂。如果只是简单地堆叠多个线性层,由于线性组合叠加后依然是线性的,模型依然无法处理复杂问题。激活函数(如 ReLU、Sigmoid)会给模型注入“非线性”,使其能够拟合几乎任何复杂的函数。
常见的激活函数 - ReLU (整流线性单元):最常用的。如果输入大于 0 就原样输出,小于 0 就输出 0。它计算快,且有助于解决梯度消失问题。
- Sigmoid:将输入压缩到 (0, 1) 之间。以前很流行,但现在更多用于输出层(如二分类问题)。
- Tanh (双曲正切):将输入压缩到 (-1, 1) 之间,均值为 0。
- 习题答案解析
Q1: 证明:如果我们在隐藏层中仅使用线性激活函数,那么具有一个隐藏层的多层感知机仍然是一个线性回归模型。
证明思路:
假设输入为 \mathbf{X},隐藏层的权重和偏置为 \mathbf{W}_1, \mathbf{b}_1,输出层的权重和偏置为 \mathbf{W}_2, \mathbf{b}_2。
如果没有非线性激活函数,输出 \mathbf{O} 为:
\mathbf{O} = (\mathbf{X} \mathbf{W}_1 + \mathbf{b}_1) \mathbf{W}_2 + \mathbf{b}_2
展开后得:
\mathbf{O} = \mathbf{X} (\mathbf{W}_1 \mathbf{W}_2) + (\mathbf{b}_1 \mathbf{W}_2 + \mathbf{b}_2)
令 \mathbf{W}_{new} = \mathbf{W}_1 \mathbf{W}2,\mathbf{b}{new} = \mathbf{b}_1 \mathbf{W}2 + \mathbf{b}2。
则 \mathbf{O} = \mathbf{X} \mathbf{W}{new} + \mathbf{b}{new}。
这在形式上与单层线性回归完全一致,证明了没有非线性激活,深层网络就会退化为单层线性模型。
Q2: 假设我们有一个特征量为 d 的输入,隐藏层有 h 个单元。输出层有 q 个单元。计算该 MLP 的参数个数(包括偏置)。
解析:
- 输入层到隐藏层:权重矩阵大小为 d \times h,偏置向量大小为 h。参数量 = d \times h + h。
- 隐藏层到输出层:权重矩阵大小为 h \times q,偏置向量大小为 q。参数量 = h \times q + q。
- 总计:(d + 1)h + (h + 1)q = dh + h + hq + q。
Q3: 为什么 ReLU 函数比 Sigmoid 函数更受欢迎?
解析: - 计算简单:ReLU 只需要判断是否大于 0,而 Sigmoid 涉及复杂的指数运算,在大规模网络中速度差异明显。
- 缓解梯度消失:Sigmoid 在输入很大或很小时,梯度几乎为 0,导致模型停止学习。ReLU 在正区间的梯度恒为 1,能保持较强的梯度流。
- 稀疏激活:ReLU 会让一部分神经元输出为 0,这增加了网络的稀疏性,有助于提取更有代表性的特征。
Q4: 如果隐藏层太小或太大,会发生什么?
解析: - 太小:模型的“容量”不足,无法捕捉复杂数据的特征,会导致欠拟合。
- 太大:模型参数过多,容易死记硬背训练数据中的噪声,导致过拟合。此外,计算开销也会急剧增加。
Q5: 绘制 ReLU 函数的导数。当输入恰好为 0 时,会发生什么?
解析: - 导数:当 x > 0 时导数为 1;当 x < 0 时导数为 0。
- x = 0 时:在数学上 ReLU 在 0 处不可导。但在实际编程(如 PyTorch)中,为了工程方便,通常默认定义 0 处的导数为 0 或 0.5。这在随机梯度下降中不会产生实质性影响,因为遇到精确为 0 的概率极低。
下一步建议:
理解了 MLP 的理论后,下一节 4.2 节将带你进入“代码实现”。你将亲手编写代码,看到如何通过简单的 nn.Sequential 堆叠出这些复杂的隐藏层。
你想了解如何手动初始化隐藏层的权重(防止模型训练失败),还是直接看 MLP 在 Fashion-MNIST 上的分类效果?
更多推荐

所有评论(0)