一、博客前言

多层感知机(MLP)作为深度学习的基础模型,其核心训练流程包含前向传播计算预测值反向传播更新权重偏置两大核心环节。多数初学者仅通过 Python 框架快速调用模型,无法直观理解神经网络每一层的数值流转、误差传递与参数更新逻辑。

本次实操完全脱离编程框架,仅使用 Microsoft Excel 工具,通过基础公式手动实现了单输入 - 6 隐藏神经元 - 单输出完整 MLP 模型的全流程计算,不仅还原了前向传播的加权求和与非线性激活,还完整实现了反向传播的误差求导、学习率迭代、权重与偏置更新,彻底打破神经网络的 “黑盒” 认知,夯实深度学习底层基础。

图1 Excel 表格全景图

二、MLP 模型核心结构与参数说明

2.1 网络拓扑结构

本次实操采用的三层 MLP 结构完全匹配 Excel 文件内的计算逻辑,具体如下:

  1. 输入层:1 个输入神经元,接收固定输入特征值
  2. 隐藏层:6 个神经元,采用 Leaky ReLU 作为非线性激活函数,解决梯度消失问题
  3. 输出层:1 个输出神经元,输出模型最终预测值,同样采用 Leaky ReLU 激活

2.2 固定初始参数

参数类别

具体参数

初始值

超参数

学习系数(学习率)

0.01

输入层

输入特征值

5

隐藏层

偏置值 B1-B6

均为 10

输入层→隐藏层权重

W1-W6

10、20、30、20、10、20

隐藏层→输出层权重

W'1-W'6

10、20、10、10、30、20

输出层

偏置值 B

20

训练目标

目标输出值

208

2.3 核心计算公式

本次实操所有公式均与 Excel 内的计算逻辑完全匹配,核心公式如下:

三、Excel 分步实现 MLP 全流程计算

本次 Excel 表格按照参数区 - 隐藏层前向计算区 - 输出层与误差计算区 - 反向传播参数更新区四大模块排版,逻辑清晰,每一步计算均可溯源,以下为分步实操详解,完全匹配 Excel 内的操作流程。

步骤 1:基础超参数与初始值录入

在 Excel 表格顶部完成所有固定参数的录入,做好分类标注,避免数据混乱:

  1. A1-B1 单元格录入学习系数 0.01,作为后续参数更新的固定超参数
  2. A4 单元格录入输入特征值 5,作为模型的唯一输入
  3. C4-C9 单元格录入隐藏层 6 个神经元的偏置值 B1-B6,均为 10
  4. H4-H9 单元格录入输入层到隐藏层的 6 个权重 W1-W6
  5. R4-R9 单元格录入隐藏层到输出层的 6 个权重 W'1-W'6
  6. R11 单元格录入输出层偏置值 20,Z4 单元格录入目标输出值 208

此步骤为模型初始化,无复杂计算,仅需确保所有数值录入准确,为后续公式计算做好基础。

步骤 2:隐藏层前向传播计算

隐藏层是模型的核心非线性变换层,分为加权求和激活函数运算两步,完全匹配 Excel 内 N 列、O 列的计算逻辑:

  1. 隐藏层加权和计算(N 列):对每个隐藏神经元,计算输入值与对应权重的乘积,再叠加偏置值以第 1 个隐藏神经元为例,N4 单元格公式:=$A$4*H4+C4剩余 5 个神经元公式以此类推,均使用绝对引用锁定输入值,确保公式下拉填充时引用正确
  2. Leaky ReLU 激活运算(O 列):对加权和结果进行非线性激活,引入非线性特以第 1 个隐藏神经元为例,O4 单元格公式:=IF(N4>0,N4,0.05*N4)该公式完全实现 Leaky ReLU 函数逻辑,正数直接输出,负数按 0.05 倍缩放,避免梯度消失

计算完成后,O4-O9 单元格得到 6 个隐藏神经元的最终激活输出值,完成输入层到隐藏层的前向数据流转。

步骤 3:输出层前向传播与误差计算

