mlp_计算过程说明

张开发
2026/4/16 14:28:15 15 分钟阅读

分享文章

mlp_计算过程说明
MLP 算法计算过程说明1. 文件说明本项目生成了一个 Excel 文件用于演示一个最简单的多层感知机MLP, Multi-Layer Perceptron在单个样本上的完整计算过程。网络结构为输入层2 个特征x1, x2隐藏层2 个神经元激活函数为ReLU输出层1 个神经元激活函数为Sigmoid任务类型二分类损失函数Binary Cross EntropyBCEExcel 中已经把以下过程拆解到单元格中输入与标签初始权重和偏置前向传播Forward Pass损失计算反向传播Backpropagation一次梯度下降更新2. 本示例的输入与参数输入x1 0.6x2 0.9y 1学习率η 0.1输入层 → 隐藏层参数w11 0.2w21 -0.3b1 0.1w12 0.4w22 0.1b2 -0.2隐藏层 → 输出层参数v1 0.7v2 -0.5bo 0.053. 前向传播计算过程3.1 隐藏层第 1 个神经元线性变换z1 x1*w11 x2*w21 b1 0.6*0.2 0.9*(-0.3) 0.1 -0.05ReLU 激活a1 ReLU(z1) MAX(0, z1) 03.2 隐藏层第 2 个神经元线性变换z2 x1*w12 x2*w22 b2 0.6*0.4 0.9*0.1 - 0.2 0.13ReLU 激活a2 ReLU(z2) MAX(0, z2) 0.133.3 输出层线性变换zo a1*v1 a2*v2 bo 0*0.7 0.13*(-0.5) 0.05 -0.015Sigmoid 输出ŷ 1 / (1 e^(-zo)) ≈ 0.49625007034. 损失函数计算二分类交叉熵损失L -( y*ln(ŷ) (1-y)*ln(1-ŷ) )代入本例L ≈ 0.7006753053说明当前预测值约为0.4963而真实标签为1因此损失仍然比较大。5. 反向传播计算过程5.1 输出层梯度对于Sigmoid BCE的组合有一个常见简化结果dL/dzo ŷ - y ≈ 0.4962500703 - 1 ≈ -0.5037499297因此dL/dv1 dL/dzo * a1 0 dL/dv2 dL/dzo * a2 ≈ -0.0654874909 dL/dbo dL/dzo ≈ -0.50374992975.2 传回隐藏层第 1 个神经元dL/da1 dL/dzo * v1 ≈ -0.3526249508由于z1 -0.05 0 ReLU(z1) 0所以dL/dz1 dL/da1 * ReLU(z1) 0 dL/dw11 dL/dz1 * x1 0 dL/dw21 dL/dz1 * x2 0 dL/db1 dL/dz1 0这说明第 1 个隐藏神经元在本次样本下没有被激活因此其梯度为 0。5.3 传回隐藏层第 2 个神经元dL/da2 dL/dzo * v2 ≈ (-0.5037499297) * (-0.5) ≈ 0.2518749648由于z2 0.13 0 ReLU(z2) 1所以dL/dz2 ≈ 0.2518749648 dL/dw12 dL/dz2 * x1 ≈ 0.1511249789 dL/dw22 dL/dz2 * x2 ≈ 0.2266874684 dL/db2 dL/dz2 ≈ 0.25187496486. 一次参数更新梯度下降更新公式new_param old_param - η * gradient其中学习率η 0.1。本例更新结果为w110.2000 → 0.2000w21-0.3000 → -0.3000b10.1000 → 0.1000w120.4000 → 0.3849w220.1000 → 0.0773b2-0.2000 → -0.2252v10.7000 → 0.7000v2-0.5000 → -0.4935bo0.0500 → 0.10047. Excel 文件中各工作表说明工作表 1MLP计算过程这是主工作表展示了完整的数值推导过程包括输入和标签权重、偏置前向传播损失计算反向传播梯度参数更新关键结果摘要其中蓝色字体输入值或可修改参数黑色字体公式计算结果灰色字体说明性文字工作表 2公式说明该工作表总结了 MLP 中常见公式与含义便于快速复习。

更多文章