在深度学习的黑盒中神经网络是如何“学习”的很多初学者会被复杂的代码和框架绕晕。今天我们将剥开代码的外衣通过一份纯手工打造的Excel计算示例一步步拆解多层感知机MLP的前向传播与反向传播过程。1. 我们的神经网络结构基于Excel数据根据我们的Excel表格这是一个没有使用非线性激活函数即线性激活的简易MLP网络片段。我们取其中一个神经元的计算链路来看输入特征 (): 5隐藏层权重 (): 10隐藏层偏置 (): 10输出层权重 (): 10真实目标值 (): 208学习率 (): 0.012. 第一步前向传播 (Forward Propagation)前向传播就是网络根据当前的权重猜一个答案的过程。隐藏层计算隐藏层加权和 计算(表格中“隐藏层加权和”与“隐藏层输出值”均为60)输出层计算假设经过其他神经元的累加及输出偏置后当前网络的**最终输出值 ()**为9520。3. 第二步计算误差 (Loss Calculation)网络猜出来的答案9520和真实答案208差距有多大我们用**均方误差MSE**的平方项来表示误差平方计算差距非常大接下来网络需要通过“反向传播”来纠正这个错误。4. 第三步反向传播与链式求导 (Backward Propagation)我们需要计算误差对每一个权重的导数梯度以此来决定权重该往哪个方向调整。① 对输出层的求导误差的源头误差对输出值的导数 ()计算② 更新输出层权重 ()导数 误差导数隐藏层输出 调整幅度 导数学习率 新 原- 调整幅度 ③ 更新隐藏层权重 () 与偏置 ()首先计算误差传递到隐藏层的梯度隐藏层梯度 () 误差导数接着更新和导数输入调整幅度新导数调整幅度新5. 总结经过一次迭代我们的权重产生了巨大的调整因为没有归一化且学习率相对当前误差来说偏大导致了梯度爆炸现象。通过这种计算误差 - 链式求导 - 更新参数的循环这就是Excel表格中所展示的神经网络学习的本质