前向传播
前向传播把输入变成神经网络的预测:每层用权重乘输入、加偏置,再应用激活函数,直到输出。它既用于训练时计算预测,也用于训练后的推理。本课输入 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,使用已训练网络,显示值来自实际前向计算。
- 输入。 28×28 展为 784 个亮度,笔迹较高,背景近零。
- 第 1 层加权和。 25 个神经元各算
z₁ = x·W₁ + b₁,读入全部 784 像素。10 个为负(蓝色),其余为正(深色)。 - 第 1 层 ReLU。
max(0, z₁)将十个负值归零,正值作为a₁保留。 - 第 2 层加权和。 连接亮起,计算
z₂ = a₁·W₂ + b₂,25 个中有 9 个负值。 - 第 2 层 ReLU。 负值归零,得到
a₂。 - 输出 logits。
z₃ = a₂·W₃ + b₃给出十个分数。7 约为 19.0,次高的 2 约为 1.2,其余大多为负。 - 预测。 未舍入分数的差约为 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;它由分数差决定,不保证差距有充分依据。