MLP计算过程
使用 Excel 展示 MLP 的完整计算过程1. 实验目标本文使用一个简单的多层感知机Multilayer PerceptronMLP示例展示一次完整的计算过程。内容包括参数设置前向传播损失函数计算反向传播求梯度使用梯度下降更新参数用 Excel 公式复现每一步计算。本例的目的不是训练一个真实复杂模型而是把 MLP 的每一个计算步骤拆开方便观察每个参数是如何参与计算、如何得到梯度、以及如何被更新的。2. 网络结构本例采用一个1-6-1的 MLP 结构输入层1 个输入神经元 x 隐藏层6 个隐藏神经元 H1~H6 输出层1 个输出神经元 ŷ隐藏层使用 ReLU 激活函数损失函数使用平方误差的一半L12(y^−y)2 L\frac{1}{2}(\hat{y}-y)^2L21(y^−y)2本例参数如下参数数值学习率 η0.01输入值 x5真实标签 y90输出层偏置 c0激活函数ReLU隐藏层参数隐藏神经元输入层权重 Wᵢ隐藏层偏置 Bᵢ输出层权重 VᵢH110100.10H220100.20H330100.10H420100.10H510100.30H620100.203. 前向传播隐藏层第 i 个神经元的线性输入为zixWiBi z_ixW_iB_izixWiBiReLU 激活输出为aiReLU(zi)max(0,zi) a_iReLU(z_i)max(0,z_i)aiReLU(zi)max(0,zi)输出层预测值为y^∑i16Viaic \hat{y}\sum_{i1}^{6}V_i a_icy^i1∑6Viaic代入本例数据得到隐藏神经元xWᵢBᵢzᵢxWᵢBᵢaᵢReLU(zᵢ)VᵢVᵢ·aᵢH15101060600.106H2520101101100.2022H3530101601600.1016H4520101101100.1011H55101060600.3018H6520101101100.2022所以y^62216111822095 \hat{y}62216111822095y^62216111822095真实值为y90 y90y90误差为ey^−y95−905 e\hat{y}-y95-905ey^−y95−905损失为L12×5212.5 L\frac{1}{2}\times 5^212.5L21×5212.54. 反向传播输出层误差项为δoy^−y \delta_o\hat{y}-yδoy^−y本例中δo5 \delta_o5δo5对于隐藏层因为使用 ReLU 激活函数所以ReLU′(zi){1,zi00,zi≤0 ReLU(z_i) \begin{cases} 1, z_i0 \\ 0, z_i\leq 0 \end{cases}ReLU′(zi){1,0,zi0zi≤0本例所有 zᵢ 都大于 0因此 ReLU’(zᵢ)1。隐藏层误差项为δiδo⋅Vi⋅ReLU′(zi) \delta_i\delta_o \cdot V_i \cdot ReLU(z_i)δiδo⋅Vi⋅ReLU′(zi)各参数梯度为∂L∂Wiδi⋅x \frac{\partial L}{\partial W_i}\delta_i \cdot x∂Wi∂Lδi⋅x∂L∂Biδi \frac{\partial L}{\partial B_i}\delta_i∂Bi∂Lδi∂L∂Viδo⋅ai \frac{\partial L}{\partial V_i}\delta_o \cdot a_i∂Vi∂Lδo⋅ai计算结果如下隐藏神经元δᵢ∂L/∂Wᵢ∂L/∂Bᵢ∂L/∂VᵢH10.52.50.5300H21.05.01.0550H30.52.50.5800H40.52.50.5550H51.57.51.5300H61.05.01.0550输出层偏置 c 的梯度为∂L∂cδo5 \frac{\partial L}{\partial c}\delta_o5∂c∂Lδo55. 参数更新使用梯度下降法更新参数参数新值参数旧值−η⋅梯度 参数新值参数旧值-\eta \cdot 梯度参数新值参数旧值−η⋅梯度例如 H1 的 W1W1′10−0.01×2.59.975 W_110-0.01\times2.59.975W1′10−0.01×2.59.975H1 的 B1B1′10−0.01×0.59.995 B_110-0.01\times0.59.995B1′10−0.01×0.59.995H1 的 V1V1′0.10−0.01×300−2.9 V_10.10-0.01\times300-2.9V1′0.10−0.01×300−2.9完整更新结果如下隐藏神经元W旧W新B旧B新V旧V新H1109.975109.9950.10-2.90H22019.950109.9900.20-5.30H33029.975109.9950.10-7.90H42019.975109.9950.10-5.40H5109.925109.9850.30-2.70H62019.950109.9900.20-5.30输出层偏置更新c′0−0.01×5−0.05 c0-0.01\times5-0.05c′0−0.01×5−0.05可以看到参数更新的方向由梯度决定学习率 η 决定每次更新的步长。如果学习率过大参数可能变化过快如果学习率过小模型训练速度会变慢。6. Excel 文件说明配套 Excel 文件MLP_计算过程.xlsx中包含以下工作表工作表内容参数设置设置学习率、输入值、真实标签、隐藏层权重、偏置和输出层权重前向传播用 Excel 公式计算 zᵢ、aᵢ、预测值 ŷ、误差和损失反向传播用 Excel 公式计算输出层误差项、隐藏层误差项和各参数梯度参数更新用梯度下降公式计算 W、B、V 和 c 的新值原示例复刻复刻上传示例表中学习率、输入值、Bias 和 W 的更新逻辑博客提交说明说明 Markdown 博客文件和 Excel 文件的提交方式Excel 中的关键公式包括zᵢ x * Wᵢ Bᵢ aᵢ MAX(0, zᵢ) ŷ SUM(Vᵢ * aᵢ) c L 0.5 * (ŷ - y)^2 δᵢ δₒ * Vᵢ * ReLU(zᵢ) W新 W旧 - 学习率 * ∂L/∂W B新 B旧 - 学习率 * ∂L/∂B V新 V旧 - 学习率 * ∂L/∂V7. 原示例复刻说明上传的 Excel 示例主要展示了 6 组 Bias 和 W 的梯度更新其中核心关系是Bias调整量η×Bias导数 Bias调整量\eta \times Bias导数Bias调整量η×Bias导数Bias新Bias旧−Bias调整量 Bias新Bias旧-Bias调整量Bias新Bias旧−Bias调整量W导数Bias导数×输入x W导数Bias导数 \times 输入xW导数Bias导数×输入xW调整量η×W导数 W调整量\eta \times W导数W调整量η×W导数W新W旧−W调整量 W新W旧-W调整量W新W旧−W调整量因此在配套 Excel 的“原示例复刻”工作表中保留了示例里的学习率 0.01、输入值 5、6 组 Bias 导数与 W 初始值并用公式自动计算调整量和新参数。8. 总结本文通过一个 1-6-1 的 MLP 计算示例展示了 MLP 从输入到输出的完整计算流程。核心步骤可以概括为前向传播得到预测值根据预测值和真实值计算损失反向传播计算每个参数的梯度使用梯度下降更新参数用 Excel 公式将每一步可视化便于检查和理解。通过这种方式可以更直观地理解 MLP 的训练过程也能清楚看到每个参数在一次训练迭代中如何发生变化。