Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4
2586 字
13 分钟
多层感知机:从架构设计到正则之道
2026-03-14
统计加载中...

在机器学习的早期,线性模型因其简洁和高效而备受青睐。然而,现实世界的数据关系往往错综复杂,远非一条直线或一个平面所能刻画。为了摆脱线性的束缚,研究者们引入了多层感知机。其核心思想在于:通过添加一个或多个隐藏层,并在层与层之间引入非线性激活函数,从而实现从线性到非线性的华丽跨越。

一个单隐藏层的多层感知机,具有5个隐藏单元

深度 vs. 宽度:一场关于“聪明”的较量#

在深度学习界,有一个近乎共识的观点:“深而窄”的网络通常优于“浅而宽”的网络。这背后是两种截然不同的学习范式。

  • 深层网络(深而窄):它像一个经验丰富的侦探,采取层次化特征学习的策略。先观察局部细节(如笔画、边缘),再组合成整体结构(如偏旁、部件),最后理解全局语义(如词语、句子)。这个过程是递进的、抽象的。
  • 浅层网络(浅而宽):它则像一个试图一目十行、过目不忘的初学者。为了达到与深层网络同等的表达能力,它需要指数级增长的神经元数量,试图“一眼”记住整页内容的所有细节。

深层网络的魔力在于,它通过每一层的非线性变换,不断地对输入空间进行折叠与扭曲,从而能用相对较少的神经元表达极其复杂的函数。然而,这份“聪明”也伴随着“娇气”。

深度网络的挑战

当你将网络堆叠到10层甚至更高时,两个经典难题便会浮现:

  1. 梯度消失/爆炸:误差信号(梯度)在反向传播过程中,经过层层传递,可能会变得微乎其微(消失)或急剧膨胀(爆炸),导致底层的权重几乎无法得到有效更新。
  2. 优化困难:损失函数的“地形”随着网络加深变得异常崎岖(像“喜马拉雅山脉”),充满了局部极小值和鞍点,优化器很容易陷入其中,无法找到全局最优解。

此外,浅层网络为了弥补深度的不足而盲目增加宽度,往往会记住大量训练数据中的噪声和无关细节,从而导致严重的过拟合问题。

驯服深度:训练有效多层网络的三板斧#

那么,如何确保这些“娇气”的深层网络能够被有效训练呢?以下是奠定现代深度学习基础的三大关键技术。

1. 激活函数的革命:从 Sigmoid 到 ReLU#

早期神经网络普遍使用 Sigmoid 函数。但它有一个致命缺陷:当输入值的绝对值很大时,其导数(梯度)会趋近于0。

TIP

Sigmoid 的困境:想象一个传声筒游戏,每一层都将声音信号衰减到原来的十分之一。传到第10层时,最初的声音已微弱到无法辨识。这就是梯度消失,它导致网络深层参数无法更新。

ReLU 函数的出现改变了游戏规则:ReLU(x) = max(0, x)。它在正区间的导数恒为1。

ReLU函数图像

这意味着只要神经元处于激活状态,梯度就能无损地反向传播,从根本上缓解了深度网络中的梯度消失问题,极大地加速了训练过程。

2. 损失函数的抉择:交叉熵 vs. 均方误差#

对于分类任务,交叉熵损失 已基本取代了传统的均方误差

  • 交叉熵:当模型预测完全错误时,它会给出一个非常大的梯度,迫使模型“知错就改”,快速调整。
  • 均方误差 + Sigmoid:当预测值接近0或1(即非常自信)时,梯度会变得极小,导致模型过早“躺平”,停止学习。

3. 训练稳定性的双保险:初始化与规范化#

仅有合适的激活和损失函数还不够,我们还需要为深度网络提供稳定的训练环境。

  • 权重初始化:如果初始权重设置不当,信号在前向传播第一层就可能崩溃。XavierKaiming (He) 初始化方法被设计出来,其目标是使每一层输出的方差保持稳定,为训练提供一个良好的起点。
  • 批量规范化:这是深度学习中的一项“神技”。它对每一层的输入进行标准化处理(减均值、除标准差),确保数据始终分布在激活函数(如ReLU)的敏感区域。这不仅能加速收敛,还允许使用更高的学习率,并具有一定的正则化效果。
思考题 #1

