跳到主要内容

神经网络与前向传播

要解决的问题

如何用可微分的函数堆叠,将输入(如文本 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(l1)+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}

参考链接