当前位置: 首页 > news >正文

用 Excel 手动实现 MLP 前向传播 + 反向传播(完整版)

一、为什么还要用 Excel 学神经网络?

很多人觉得神经网络必须用 Python + PyTorch 才能跑。但当你亲手在单元格里写出每一行梯度公式时,才能真正理解“链式法则”是如何从输出流回输入,理解权重为什么更新、学习率怎么影响每一步。

Excel 的优势是完全透明:所有中间值、梯度、更新量一览无余,没有任何黑盒。调整一个输入,整个表格立刻重新计算,非常适合初学者验证每一步的数值。


二、网络结构与公式推导

我们实现一个2‑输入 → 2‑隐藏神经元 → 1‑输出的 MLP,结构如下:

x1 ---\ \ --> z1 --> a1 = ReLU(z1) ---\ x2 ---/ \ --> y_pred = a1*v1 + a2*v2 x1 ---\ / \ / --> z2 --> a2 = ReLU(z2) ---/ x2 ---/

参数:

  • 隐藏层权重:w11(x1→神经元1),w21(x2→神经元1),w12(x1→神经元2),w22(x2→神经元2)

  • 隐藏层偏置:b1,b2

  • 输出层权重:v1,v2

  • 损失函数:L = ½ (y_pred – y_true)²

  • 激活函数:ReLU,导数ReLU'(z) = 1 if z>0 else 0

前向传播

z1 = x1*w11 + x2*w21 + b1 a1 = max(0, z1) z2 = x1*w12 + x2*w22 + b2 a2 = max(0, z2) y_pred = a1*v1 + a2*v2

反向传播(核心梯度)

∂L/∂y_pred = y_pred - y_true ∂L/∂v1 = ∂L/∂y_pred * a1 ∂L/∂v2 = ∂L/∂y_pred * a2 ∂L/∂a1 = ∂L/∂y_pred * v1 ∂L/∂a2 = ∂L/∂y_pred * v2 ∂L/∂z1 = ∂L/∂a1 * ReLU'(z1) ∂L/∂z2 = ∂L/∂a2 * ReLU'(z2) ∂L/∂w11 = ∂L/∂z1 * x1 ∂L/∂w21 = ∂L/∂z1 * x2 ∂L/∂b1 = ∂L/∂z1 ∂L/∂w12 = ∂L/∂z2 * x1 ∂L/∂w22 = ∂L/∂z2 * x2 ∂L/∂b2 = ∂L/∂z2

参数更新(学习率 η = 0.1):

新参数 = 旧参数 - η * 梯度

三、Excel 文件结构(5 张工作表)

你下载的MLP完整版_前向+反向传播.xlsx包含以下工作表:

📄 Parameters(参数初始值)
参数
x1, x20.5, 0.8
w11, w21, w12, w220.2, 0.3, 0.4, 0.7
v1, v20.6, 0.9
b1, b20.1, 0.1
y_true1
lr0.1
📈 Forward(前向传播)

公式完全引用 Parameters,自动计算:

  • z1,a1

  • z2,a2

  • y_pred

当前初始值下:
y_pred = 0.44*0.6 + 0.86*0.9 = 1.038

📉 Loss(损失)

Loss = 0.5*(1.038-1)^2 = 0.000722

🔁 Backward(完整梯度)

按上述链式法则计算所有 13 个梯度。例如:

  • dL/dv1 = 0.038 * 0.44 = 0.01672

  • dL/dw11 = dL/dz1 * x1 = (dL/da1 * 1) * 0.5 = (0.038*0.6)*0.5 = 0.0114

  • 等等。

🔄 Update(参数更新)

使用梯度下降更新所有权重和偏置,例如:

  • v1_new = 0.6 - 0.1*0.01672 = 0.59833

  • w11_new = 0.2 - 0.1*0.0114 = 0.19886

一次迭代后,损失从 0.000722 下降(实际需多次迭代)。你只需将 Update 表中的新值复制回 Parameters 表,Excel 就会自动重算下一轮。


