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

神经网络拆解:用Excel模拟手写数字识别

点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。


前向传播/反向传播可视化 × 激活函数对比实验
读者收获:深度理解网络工作原理

当神经网络不再是黑箱,而是在Excel表格中清晰展现每一个计算步骤,你将在神经元的世界里获得上帝视角。本文将带你用Excel亲手构建一个数字识别网络,彻底掌握深度学习的底层原理。

一、Excel神经网络的非凡意义

1.1 为什么选择Excel?

  • 透明计算:每个公式可见,告别"黑箱"困惑
  • 实时可视化:权重变化、梯度流动直观呈现
  • 零代码门槛:无需编程基础理解核心概念
  • 历史溯源:追溯任意时刻的网络状态

1.2 我们将构建的微型网络

在这里插入图片描述
网络规格

  • 输入:25维(5×5二值化图像)
  • 隐藏层:3个神经元(带Sigmoid激活)
  • 输出层:1个神经元(Sigmoid激活)
  • 目标:识别手写数字0和1

二、数据准备:制作微型MNIST

2.1 创建数字模板库

在这里插入图片描述
在Excel中实现

  1. B2:AF3区域创建像素网格
  2. AG列添加标签(0或1)

2.2 设计数据生成器

# 生成新样本(带随机噪点)
=IF(RAND()<0.8, 原值, 1-原值) 

三、前向传播:Excel中的信号流动

3.1 权重矩阵初始化

在这里插入图片描述
Excel实现

  1. 隐藏层权重:AK2:BC4区域
    =RAND()*0.1-0.05 (-0.05到0.05随机值)
  2. 输出层权重:BD2:BD4区域
    =RAND()*0.1-0.05

3.2 逐层计算实现

隐藏层计算

# BE2单元格(第一个隐藏神经元)
=SUMPRODUCT($B2:$AF2, AK$2:AK$26)  # 加权和
=1/(1+EXP(-BE2))                  # Sigmoid激活

输出层计算

# BF2单元格(输出神经元)
=SUMPRODUCT(BE2:BG2, BD$2:BD$4)   # 加权和
=1/(1+EXP(-BF2))                  # Sigmoid激活

3.3 实时可视化技巧

  1. 权重热力图
# 条件格式 → 色阶 
红:负权重,蓝:正权重
  1. 激活强度条
# 数据条格式 
长度表示激活值大小

四、反向传播:Excel中的学习过程

4.1 损失函数计算

# 均方误差
=0.5*(BF2-$AG2)^2

4.2 梯度计算与分解

输出层梯度

# δ_output 
= (BF2 - $AG2) * BF2 * (1 - BF2)

隐藏层梯度

# δ_hidden1 
= BE2 * (1 - BE2) * BD$2 * $BG$2

4.3 权重更新公式

# 输出层权重更新 
= BD2 - 学习率 * BG2 * BE2# 隐藏层权重更新
= AK2 - 学习率 * δ_hidden1 * $B2

4.4 学习率优化器

# 自适应学习率
= 0.1 * EXP(-0.01*epoch)

五、激活函数对比实验

5.1 三大函数Excel实现

在这里插入图片描述

5.2 函数特性对比分析

在这里插入图片描述

5.3 实验结果对比

在这里插入图片描述

六、训练过程可视化

6.1 损失函数曲线

# 创建动态图表
1. 记录每epoch损失值
2. 插入 → 折线图
3. 添加趋势线(指数衰减)

6.2 权重变化轨迹

# 制作权重动画
1. 每5步保存权重快照
2. 创建热力图序列
3. 开发工具 → 插入滚动条控制

6.3 决策边界演化

# 可视化分类效果
1. 创建测试样本矩阵
2. 应用网络预测
3. 条件格式着色:- 红色:预测0- 蓝色:预测1

七、进阶:网络结构扩展

7.1 增加隐藏层

在这里插入图片描述
Excel实现要点

  1. 新增权重矩阵(5×3)
  2. 添加梯度计算链
