1.多层感知机
多层感知机(Multi-Layer Perceptron, MLP) 是结构最简单的深度神经网络。它在\”输入层\”和\”输出层\”之间加入了一层或多层隐藏层,并且在每一层的线性变换之后紧跟一个非线性激活函数。
为什么要加隐藏层?以经典的 XOR 问题为例,单层感知机(没有隐藏层)是一个线性分类器,只能画一条直线把两类样本分开;而 XOR 问题的决策边界不是线性可分的,必须引入至少一个隐藏层来\”提升维度 + 激活函数弯折\”才能解决。
一个单隐藏层的 MLP 的结构示意如下:
[输入层] ──► [隐藏层] ──► [输出层]
(784维) 线性+ReLU (256维) 线性+Softmax (10维)
1.1 前向传播的数学形式
给定一个样本向量 x∈Rdx \\in \\mathbb{R}^{d}x∈Rd(ddd 为输入特征维数),单隐藏层 MLP 的计算过程可以形式化写为:
h=σ (W1Tx+b1),o=W2Th+b2,y^=softmax(o) \\boldsymbol{h} = \\sigma\\!\\left( \\boldsymbol{W}_{1}^{T}\\boldsymbol{x} + \\boldsymbol{b}_{1} \\right), \\quad \\boldsymbol{o} = \\boldsymbol{W}_{2}^{T}\\boldsymbol{h} + \\boldsymbol{b}_{2}, \\quad \\hat{\\boldsymbol{y}} = \\mathrm{softmax}(\\boldsymbol{o}) h=σ(W1Tx+b1),o=W2Th+b2,y^=softmax(o)
其中:
- σ(⋅)\\sigma(\\cdot)σ(⋅) 是逐元素非线性激活函数(ReLU、Sigmoid、Tanh 等)
- W1∈Rd×h,b1∈RhW_1 \\in \\mathbb{R}^{d \\times h}, b_1 \\in \\mathbb{R}^{h}W1∈Rd×h,b1∈Rh — 输入层 → 隐藏层的参数
- W2∈Rh×q,b2∈RqW_2 \\in \\mathbb{R}^{h \\times q}, b_2 \\in \\mathbb{R}^{q}W2∈Rh×q,b2∈Rq — 隐藏层 → 输出层的参数
- softmax 将输出向量 ooo 归一化为一个合法的类别概率分布
为什么一定要非线性? 如果 σ\\sigmaσ 取恒等函数 σ(z)=z\\sigma(z)=zσ(z)=z,那么把上式联立可得 y^=W2TW1Tx+W2Tb1+b2\\hat y = W_2^T W_1^T x + W_2^T b_1 + b_2y^=W2TW1Tx+W2Tb1+b2,即退化成一个单层线性模型。这就是\”深层网络若没有激活函数等价于单层模型\”的核心原因。
2. 输入层:接收外部原始数据
MLP 的输入是固定长度的一维向量,这意味着无论原始数据是图像、文本还是音频,都必须先向量化。
本文以 Fashion-MNIST 数据集为例,每个样本的原始形态是一张 28×2828 \\times 2828×28 的灰度图。在送入 MLP 之前,需要通过 reshape 把它展平成长度为 784784784 的向量:
(1, 28, 28)⏟原始张量→reshape(784,)⏟MLP 输入 \\underbrace{\\text{(1, 28, 28)}}_{\\text{原始张量}} \\xrightarrow{\\text{reshape}} \\underbrace{\\text{(784,)}}_{\\text{MLP 输入}} 原始张量
(1, 28, 28)reshape
网硕互联帮助中心




评论前必须登录!
注册