点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。
前向传播/反向传播可视化 × 激活函数对比实验
读者收获:深度理解网络工作原理
当神经网络不再是黑箱,而是在Excel表格中清晰展现每一个计算步骤,你将在神经元的世界里获得上帝视角。本文将带你用Excel亲手构建一个数字识别网络,彻底掌握深度学习的底层原理。
一、Excel神经网络的非凡意义
1.1 为什么选择Excel?
- 透明计算:每个公式可见,告别"黑箱"困惑
- 实时可视化:权重变化、梯度流动直观呈现
- 零代码门槛:无需编程基础理解核心概念
- 历史溯源:追溯任意时刻的网络状态
1.2 我们将构建的微型网络
网络规格:
- 输入:25维(5×5二值化图像)
- 隐藏层:3个神经元(带Sigmoid激活)
- 输出层:1个神经元(Sigmoid激活)
- 目标:识别手写数字0和1
二、数据准备:制作微型MNIST
2.1 创建数字模板库
在Excel中实现:
- B2:AF3区域创建像素网格
- AG列添加标签(0或1)
2.2 设计数据生成器
# 生成新样本(带随机噪点)
=IF(RAND()<0.8, 原值, 1-原值)
三、前向传播:Excel中的信号流动
3.1 权重矩阵初始化
Excel实现:
- 隐藏层权重:AK2:BC4区域
=RAND()*0.1-0.05
(-0.05到0.05随机值) - 输出层权重: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 实时可视化技巧
- 权重热力图:
# 条件格式 → 色阶
红:负权重,蓝:正权重
- 激活强度条:
# 数据条格式
长度表示激活值大小
四、反向传播: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实现要点:
- 新增权重矩阵(5×3)
- 添加梯度计算链
# 第二隐藏层梯度
= 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中目睹权重如何响应梯度信号,激活值如何如波浪般传递,神经网络不再是神秘的黑箱,而成为精密的数学机械。
关键认知升级:
- 前向传播是加权和的接力赛
- 反向传播是误差的逆向溯源
- 激活函数决定神经元的"性格"
- 学习率是训练过程的"调速器"
行动指南:
journey
title 神经网络掌握路线
section 基础理解
Excel模拟: 5: 已完成
数学推导: 3: 需加强
section 工程实践
PyTorch实现: 0: 待开始
模型部署: 0: 待开始
现在打开Excel,在B2单元格输入第一个权重值——你即将开启的不仅是一次实验,而是对智能本质的深度探索。那些在电子表格中跳动的数字,正是AI世界的原子与分子。