将隐藏层的激活输出作为输出层的输入,完成最终预测值的计算,并同步计算模型误差,匹配 Excel 内 X 列 - AA 列的计算逻辑:

  1. 输出层加权和计算(X 列):对 6 个隐藏神经元的激活值与对应权重相乘后求和,再叠加输出层偏置值X4 单元格数组公式:=SUM(O4:O9*R4:R9)+R11,实现 6 组数据的乘积求和
  2. 最终输出值计算(Y 列):对输出加权和进行 Leaky ReLU 激活,得到模型最终预测值Y4 单元格公式:=IF(X4>0,X4,0.05*Y4)
  3. 模型误差计算(AA 列 - AB 列):计算预测值与目标值的误差平方,以及损失对输出值的偏导数,为后续反向传播做准备误差平方(AA4):=(Y4-Z4)^2,衡量模型预测效果,数值越小说明预测越准确损失导数(AB4):=2*(Y4-Z4)*IF(Y4>0,1,0.05),基于链式法则计算的损失偏导数,是反向传播的核心

步骤 4:反向传播参数更新

反向传播是 MLP 模型训练的核心,通过误差传递计算损失对每个权重、偏置的偏导数,再结合学习率更新参数,让模型预测值逐步逼近目标值,完全匹配 Excel 内 D-F 列、I-K 列、S-U 列的计算逻辑。

本次实操分为三类参数的更新,所有更新公式均遵循新参数 = 原参数 - 学习率 × 损失偏导数的核心逻辑:

隐藏层偏置 B1-B6 更新(C-F 列)

偏导数计算(E 列):=$AB$4*R4*IF(O4>0,1,0.05),基于链式法则传递误差

更新幅度计算(F 列):=E4*$B$1,偏导数乘以学习率

新偏置值计算(D 列):=C4-F4,原偏置减去更新幅度,得到更新后的偏置值

输入层→隐藏层权重 W1-W6 更新(H-K 列)

偏导数计算(J 列):=$AB$4*R4*IF(O4>0,1,0.05)*$A$4,在偏置导数基础上叠加输入值

更新幅度计算(K 列):=J4*$B$1

新权重值计算(I 列):=H4-K4

隐藏层→输出层权重 W'1-W'6 更新(R-U 列)

偏导数计算(T 列):=O4*$AB$4,直接由隐藏层输出与损失导数相乘得到

更新幅度计算(U 列):=T4*$B$1

权重值计算(S 列):=R4-U4

输出层偏置 B 更新(R11-U11)

偏导数计算(T11):=AB4,损失导数直接作为输出层偏置的偏导数

更新幅度计算(U11):=T11*$B$1

新偏置值计算(S11):=R11-U11

步骤 5:计算结果校验与汇总

所有公式录入完成后,Excel 会自动完成全流程计算,此时需完成两项校验:

  1. 公式引用校验:检查所有单元格的绝对引用、相对引用是否正确,无 #REF!、#DIV/0! 等公式错误
  2. 计算逻辑校验:核对每一步的计算结果是否符合 MLP 的数学逻辑,确保前向传播的数值流转、反向传播的误差传递无逻辑错误

校验完成后,可在表格末尾新增结果汇总区,统一整理初始参数、前向传播各层输出、误差值、更新后的权重偏置,方便查看完整计算结果。

四、实操结果分析与核心原理理解

4.1 计算结果核心结论

基于 Excel 内的固定初始参数,本次 MLP 模型完成了一次完整的前向传播与反向传播迭代,核心结果如下:

  1. 输入特征值 5,经过 6 个隐藏神经元的加权求和与非线性激活,最终输出预测值与目标值 208 的误差可通过误差平方直观查看
  2. 反向传播环节,所有权重、偏置均按照损失梯度完成了一次更新,更新幅度与学习率 0.01 完全匹配,符合梯度下降的核心逻辑
  3. Leaky ReLU 激活函数成功实现了非线性变换,避免了纯线性模型无法拟合复杂数据的问题,同时解决了 Sigmoid 函数的梯度消失问题

4.2 核心原理深度理解

通过本次 Excel 手动计算,彻底理清了 MLP 模型训练的两大核心环节的本质:

  1. 前向传播的本质:是输入数据经过 “线性加权求和 + 非线性激活” 的层层变换,最终得到预测值的过程。权重决定了不同特征的影响程度,偏置负责调整输出的基准值,激活函数则为模型引入了非线性拟合能力,这是神经网络能解决复杂问题的核心。
  2. 反向传播的本质:是基于链式法则的误差传递过程。模型先计算预测值与目标值的误差,再从输出层开始,反向将误差传递到每一层的权重和偏置,计算出损失对每个参数的偏导数,最后通过梯度下降的方式更新参数,让模型的预测值逐步逼近目标值。
  3. 学习率的作用:学习率决定了参数更新的幅度,本次使用的 0.01 是较小的学习率,能保证参数更新的稳定性,避免因更新幅度过大导致模型不收敛。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