MLP(多层感知机)
MLP最基础的全连接网络
亦作、亦称:多层感知机 · Multi-Layer Perceptron
多层感知机(Multi-Layer Perceptron,MLP)是由多层全连接线性变换与非线性激活函数交替堆叠构成的前馈神经网络,是深度学习最基础的构件,从经典分类器到 Transformer 前馈子层无不以其为核心。
概述
MLP 通过多次「线性变换 + 非线性激活」的组合,将输入映射为所需输出,是通用函数逼近器。
- 全连接结构:每层所有神经元与相邻层全部神经元相连,也称「全连接网络(Fully-Connected Network)」。
- 通用近似定理:Cybenko(1989)与 Hornik(1991)分别证明,含足够多隐藏单元的单隐层 MLP 可以以任意精度逼近连续函数。
- 深度优于宽度:实践中更深的网络比极宽的单层更具参数效率,也有更好的泛化能力。
- 无结构假设:与 CNN 不同,MLP 对输入不预设空间或序列结构,因此更通用但参数量更大。
工作原理
每层计算形式为 y = σ(Wx + b),前向传播逐层递推,反向传播更新权重。
- 线性变换 :权重矩阵 W 和偏置 b 对输入做仿射变换(旋转、缩放、平移)。
- 非线性激活 : 激活函数 σ 折叠特征空间,使多层组合后具有非线性表达能力;若去掉激活,任意多层线性叠加等价于单层线性变换。
-常用激活函数:早期为Sigmoid/ Tanh(深层易梯度消失);现代主流为ReLU、 GELU、 SiLU/Swish。
-训练方式 :通过反向传播(Backpropagation)计算梯度,再由 SGD、 Adam等优化器迭代更新参数。
类型与变体
标准 MLP 在不同应用场景中衍生出多种变体。
- GLU / SwiGLU:门控线性单元系列在升维后引入门控机制,LLaMA、PaLM 等大语言模型的 FFN 均采用 SwiGLU。
- Transformer FFN:每个 Transformer 块中的前馈子层本质是两层 MLP,通常先将维度扩大约 4 倍再压回原维度,FFN 参数量通常占 Transformer 块总参数的三分之二左右。
- 混合专家(MoE):将 MLP 替换为多个并行专家子网络,加入路由机制实现稀疏激活,Mixtral 等模型均采用该架构。
- MLP-Mixer(2021):Google 提出的纯 MLP 图像分类架构,用 token-mixing MLP 替代注意力机制处理图像 patch。
应用场景
MLP 既可独立使用,也作为子模块嵌入更复杂的系统。
- 表格数据建模:结构化数据的分类与回归任务中,MLP 加适当正则化往往能与 GBDT(梯度提升树)竞争。
- Transformer FFN 层:研究表明 FFN 存储大量事实性知识,是大语言模型记忆能力的核心来源(Geva 等,2021)。
- 分类器头(Classifier Head):视觉、语音、NLP 模型在特征提取后通常接一个或多个全连接层完成最终分类。
- 策略网络与价值网络:强化学习中 PPO、DQN 等算法的策略函数和价值函数通常由 MLP 实现。
- 生成模型子模块:扩散模型的噪声预测头、VAE 的编解码器、GAN 的判别器均大量使用 MLP。
与相邻概念的区别
MLP 与多个相近概念存在明确边界。
- MLP vs 感知机(Perceptron):感知机通常指单层线性二分类器(Rosenblatt,1957),仅能处理线性可分问题;MLP 有隐藏层和非线性激活,能拟合复杂非线性函数。
- MLP vs CNN:CNN 通过局部连接与权重共享利用空间平移不变性,参数更少;MLP 无结构假设,处理图像参数量庞大。
- MLP vs RNN:RNN 有时序状态,可建模序列依赖;MLP 对位置无感知,处理序列需配合位置编码或注意力机制。
- MLP vs Transformer:Transformer 用注意力机制动态建模元素间关系;但 Transformer 的 FFN 子层本身就是 MLP,二者是包含关系。
局限与误区
MLP 有几个常被误解的局限。
- 万能近似定理被误读:定理仅保证参数「存在」,不保证梯度下降在有限数据和时间内能找到;在实际训练中需要合理的网络规模、数据量和正则化。
- 梯度不稳定:深层 MLP 在没有残差连接和归一化层(Batch Norm / Layer Norm)时极易出现梯度消失或爆炸。
- 无归纳偏置:MLP 对空间局部性和序列顺序无内置假设,在图像、语音等有结构的数据上通常不如 CNN、RNN 参数高效。
- 「MLP 已过时」是误区:SwiGLU FFN、MoE 专家子网络都是 MLP 的直接延伸,现代最先进模型中 MLP 仍处于核心位置。
发展脉络
MLP 的演进跨越半个世纪,与深度学习的发展轨迹高度重合。
- 1957:Rosenblatt 在康奈尔航空实验室提出单层感知机,奠定前馈网络雏形。
- 1969:Minsky & Papert 证明单层感知机无法解决 XOR 问题,导致第一次「AI 寒冬」。
- 1986:Rumelhart、Hinton、Williams 在 Nature 发表反向传播算法,使多层网络训练成为可能,MLP 正式确立。
- 1989/1991:Cybenko 和 Hornik 分别证明通用近似定理,奠定 MLP 理论基础。
- 2010 年代:ReLU 激活函数、Dropout、Batch Norm 的引入使深层 MLP 训练趋于稳定,深度学习复兴。
- 2017:Transformer 提出,MLP 以 FFN 子层形式成为每个注意力块不可或缺的组成部分。
- 2021:Google 提出 MLP-Mixer,验证纯 MLP 架构在视觉任务上的竞争力;同年 Geva 等揭示 FFN 作为知识存储器的机制。
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「最基础的全连接网络」
- 「神经网络入门模型」
- 「Transformer 里的 FFN 亲戚」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 高级编码高频查看详解 →
手撕代码:实现一个两层 MLP 的前向与反向传播
面试里先说主线:前向缓存中间量,反向从 Softmax+CE 的 p-y 开始,一层层按链式法则传回去。
- 高级概念查看详解 →
3D 生成(NeRF / 3D Gaussian Splatting)是什么?
NeRF 用 MLP 拟合体密度与颜色靠体渲染(慢);3D Gaussian Splatting 用显式高斯点光栅化(快、可实时)。
- 中级概念查看详解 →
TensorFlow 中的计算图是什么?
TensorFlow 计算图将运算表示为有向无环图中的节点,边表示张量依赖;1.x 需先建图再用 Session 执行,2.x 默认即时执行但可用 tf.function 编译为图。
- 中级概念查看详解 →
TensorFlow Lite 是什么?适用于哪些场景?
TensorFlow Lite 是 TensorFlow 的移动端与嵌入式推理引擎,通过转换与量化压缩模型,在 Android、iOS、树莓派等边缘设备上低延迟运行深度学习模型。
延伸阅读
从知识库精选 3 篇文章,帮助深入理解该术语。
外部参考
维基百科:查看「MLP」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