如果你在训练一个10层网络时,发现模型在训练集上表现极好(准确率99%),但在测试集上表现很差(准确率仅60%),你认为问题出在哪里?你会尝试用什么手段纠正它?

这种现象是典型的过拟合。模型完美地记住了训练数据,包括其中的噪声,但未能学会可泛化的规律。要解决它,我们需要给“过于聪明”的模型加上约束

正则化之道:为模型戴上“紧箍咒”#

正则化的核心思想是:通过给模型增加一些限制,防止其过度复杂化,从而提升泛化能力。以下是深度学习中最常用的“正则化三件套”。

权重衰减:给贪婪的模型“抽税”#

权重衰减,即 L2正则化,在损失函数后添加一项惩罚项:损失 = 原始损失 + (λ/2) * ||w||²

  • 直白解释:模型为了完美拟合每一个训练点(包括噪声),会倾向于使用非常大的权重,导致函数曲线剧烈波动。权重衰减就像是对权重的平方“征税”,权重越大,税越高。为了最小化总“成本”,模型会自觉地将权重保持在较小的值。
  • 深度洞察:权重小的模型具有平滑性——输入特征的微小变化不会引起输出的剧烈震荡。一个平滑的函数对新数据的适应能力更强。

暂退法:让神经元学会“独立行走”#

如果说权重衰减是温和的经济调控,那么暂退法就是一场暴力的“随机裁员”。

  • 操作:在每一轮训练中,以概率 p 随机将隐藏层中的一部分神经元输出置为零。
  • 直白解释:这迫使剩下的神经元不能依赖固定的“队友”。例如,识别“猫”时,如果“耳朵”探测器被临时丢弃,网络必须学会通过“胡须”或“眼睛”等特征来做出判断。
  • 深度洞察:它打破了神经元间的共适应性,迫使每个神经元都成为“多面手”。从集成学习的角度看,Dropout相当于在训练大量共享权重的子网络,测试时则综合了这些子网络的“集体智慧”。

特别注意:Dropout 仅用于训练阶段。在测试或推理时,必须关闭Dropout,并使用所有神经元,同时通常需要对权重进行缩放(如乘以 1-p),以保证输出的期望值稳定。

早停法:在过拟合发生前“踩刹车”#

这是最简单直观的正则化方法。在训练过程中持续监控模型在验证集上的表现。一旦验证误差停止下降并开始上升,就立即停止训练。这相当于选择了训练过程中泛化能力最好的那个模型快照。

特性权重衰减 (Weight Decay)暂退法 (Dropout)
操作对象权重参数 w神经元的激活值 h
核心手段惩罚大的权重,使其趋向于 0随机将一部分神经元输出设为 0
物理意义追求函数平滑,控制模型复杂度模拟“集成学习”,增强特征鲁棒性
常见位置通常应用于全网络所有权重常见于全连接隐藏层,CNN后期
思考题 #2

如果让你为这个10层网络设计Dropout策略,你会让靠近输入的层丢弃概率高一些,还是靠近输出的层高一些?为什么?

在实际应用中,我们通常遵循 “前轻后重” 的原则:

  • 底层(靠近输入):这些层负责提取基础特征(如边缘、纹理),是信息的“源头”。如果在这里施加高强度的Dropout,就像在食材处理阶段随机扔掉盐和油,极易导致信息丢失,造成欠拟合和收敛缓慢。因此,这里的Dropout概率通常较低,甚至为0。
  • 高层(靠近输出):这些层负责高级语义组合,神经元间容易形成复杂的“共适应性”,死记硬背训练样本。在这里施加较高的Dropout概率,能有效打破这种依赖,迫使网络学习更通用、更鲁棒的特征表示。

总结#

多层感知机通过引入隐藏层和非线性激活函数,开启了神经网络建模复杂世界的大门。然而,“深度”是一把双刃剑,它带来了强大的表达能力,也引入了梯度消失、优化困难与过拟合等挑战。通过 ReLU家族激活函数交叉熵损失精心设计的初始化批量规范化,我们为深度网络的训练铺平了道路。进一步,通过 权重衰减暂退法早停法 等正则化技术,我们为这个强大的模型套上“缰绳”,引导其学习数据中本质的、可泛化的规律,而非表面的噪声。

多层感知机:从架构设计到正则之道
https://blog.solmount.top/posts/mlp1/
作者
空 柏
发布于
2026-03-14
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00