一、 核心直觉与基础定义

多层感知机的本质是一个万能函数逼近器(Universal Approximator)。它的核心逻辑是通过多层的线性变换非线性激活的交替,将输入空间的数据映射到输出空间,从而拟合出任意复杂的非线性函数。

1. 通用逼近定理(Intuition)

一个单隐藏层的 MLP(宽度足够大)可以以任意精度逼近任意连续函数 。这是神经网络的理论基础,也是它”万能”的来源。

直观理解

  • 每一层的线性变换 是在对空间进行旋转、拉伸、平移(仿射变换)
  • 非线性激活 是在引入折角/弯曲,打破线性叠加
  • 多层叠加后,网络能构造出任意扭曲的高维曲面

2. 网络结构定义

假设我们有一个 层的神经网络(通常输入层不计入 ,第 层为输出层)。

  • :第 层的神经元数量。

  • :第 层的权重矩阵。

  • :第 层的偏置向量。

  • :第 层的激活输出向量(其中 为输入数据)。

  • :第 层的线性组合输出(未激活)。

  • :非线性激活函数(如 ReLU, Sigmoid, Tanh)。


二、 正向传播(Forward Propagation)

正向传播是数据从输入侧流向输出侧的过程。对于第 层,前向传播的数学公式非常简洁:

线性变换:

非线性激活:

【代码实现视角的维度校验】

  • 的矩阵。

  • 的列向量。

  • 相乘结果 的维度是

  • 加上同维度的偏置 ,得到 的向量 ,逐元素(element-wise)经过激活函数后,得到 的向量


三、 损失函数(Loss Function)

为了让网络学习,我们需要一个标量函数 来衡量网络输出 与真实标签 之间的差距。

常见的损失函数:

  1. 均方误差(MSE)(常用于回归,如 Critic 网络预估 Value):

  2. 交叉熵(Cross-Entropy)(常用于分类,结合 Softmax):


四、 反向传播(Backpropagation)严谨推导

反向传播的本质是多变量微积分中的链式法则(Chain Rule)。它的目标是求出标量损失 对所有参数 的偏导数,以便使用梯度下降更新它们。

为了推导清晰,我们引入一个极其重要的中间变量——局部梯度(或误差项) ,它表示损失对第 层未激活输出 的导数:

推导反向传播,就是推导反向传播的四大核心方程。这是这篇笔记最需要记忆的部分。

方程 1:输出层的误差

根据链式法则,损失 对输出层 的偏导:

(注: 表示 Hadamard 乘积,即逐元素相乘。 是激活函数的导数。)

如果输出层使用 Softmax 且损失是交叉熵,这个公式可以极度化简为非常优雅的形式:

【推导:Cross-Entropy + Softmax 的简化】

,损失

第一步:对 求偏导(商的求导法则):

其中 是 Kronecker delta( 时为 1,否则为 0)。

第二步:链式法则

第三步:因为 (one-hot 标签),所以:

。这意味着输出层的梯度直接是预测概率减真实标签,无需显式计算激活函数的导数!

方程 2:隐藏层的误差传播 (将误差从第 层传回第 层)

当前层的误差 来源于下一层的误差

已知 ,且

根据多变量链式法则(矩阵微积分):

继续对 求导,只需乘上激活函数的导数(逐元素):

记忆点:下一层的权重矩阵转置,乘以下一层的误差,再逐元素乘上当前层激活函数的导数。

方程 3:损失对权重 的梯度

已知 ,我们要计算

根据矩阵微积分,标量对矩阵的导数可以由外积(Outer Product)得到:

【维度校验】

两者的外积是一个 的矩阵,完美匹配 的维度!

方程 4:损失对偏置 的梯度

因为 的偏导是单位阵(即 的变化量等于 的变化量),所以:


五、 参数更新(Optimization)

拿到梯度后,就可以使用优化算法(如 SGD, Adam 等)更新权重。最基础的梯度下降(Gradient Descent)公式为:

(其中 为学习率 Learning Rate)


附录:常用激活函数及其导数

在编写底层推理代码时,激活函数及其导数通常被硬编码为独立的算子:

  1. Sigmoid:

  2. Tanh:

  3. ReLU (Rectified Linear Unit):


为了更直观地感受一个神经元内部的正向计算与导数(局部梯度)变化,我为你生成了一个交互式的单神经元(感知机)模拟器。你可以手动调节输入值和权重,观察不同激活函数对前向输出 和反向传播至关重要的导数项 的影响。