资讯动态

手把手教你MLP反向传播:Excel可视化计算过程

发布时间:2026/9/2 23:04:09 来源:尧图企业网站定制
引言多层感知机MLP是深度学习的基石但其反向传播算法常让初学者感到抽象。本文通过Excel表格逐步展示一个2→3→1结构MLP的前向传播、损失计算、梯度求解和权重更新的完整过程。无需编程只需修改单元格数值就能直观观察每个参数如何影响最终预测。1. 网络结构与公式我们构建一个简单但完整的MLP输入层2个特征 ((x_1, x_2))隐藏层3个神经元激活函数为Leaky ReLU负斜率0.05避免死神经元输出层1个神经元激活函数为Sigmoid适合二分类/回归1.1 前向传播公式隐藏层加权和 \[ z_j w_{1j}x_1 w_{2j}x_2 b_j, \quad j1,2,3 \] 隐藏层输出 \[ h_j \begin{cases} z_j \text{if } z_j 0 \\ 0.05z_j \text{otherwise} \end{cases} \] 输出层加权和 \[ z_o w_1 h_1 w_2 h_2 w_3 h_3 b \] 最终预测 \[ \hat{y} \sigma(z_o) \frac{1}{1e^{-z_o}} \] 损失函数均方误差的一半方便求导 \[ L \frac12 (y - \hat{y})^2 \]1.2 反向传播公式链式法则输出层误差 \[ \delta_o (y - \hat{y}) \cdot \hat{y} \cdot (1 - \hat{y}) \] 输出层权重梯度 \[ \frac{\partial L}{\partial wj} \delta_o \cdot h_j, \quad \frac{\partial L}{\partial b} \delta_o ] 隐藏层误差 [ \delta{h_j} \delta_o \cdot wj \cdot \text{LeakyReLU}(z_j) ] 其中 LeakyReLU 的导数为 [ \text{LeakyReLU}(z) \begin{cases} 1 z0 \ 0.05 z \le 0 \end{cases} ] 隐藏层权重梯度 [ \frac{\partial L}{\partial w{ij}} \delta_{h_j} \cdot x_i, \quad \frac{\partial L}{\partial b_j} \delta_{h_j} \] 权重更新梯度下降 \[ w_{\text{new}} w_{\text{old}} - \eta \cdot \frac{\partial L}{\partial w} \]2. Excel 实现细节2.1 参数区设置学习率 η0.1可调训练样本( (x_1,x_2) (0.6, 0.4) )真实目标 (y1)初始权重随机小数值见下图2.2 前向传播计算表在Excel中构建以下顺序 | 步骤 | 公式 | |------|------| | 隐藏层加权和 |x1*w11 x2*w21 b1| | 隐藏层输出 |IF(z10, z1, 0.05*z1)| | 输出层加权和 |SUMPRODUCT(h1:h3, w_1:w_3) b| | 预测值 |1/(1EXP(-z_o))| | 损失 |0.5*(y - y_hat)^2|2.3 反向传播梯度计算利用Excel单元格直接写出链式法则输出层误差(y - y_hat) * y_hat * (1 - y_hat)隐藏层误差δ_o * w_j * IF(z_j0, 1, 0.05)梯度误差 * 输入值2.4 权重更新新权重公式旧权重 - η * 梯度3. 数值计算结果解读运行生成的Excel文件可直接下载[文末附件]您将看到初始预测值比如 0.457损失约 0.147梯度值直观显示每个权重的贡献方向更新后权重预测值增加到约 0.523损失下降您可以交互式修改更换输入样本例如改为负样本y0调整学习率观察收敛速度手动修改初始权重观察梯度变化这比抽象代码更直观地揭示了反向传播的本质误差逐层反向流动调整所有参数使预测靠近目标。4. 进阶扩展4.1 多样本批处理当前演示为单样本在线学习。可扩展为多个样本累加梯度后平均更新。4.2 不同激活函数将Leaky ReLU换成Sigmoid或Tanh修改对应的导数公式即可。4.3 更多隐藏层增加中间层只需重复“加权和→激活→误差反向传播”的列结构。5. 结语通过Excel的透明化计算MLP的“黑盒”被完全打开。您将看到为什么增加层数能增强拟合能力梯度消失如何发生若激活函数选择不当学习率过大导致震荡的数值表现

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价