四、如何用这个文件进行实验?

  1. 手动验证一次前向和反向:对照公式,用计算器验算 Excel 的数值。

  2. 改变学习率:修改 Parameters!B12(例如改成 0.5),观察梯度更新的幅度。

  3. 修改激活函数:在 Forward!B2 和 Forward!B4 中将MAX(0, …)改为1/(1+EXP(-…))(Sigmoid),并相应修改 Backward 中 ReLU 导数部分(改为a*(1-a))。

  4. 多轮训练:复制 Update 表中的新值,用“选择性粘贴 – 数值”覆盖 Parameters 对应单元格,反复操作,观察 Loss 收敛。

  5. 增加样本:可扩展为多行,用 SUM 或数组公式实现批量梯度下降。


五、完整 Excel 文件获取方式

百度网盘:通过网盘分享的文件:MLP完整版_前向+反向传播.xlsx
链接: https://pan.baidu.com/s/17yzJgfgo_sYbeeC2E_A98w?pwd=gt6r 提取码: gt6r


六、总结

这个 Excel 文件完整展示了一个 MLP 从输入到损失、再到反向传播更新参数的全部细节。对于学生、教师、以及想彻底搞懂反向传播的工程师,它都是绝佳的动手工具。

试一试:修改初始权重,观察梯度变化;或者把激活函数换成 Leaky ReLU,看看导数如何修改。一旦你亲手在单元格里敲出dL/dw11 = dL/dz1 * x1,神经网络就不再是魔法,而只是微积分和链式法则的美丽应用。

http://www.gsyq.cn/news/1336834.html

相关文章:

  • 【设计模式 10】抽象工厂:整体换季
  • Semi Design v2.98.0 发布:多项组件功能更新与问题修复,助力搭建美观 React 应用
  • 从RTL代码到SDC约束:手把手教你为FPGA/ASIC中的时钟管理模块(如PLL、MMCM)写生成时钟
  • Prompt基础与AI产品管理方法论 — 深度解析与实操设计 - hlc
  • 2025-2026年优优推电话查询:网络推广前请核实服务范围与收费模式 - 品牌推荐
  • STM32F103 平行替代方案全面分析(2026 年最新)
  • 2026最新毕业论文降AI全攻略:亲测高好用的3款工具与6大手动优化技巧
  • 应对2026AIGC检测:3款降AI工具实测与6个零成本手改技巧
  • linux内存惰性分配:从虚拟地址到物理页的深度解析
  • 高通平台Sensor驱动移植避坑指南:以QCM6490平台BMI160为例,从编译到上电调试全流程
  • Gemini 3.5 Flash 完整介绍:定价、性能、接入教程与选型建议
  • 公域卖课佣金高、粉丝留不住?这套私域打法,完课率提升了3倍
  • 手把手教你用W25Q32 SPI Flash:从波形图看懂擦除、写入和读取(附完整代码)
  • 百考通AI搭起学术研究的“起跑线”
  • 高中学习机选购指南:告别营销陷阱,用科学逻辑选对真正有用的产品
  • 不知道怎么挖漏洞?吐血整理40个网络安全漏洞挖掘姿势,看完不信你还挖不到
  • 高频高速PCB板材选型:从参数本质到工程落地的专业指南
  • React 还是 Vue:2026 年,这个问题问错了
  • 数电课程设计(移位型彩灯控制器)
  • 单片机IO不够?ULN2003A救急方案——从原理到物联网实战
  • 2026年5月pof膜品牌推荐:五家产品评测夜班包装防破损 - 品牌推荐
  • VisionPro 相机集成与视觉测量
  • 嵌入式DevOps实践:从环境容器化到自动化流水线
  • AUTOSAR Ea模块深度解析:EEPROM抽象原理、配置实战与性能优化
  • CSS锚点定位(Anchor Positioning)完全指南:实现精准定位
  • Win10开发环境搭建必看:彻底解决ping localhost返回::1导致服务启动失败的问题
  • Codex 完整教程中文文档
  • HP Z66 G6 外接显示器无信号排查:amdgpu DCN 3.1 EDID 超时与 HDMI 2.1 FRL 协商问题
  • 嵌入式Linux下MT7601U无线网卡驱动移植与网络配置实战
  • 从0到1:企业级AI项目迭代日记 Vol.29|自然语言变工作流:Agent 自动拼装子图的实现路径