13:反向传播与多层感知机
在本课程中,我们将深入研究反向传播以及如何创建一个简单的多层感知机 (MLP) 神经网络。我们首先回顾基本的神经网络及其架构,然后从零开始实现一个简单的 MLP。我们重点理解神经网络背景下的链式法则和反向传播,并演示如何使用 Python 和 SimPy 库计算导数。
我们还将讨论链式法则在计算应用于模型的均方误差 (MSE) 梯度中的重要性,并演示如何使用 PyTorch 计算导数,以及如何通过创建 ReLU 和线性函数类来简化过程。然后,我们将探讨浮点数学的问题,并介绍 log sum exp 技巧来克服这些问题。最后,我们将为简单的神经网络创建一个训练循环。
讨论的概念
- 基本神经网络架构
- 多层感知机 (MLP) 实现
- 梯度和导数
- 链式法则和反向传播
- Python 调试器 (pdb)
- 使用 PyTorch 计算导数
- ReLU 和线性函数类
- Log sum exp 技巧
log_softmax()
函数和交叉熵损失- 简单神经网络的训练循环