在大屏或电脑上体验更佳——动画和操作区域更宽敞。
输入

前向传播

前向传播把输入变成神经网络的预测:每层用权重乘输入、加偏置,再应用激活函数,直到输出。它既用于训练时计算预测,也用于训练后的推理。本课输入 784 个像素亮度,输出十个数字类别分数,选择最高者。

每层可看作一组评分员。全连接层的每位评分员读取上一层全部输入,按自己的权重决定各项贡献,再把结果交给下一层。推理时评分表固定,不在这一遍计算中学习。

前向传播如何工作

网络为 784 → 25 → 25 → 10:28×28 图像展平,经过两个各 25 神经元的隐藏层,再到十个数字输出。

隐藏神经元先算预激活 z = w·a + b,逐项乘权重、求和、加偏置。z 可以为负。接着 ReLU:max(0, z),负值变零,正值保留。本课绿色连接表示正权重,品红表示负权重;它们对当前非负输入分别提供正、负贡献。

输出层不使用 ReLU。十个原始分数称为 logits,经 softmax:pᵢ = exp(zᵢ) / Σⱼ exp(zⱼ),得到和为 1 的分布。logit 差距通过指数影响概率比;最终预测为 argmax。实现通常先减最大 logit 再求指数,以保持数值稳定。

连接计算量为 784·25 + 25·25 + 25·10 = 20,475 次乘加,每条连接一次;不含偏置相加、激活和 softmax 的额外工作。层按从左到右执行,内部仍可用循环或矩阵运算。连接数量提供容量,训练得到的数值才支撑识别;随机填入相同数量的权重不保证学会数字。

第一隐藏层有 19,600 条连接,太密,画布只画后续层之间的代表性连接。这是绘图限制,不是网络删掉了输入连接。

前向传播逐步演示

默认输入是真实 MNIST 测试集的手写 7,使用已训练网络,显示值来自实际前向计算。

  1. 输入。 28×28 展为 784 个亮度,笔迹较高,背景近零。
  2. 第 1 层加权和。 25 个神经元各算 z₁ = x·W₁ + b₁,读入全部 784 像素。10 个为负(蓝色),其余为正(深色)。
  3. 第 1 层 ReLU。 max(0, z₁) 将十个负值归零,正值作为 a₁ 保留。
  4. 第 2 层加权和。 连接亮起,计算 z₂ = a₁·W₂ + b₂,25 个中有 9 个负值。
  5. 第 2 层 ReLU。 负值归零,得到 a₂。
  6. 输出 logits。 z₃ = a₂·W₃ + b₃ 给出十个分数。7 约为 19.0,次高的 2 约为 1.2,其余大多为负。
  7. 预测。 未舍入分数的差约为 17.9,softmax 把几乎全部概率集中给 7,约 100%。

蓝色表示负预激活,ReLU 时蓝格淡为空。两个隐藏层重复“加权和 → 非线性”,输出层则是“logits → softmax”。

高置信度为什么也会错

Softmax 表示网络分数形成的相对确信,不直接保证真实正确率。输入若激活了错误类别的高分,仍会得到接近 1 的错误预测。

Misclassified 为每个数字选择该网络测试集中误判且置信度最高的图像,错误预测超过 90%。七步相同,只换输入。Ambiguous 则选择约 75% 置信度的正确预测,次高类别仍占可见概率。

同一数字比较三种输入时,网络参数不变,分布由输入与网络共同决定。该网络在 MNIST 测试集约有 3.7% 误判,其中一些错误也十分自信;置信度不能作为单个样本正确的证明。

梯度下降解释如何更新权重,反向传播解释如何计算每个权重的梯度。

边界情况

  • 暂时为零的神经元。 负预激活经 ReLU 变为零,对当前图像常见;另一图像可激活不同集合。这不等于该神经元永久失活。
  • 集中或分散的 softmax。 清晰输入可能接近 100%,模糊输入给次高类别留出概率。两者都按同一公式计算。
  • 全零输入。 第一层加权和只剩偏置,后续层仍接收这些偏置产生的激活。即使没有笔迹,网络也会输出完整分布,而非自动拒答。

常见错误

  • 把 logit 当概率。 19.0 是原始分数,不是“1900% 确信”;softmax 后才形成分布。
  • 给每个隐藏神经元指定人类概念。 个体未必对应“圆环检测器”等命名,不能凭图形事后编故事。输出层才有固定类别含义。
  • 去掉层间非线性。 多个仿射层复合仍可合为一个仿射变换,无法仅靠堆叠获得同样的非线性表达。
  • 把置信度当准确率。 误判输入同样能产生超过 90% 的 softmax;它由分数差决定,不保证差距有充分依据。