06 · 第 6 讲:多层感知机与神经网络训练
← 返回课程目录来源说明:本文由 AI 根据课程课件整理生成。学习和引用时请结合原课件核实。
本文目录
The original article content is not automatically translated.
本文最后更新于 2026年11月9日 下午
北京大学《机器学习概论》(2026 秋)的课程笔记。
第六讲:线性模型学不出弯曲的边界,可以先手工设计复杂特征。但如果特征也交给模型学习,会发生什么?
多层感知机给出了答案,同时带来了新的问题:参数那么多,梯度怎样算,深层网络怎样训?
第 1 章:从固定特征到学习特征
线性模型 的能力取决于输入特征。人为设计基函数 后可以用 表达非线性,但基函数是否合适仍靠人工。
多层感知机(MLP)让特征变换本身可学习:。没有非线性激活时,多层线性变换仍等价于单层线性变换。
万能逼近定理说某些足够宽的网络可逼近连续函数,并不保证有限数据下容易学到、也不保证泛化。
第 2 章:反向传播究竟算什么
给定损失 ,链式法则逐层把输出端的梯度传回输入端。
令 ,误差信号 ;
则 ,前一层误差由 乘上激活函数导数得到。
反向传播不是另一种优化器,它是高效求梯度的算法;得到梯度后才由 SGD 等优化器更新参数。
Jacobian–vector product 与 vector–Jacobian product 也解释了:自动微分为什么不必显式构造巨大的 Jacobian。
第 3 章:为什么深层网络难训练
梯度跨很多层时反复乘矩阵和激活函数导数,可能指数式缩小或放大,分别造成梯度消失和爆炸。sigmoid 在饱和区导数小;ReLU 在正半轴导数稳定但负半轴可能“死亡”,Leaky ReLU/ELU 是相关改进。
合适的随机初始化希望信号在层间保持合理尺度,批归一化利用 mini-batch 统计量规范化中间表示,训练和推理时使用的统计量不同。
残差连接 提供更直接的梯度通路。
第 4 章:优化与防过拟合
mini-batch SGD 在计算效率与梯度噪声之间折中;动量、按参数调整步长的方法以及学习率日程改善训练。批大小、初始学习率和衰减策略要一起考虑。
早停依据验证集表现停止训练, 惩罚限制过大的权重,Dropout 在训练时随机屏蔽部分单元以减轻共适应。现代实现通常采用“倒置 Dropout”:训练时把保留下来的激活除以保留概率,推理时关闭随机屏蔽且无需再缩放。它们控制容量的方式不同,不能代替合理的数据划分。
第 5 章:用两层网络走一遍反向传播
先写出前向计算:、、、。真实类别 用 one-hot 向量表示,损失为 。
那么从哪里开始往回求导?当然从损失直接连接的输出层开始:
- softmax 与交叉熵合起来,得到 。
- 因为 ,所以 、。
- 输出层传给隐藏层的梯度先乘 ,再乘激活函数导数:。
- 最后 、。
表示逐元素相乘。检查每个梯度的维度是否与对应权重一致,是检查推导是否漏了转置的好方法。
对 mini-batch,把每个样本的梯度求和或平均,然后才更新一次权重。共享参数或分支计算图中,同一参数收到多条路径的梯度要相加;反向传播沿计算图反序遍历即可。
第 6 章:梯度消失、初始化和残差的数学直觉
跨 层的梯度包含 。若这些因子的典型尺度长期小于 1,梯度缩小;大于 1 则放大。
Xavier/He 类初始化按输入输出宽度调整权重方差,试图让前向激活和反向梯度在层间保持合理尺度。
残差块 的 Jacobian 是 ,即使 的通路较难训练,仍有恒等通路帮助信息传播。它不能单独保证梯度绝不爆炸或消失。
第 7 章:归一化和正则化的操作细节
Batch Normalization 对一批激活求均值 与方差 ,计算 ,再学习缩放和平移 。
推理时若继续依赖当前单样本的 batch 统计,结果会和训练时不一致,因此通常使用训练中累计的统计量。Dropout 训练时随机置零并按保留概率缩放,推理时关闭随机屏蔽。早停要监控验证集而非训练集,否则无法识别过拟合。
第 8 章:激活函数的选择
Sigmoid 将值压到 ,适合作为二分类输出概率,但在两端饱和区导数接近零;tanh 输出以零为中心,仍会饱和。
ReLU 在正半轴梯度为 1,计算简单,但负半轴梯度为零,部分神经元可能长期不激活。Leaky ReLU 在负半轴保留小斜率,ELU 使用平滑的负侧曲线。
Softmax 是将一组得分变为总和为 1 的多类概率,通常用于输出层;它不是逐元素独立激活。
第 9 章:早停与权重惩罚的联系与区别
从较小随机权重开始训练时,早期迭代往往先学到较明显的规律;继续优化可能逐渐追随训练噪声。早停选择验证损失最低附近的参数,它通过限制优化轨迹间接控制复杂度。
在目标函数中显式惩罚权重,Dropout 在训练中随机改变网络结构,三者都可能改善泛化,但不能相互视作完全等价。若类别不平衡,单看准确率还可能掩盖小类错误,验证指标要与任务目标一致。
反向传播计算各参数的导数,优化器利用这些导数更新参数。初始化、归一化和残差连接有助于训练,正则化、Dropout 和早停则用于改善泛化。
补充:非线性究竟增加了什么
多层线性层可以合并成一层线性变换,深度本身不会让它表示弯曲边界;激活函数才让网络能够表达 XOR 一类线性不可分关系。基函数扩展也能引入非线性,但特征由人预先指定;神经网络的特点是把表示和预测一起从数据中学习。