跳到主要内容

神经网络与前向传播

要解决的问题​

如何用可微分的函数堆叠,将输入(如文本 embedding、图像像素)映射到输出(如 logits、类别)?前向传播定义了从输入到预测的计算图,是训练与推理的基础。

单层感知机​

z=Wx+b,h=σ(z)\mathbf{z} = \mathbf{W}\mathbf{x} + \mathbf{b}, \quad \mathbf{h} = \sigma(\mathbf{z})
  • W\mathbf{W}:权重;b\mathbf{b}:偏置;σ\sigma:非线性激活(ReLU、GELU 等,见 1.3.3 激活函数)。

多层前馈网络(MLP / FFN)​

堆叠 LL 层:h(0)=x\mathbf{h}^{(0)}=\mathbf{x},h(l)=σ(W(l)h(l−1)+b(l))\mathbf{h}^{(l)} = \sigma(\mathbf{W}^{(l)}\mathbf{h}^{(l-1)}+\mathbf{b}^{(l)})。

Transformer 中 FFN 即两层 MLP + 激活(常 SwiGLU),见 2.1.5 前馈网络。

前向传播流程​

  1. 输入嵌入(token → 向量)
  2. 逐层:线性变换 → 激活 →(可选)归一化、残差
  3. 输出头:语言模型为 vocab 上的 logits

参数量与计算量(量级)​

单层线性:参数量 ≈din×dout\approx d_{\text{in}} \times d_{\text{out}};FLOPs 与同阶。LLM 总参数主要集中在 Attention 与 FFN 的线性层。

与反向传播的关系​

前向得到 loss 后,反向传播(见 1.3.2)沿计算图求梯度,更新 W,b\mathbf{W},\mathbf{b}。

参考链接​