# 第二隐藏层梯度
= BH2*(1-BH2)*SUMPRODUCT(δ_output, W_output)

7.2 多分类改造

One-hot编码输出
在这里插入图片描述
Softmax激活函数:

# 输出1的概率
= EXP(BF2)/(EXP(BF2)+EXP(BG2)+EXP(BH2))

7.3 卷积操作模拟

手动实现卷积核

# 特征图计算
= SUMPRODUCT(OFFSET($B2,0,0,3,3), {1,0,-1;0,1,0;-1,0,1}
) 

八、Excel局限与Python衔接

8.1 Excel网络局限性

  • 最大神经元数:约1000(性能限制)
  • 训练速度:100样本/分钟
  • 无法实现:循环神经网络/注意力机制

8.2 迁移到Python代码

import numpy as np# 从Excel导入权重
W1 = np.loadtxt('hidden_weights.csv') 
W2 = np.loadtxt('output_weights.csv')# 前向传播
def forward(X):h = 1/(1+np.exp(-X.dot(W1))) y = 1/(1+np.exp(-h.dot(W2)))return y

8.3 真实MNIST识别结果

在这里插入图片描述

结语:从电子表格到深度学习

当你在Excel中目睹权重如何响应梯度信号,激活值如何如波浪般传递,神经网络不再是神秘的黑箱,而成为精密的数学机械。

关键认知升级

  1. 前向传播是加权和的接力赛
  2. 反向传播是误差的逆向溯源
  3. 激活函数决定神经元的"性格"
  4. 学习率是训练过程的"调速器"

行动指南

journey  title 神经网络掌握路线  section 基础理解  Excel模拟: 5: 已完成  数学推导: 3: 需加强  section 工程实践  PyTorch实现: 0: 待开始  模型部署: 0: 待开始  

现在打开Excel,在B2单元格输入第一个权重值——你即将开启的不仅是一次实验,而是对智能本质的深度探索。那些在电子表格中跳动的数字,正是AI世界的原子与分子。

附录:Excel神经网络模板

在这里插入图片描述

http://www.dtcms.com/a/339866.html

相关文章:

  • Flume学习笔记
  • OR+DBLINK的关联SQL优化思路
  • Transformer中的编码器和解码器是什么?
  • LLMs之RL之GSPO:《Group Sequence Policy Optimization》翻译与解读
  • 高校数字化转型实战:破解数据孤岛、构建智能指标体系与AI落地路径
  • 数据清理后续
  • 低功耗模式
  • Java配置文件
  • Consul- acl机制!
  • 01-Docker-简介、安装与使用
  • Linux学习-通信(信号,共享内存)
  • C++实现教务管理系统,文件操作账户密码登录(附源码)
  • gitlab、jenkins等应用集成ldap
  • AI学习之DeepSeek本地化部署
  • 数据结构-栈和队列
  • Go语言并发编程 ----- sync包
  • Js逆向案例 Scrape Spa2(Webpack自吐)
  • 2020年EAAI SCI1区TOP,基于ORPFOA算法的多无人机在线变化任务路径规划,深度解析+性能实测
  • RAG 面试题(实时更新补充)
  • 基于SpringBoot的篮球馆预约管理系统【2026最新】
  • 西门子博途DB数据块的详细用法以及如何与威纶通触摸屏变量关联
  • 中兴B862AV3.2M/B862AV3.1-M2 晨星mso9385_安卓9_原厂备份救砖包
  • 机械原理的齿轮怎么学?
  • 【网络运维】Playbook部署文件:Files模块库&JINJA2模板
  • 根据Wireshark捕获数据包时间和长度绘制电脑发射信号波形
  • 图论——Bellman-Ford和SPFA
  • 《AI 与人类创造力:是替代者还是 “超级协作者”?》​
  • 切换Font Awesome 7 后图标变形解决
  • C++编程学习(第25天)
  • 1A AMOLED显示屏电源芯片BCT1838