用 Excel 手算一个 1-6-1 MLP:前向传播、损失、反向传播与参数更新

计算示例:

本文用一个单输入、6 个隐藏神经元、单输出的多层感知机(MLP)作为例子,展示如何用 Excel 公式完整复现一次训练迭代。配套 Excel 文件中的"MLP计算过程"工作表已经把前向传播、损失计算、反向传播梯度和参数更新全部写成可联动公式。

1. 模型结构与初始参数

本例的网络结构为 1-6-1 :输入层 1 个神经元,隐藏层 6 个神经元,输出层 1 个神经元。输入值为 x=5,目标值为 y=208,学习率为 η=0.01。激活函数使用 Leaky ReLU:

f(t)=IF(t>0,t,0.05t)

j 隐藏层权重 W_j 隐藏层偏置 b_j 输出层权重 v_j
1 10 10 10
2 20 10 20
3 30 10 10
4 20 10 10
5 10 10 30
6 20 10 20

2. 前向传播

隐藏层第 j 个神经元先计算加权和:

z_j = x·W_j + b_j

然后经过激活函数得到隐藏层输出:

h_j = f(z_j)

本例中隐藏层输出为:

h = [60, 110, 160, 110, 60, 110]

输出层加权和为:

s = Σ(v_j·h_j) + c = 9520

由于 s>0,最终输出为 ŷ=f(s)=9520。

3. 损失函数

单样本平方误差为:

L=(ŷ-y)^2=(9520-208)^2=86,713,344

4. 反向传播

先计算输出层梯度:

∂L/∂s = 2(ŷ-y)·f'(s) = 18,624

然后逐层向前传递梯度。例如:

  • ∂L/∂v_j = ∂L/∂s · h_j
  • ∂L/∂c = ∂L/∂s
  • ∂L/∂h_j = ∂L/∂s · v_j
  • ∂L/∂z_j = ∂L/∂h_j · f'(z_j)
  • ∂L/∂W_j = ∂L/∂z_j · x
  • ∂L/∂b_j = ∂L/∂z_j

5. 参数更新

所有参数都使用梯度下降更新:

θ_new = θ - η · ∂L/∂θ

例如第 1 个隐藏层权重的更新为:

W_1_new = 10 - 0.01 × 931200 = -9302

输出层偏置的更新为:

c_new = 20 - 0.01 × 18624 = -166.24

6. Excel 中的核心公式

步骤 Excel 公式 作用
隐藏层加权和 =B18*C18+D18 计算 z_j
激活函数 =IF(E18>0,E18,$B$7*E18) 计算 h_j
输出层加权和 =SUMPRODUCT(H18:H23,F18:F23)+B8 计算 s
损失函数 =(B10-B6)^2 计算平方误差
参数更新 =C18-$B$4*K18 更新隐藏层权重

提示:本例主要用于展示 MLP 的计算链路。学习率较大时,一次更新可能让参数变化非常明显;实际训练中通常需要调整学习率、归一化数据,并进行多轮迭代。

7. 总结

通过这个 Excel 示例,可以清楚看到 MLP 的四个关键步骤:前向传播得到预测值,损失函数衡量预测误差,反向传播计算每个参数的梯度,最后用梯度下降更新参数。Excel 的优势在于每个单元格都可以显示公式,非常适合用来学习神经网络的底层计算过程。

相关推荐
百事牛科技11 小时前
Excel的三种密码:防看、防存、防乱改,各管各的
windows·excel
用户2986985301415 小时前
React 前端将 Excel 工作表导出为图片的技术实践
javascript·react.js·excel
用户0332126663672 天前
使用 Python 在 Excel 文档中添加水印
python·excel
科技新资讯3 天前
AI如何批量处理Excel文件? 从数据合并、清洗到自动生成报表,看看 AI Agent 怎么完成任务
大数据·人工智能·excel
用户0332126663673 天前
使用 Python 在 Excel 中添加与删除筛选器
python·excel
xurime4 天前
Excelize 开源基础库发布 2.11.1 版本更新
数据分析·excel·开源软件·excelize·gitcode
梦想出海-Phoebe4 天前
Gemini新增文件编辑功能:PDF、Word、Excel处理体验分享
pdf·word·excel
Data-Miner5 天前
AI和Excel怎么结合才能真提效
人工智能·excel
taller_20005 天前
【012】数据类型入门: Excel 数据到 Python 值的转换
python·excel·pie·py
彦8 天前
Excel实用技巧笔记
excel