02-神经网络原理 入门 预计 20 分钟 ★ 最小路径

感知机与多层感知机

感知机(Perceptron)是模仿神经元的最早模型——对输入加权求和再过阈值;多层感知机(MLP,Multilayer Perceptron)把感知机按层堆叠并在层间加入非线性激活,成为一切深度网络的基本积木。

一句话定义

感知机(Perceptron)是模仿神经元的最早模型——对输入加权求和再过阈值;多层感知机(MLP,Multilayer Perceptron)把感知机按层堆叠并在层间加入非线性激活,成为一切深度网络的基本积木。

直觉

一个感知机像一位只做「加权投票」的评委:给每个证据打权重分,总分超过门槛就举牌「是」。MLP 则是评委委员会:第一排评委各看一部分证据给出意见,第二排对这些意见再做加权表决——层层表决下去,就能表达非常复杂的判断规则。

为什么重要

MLP 是「层 + 权重 + 激活」这一深度学习基本范式的最小实例:CNN 是把全连接换成卷积的变体,Transformer 是把权重换成注意力权重的变体。理解了 MLP 的前向表达式与参数规模,kp-007 的反向传播、kp-013 的正则化、kp-016 的训练循环才有落点;感知机的兴衰(kp-031)也解释了为什么非线性是深度学习的生死线。

前置知识

  • kp-001(深度学习定位)、kp-002(张量与矩阵乘法)。

核心概念

  • 神经元/单元(neuron/unit):一次「加权和 + 激活」的计算单元。
  • 权重与偏置(weight/bias):w 决定每个输入的重要程度,b 决定激活门槛。
  • 层(layer):一组并行神经元;全连接层(Linear/Dense)中每个输出神经元连接所有输入。
  • 隐藏层(hidden layer):输入与输出之间的中间层,「深度」即隐藏层层数。
  • 前向传播(forward pass):从输入到输出逐层计算预测值。
  • 决策边界(decision boundary):模型在输入空间中划出的分类分界线。

原理与机制

单层感知机输出为 y = step(w·x + b),其中 step 是阶跃函数(超阈值为 1,否则为 0)。几何上 w·x + b = 0 是输入空间中的一张超平面,感知机只能表达线性可分问题——著名的异或(XOR)问题不能用单层感知机解决(Minsky 与 Papert 1969 年指出,直接引发了第一次 AI 寒冬,见 kp-031)。MLP 的解法是两层结构:隐藏层先把输入映射到新空间,输出层在新空间上线性分类,异或因此可解。以两层 MLP 为例,前向传播为:隐藏层 z⁽¹⁾ = W⁽¹⁾x + b⁽¹⁾,a⁽¹⁾ = φ(z⁽¹⁾);输出层 z⁽²⁾ = W⁽²⁾a⁽¹⁾ + b⁽²⁾,ŷ = φ(z⁽²⁾)。若去掉 φ,两层线性变换复合仍是线性:W⁽²⁾(W⁽¹⁾x) = (W⁽²⁾W⁽¹⁾)x,堆一百层也只等于一层——这就是「没有非线性就没有深度」的代数证明,也是 kp-006 的主题。参数量估算:784→128→10 的 MLP 有 784×128+128 + 128×10+10 ≈ 101,770 个参数,参数集中在权重矩阵,这解释了为什么 kp-013 的正则化总在权重上做文章。

公式或模型

MLP 的层变换通用式(L 层网络):

z⁽ˡ⁾ = W⁽ˡ⁾ a⁽ˡ⁻¹⁾ + b⁽ˡ⁾
a⁽ˡ⁾ = φ( z⁽ˡ⁾ )        其中 a⁽⁰⁾ = x,ŷ = a⁽ᴸ⁾

变量说明:W⁽ˡ⁾ 形状 [n_l, n_{l-1}],b⁽ˡ⁾ 形状 [n_l],φ 为逐元素激活函数(kp-006)。该式是 kp-007 反向传播推导、kp-016 PyTorch 代码 nn.Linear 的共同母式。

图示

输入层        隐藏层(4个神经元)      输出层
  x1 ──┐   ┌──► [z1→φ] ──┐
  x2 ──┼───┼──► [z2→φ] ──┼──► [z→φ] ──► ŷ
  x3 ──┘   └──► [z3→φ] ──┘
               [z4→φ]
  每条连线是一个权重 w;同层共享输入,互不相连。

直观类比

「没有非线性就没有深度」可用叠纸类比:线性变换是平移、旋转、缩放——再多次也只能把平面图形在平面内挪动;非线性激活像「把纸折了一下」,折痕让平面可以弯出立体结构,层数越多折痕越丰富,能包住的花形(数据分布)越复杂。

实例或案例

异或问题的解法演示:取隐藏层两个神经元,分别学出「x1 OR x2」与「x1 AND x2」的两个线性切面,输出层再学「OR 且非 AND = XOR」。两个各自线性可分的中间表示组合出了一个非线性可分的最终分类——这 8 行代数就是深度学习的「最小可行产品」,也解释了隐藏层的价值:它把原空间改造成新空间,让问题在新空间里变简单。

常见误区

  • 「MLP 里的层是全连接所以叫深度网络很神秘」:它的数学只有矩阵乘法加逐元素函数,神秘感来自层数而非复杂度。
  • 「神经元数量越多越好」:容量过大会加剧过拟合,且收益边际递减(容量与正则化的权衡见 kp-013)。
  • 「偏置可有可无」:没有 b,所有超平面必须过原点,表达能力显著受限。
  • 把输出层也当成「隐藏层」:输出层的结构与损失函数强耦合(分类用 softmax、回归用恒等),见 kp-009。

与其他知识点的关系

kp-006 解释式中的 φ;kp-007 推导训练该网络的梯度;kp-008 回答「它到底能表达多复杂」;kp-017 的卷积层是把 W⁽ˡ⁾ 稀疏化、权重共享化的特例;kp-031 讲述感知机从兴到衰再到复兴的完整故事。

自测题

  1. 为什么单层感知机解不了异或而两层 MLP 可以?

答案要点:异或非线性可分,单层只能画一张超平面;两层可先构造两个线性中间表示再线性组合出非线性边界。

  1. 去掉激活函数、堆叠 100 层线性层,等价于什么?

答案要点:一次线性变换(矩阵连乘仍为矩阵),深度失去意义——非线性是深度的前提。

  1. 784→128→10 的 MLP 参数量是多少?

答案要点:784×128+128+128×10+10 = 100480+1280+128+10,即约 101,770 个。

延伸阅读

  • Goodfellow 等《Deep Learning》第 6 章「深度前馈网络」。
  • Minsky、Papert《Perceptrons》1969(历史文献,理解 XOR 批评的原始语境)。

学习状态

状态保存在浏览器本地,用于首页与路径页的进度统计。