deepseek原理笔记(1)

deepseek原理综述

🔢 核心思想:下一个词的预测

大型语言模型的本质是一个概率模型。给定一个词序列(即上下文或提示),其根本任务是预测下一个最可能出现的词。

  • 基本设定:设有一个词序列(w_1, w_2, w_3, \dots, w_{t-1}),其中每个(w_i)来自一个庞大的词汇表 (V)。
  • 核心目标:计算在给定上文的情况下,下一个词 (w_t) 是词汇表中任意一个词的条件概率:

    $$ P(w_t | w_1, w_2, \dots, w_{t-1}) $$

    这个条件概率对词汇表中的所有词(例如5万个)构成一个概率分布。理想情况下,模型应使真实的下一个词的概率尽可能高。

🧮 模型架构:概率的计算路径

我们无法直接计算 (P(w_t | w_1, w_2, \dots, w_{t-1})),因为序列组合近乎无限。Transformer 架构通过以下步骤近似这个概率:

1. 词嵌入 (Embedding)

将每个离散的词 (w_i) 映射为一个连续的、稠密的向量表示 (\mathbf{x}_i \in \mathbb{R}^d)。这个向量能够捕捉词的语义和语法信息。

  • 通过一个可学习的嵌入矩阵 (\mathbf{E} \in \mathbb{R}^{|V| \times d}) 实现。

2. 位置编码 (Positional Encoding)

由于 Transformer 的自注意力机制本身不包含位置信息,需要显式注入每个词在序列中的位置信息。

$$ \mathbf{h}_i^{(0)} = \mathbf{x}_i + \mathbf{p}_i $$

其中 ( \mathbf{p}_i ) 是位置 (i) 对应的编码向量。

3. 通过 Transformer 块进行上下文编码

这是模型的核心。序列中的每个词向量会通过多层(L 层)的 Transformer 块进行处理,每一层都包含自注意力 (Self-Attention)前馈神经网络 (Feed-Forward Network, FFN),逐步融合整个上下文的信息。

  • 自注意力机制:允许序列中的每个词与其他所有词交互,动态计算"上下文相关"的表示。

    • 查询 (Query)、键 (Key)、值 (Value):对于每个词 (i),通过线性变换生成三个向量:

      $$ \mathbf{q}_i^{(l)} = \mathbf{W}_Q^{(l)} \mathbf{h}_i^{(l-1)}, \quad \mathbf{k}_i^{(l)} = \mathbf{W}_K^{(l)} \mathbf{h}_i^{(l-1)}, \quad \mathbf{v}_i^{(l)} = \mathbf{W}_V^{(l)} \mathbf{h}_i^{(l-1)} $$

  • 注意力分数与权重:计算词 (i) 对词 (j) 的注意力分数,并通过 Softmax 转换为权重:

    注意力分数

    $$ e_{ij} = \frac{\mathbf{q}_i^{(l)} \cdot (\mathbf{k}_j^{(l)})^T}{\sqrt{d_k}} $$

    注意力权重

    $$ \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k=1}^{t-1} \exp(e_{ik})} $$

  • 加权求和:对所有的 Value 向量进行加权求和,得到词 (i) 新的表示:

$$ \mathbf{z}_i^{(l)} = \sum_{j=1}^{t-1}\alpha_{ij}\mathbf{v}_j^{(l)} $$

  • 前馈神经网络 (FFN):对自注意力的输出进行非线性变换,增加模型的表达能力。

    $$ \mathbf{h}_i^{(l)} = \text{FFN}^{(l)}(\mathbf{z}_i^{(l)}) = \text{ReLU}(\mathbf{z}_i^{(l)} \mathbf{W}_1^{(l)} + \mathbf{b}_1^{(l)}) \mathbf{W}_2^{(l)} + \mathbf{b}_2^{(l)} $$

经过 L 层这样的处理后,我们得到了序列中最后一个词 (w_{t-1}) 的最终、富含上下文信息的表示

$$ \mathbf{h}_{t-1}^{(L)} $$

这个向量可以被理解为整个上文 $(w_1,\, w_2,\, w_3,\, \dots,\, w_{t-1})$ 的浓缩编码。

4. 输出投影和 Softmax

将最终的隐藏状态 (\mathbf{h}_{t-1}^{(L)}) 投影回词汇表空间,并通过 Softmax 函数转换为概率分布。

  • 输出投影(Output Projection)

    $$ \mathbf{o}_{t} = \mathbf{h}_{t-1}^{(L)}\mathbf{W}_O + \mathbf{b}_O $$

    其中 (\mathbf{W}_O \in \mathbb{R}^{d \times |V|}),因此 (\mathbf{o}_t) 是一个 (|V|) 维的向量(称为 logits)。

  • Softmax 层:将 logits 转换为下一个词的概率分布:

    $$ P(w_t = v_i | w_1, \dots, w_{t-1}) = \frac{\exp(o_{t, i})}{\sum_{j=1}^{|V|} \exp(o_{t, j})} $$

    其中 (v_i) 是词汇表中的第 (i) 个词,(o_{t, i}) 是 (\mathbf{o}_t) 的第 (i) 个分量。

至此,模型完成了从输入序列到下一个词概率分布的数学计算。

📚 模型训练:最大似然估计

训练的目标是找到一组模型参数 (\Theta)(包括所有的 (\mathbf{W}_Q, \mathbf{W}_K, \mathbf{W}_V, \mathbf{W}_O)、嵌入矩阵等),使得模型在大量训练数据上的似然函数最大化。

  • 似然函数:对于一个长度为 (T) 的文本序列 ((w_1, w_2, \dots, w_T)),其似然函数是给定上文生成下一个词的联合概率:

    $$ P(w_1, w_2, \dots, w_T; \Theta) = \prod_{t=1}^{T} P(w_t | w_1, \dots, w_{t-1}; \Theta) $$

  • 对数似然与损失函数:实践中,我们通常使用对数似然,并将最大化问题转化为最小化负对数似然损失(即交叉熵损失)。对于单个样本 ((Context=w_1, \dots, w_{t-1}, Target=w_t)),其损失函数为:

    $$ \mathcal{L}(\Theta) = -\log P(w_t | w_1, \dots, w_{t-1}; \Theta) $$

    这个损失函数衡量了模型预测的概率分布与真实分布(一个 one-hot 向量,真实词位置为1,其余为0)之间的差异。

  • 参数优化:通过反向传播算法计算梯度,并使用梯度下降优化器(如 Adam)不断调整参数 (\Theta),使得对于训练数据中的每一个真实的下一个词,其预测概率 (P(w_t | \text{context})) 尽可能接近 1。

🚀 文本生成:从概率到文本的创作

训练好模型后,我们可以用它来生成文本。这是一个自回归(Autoregressive) 的过程:

  1. 开始:给定一个初始提示(如 "今天天气很")。
  2. 计算分布:模型计算下一个词的概率分布 ( P(w |\text{"今天天气很"}))。
  3. 采样:根据这个分布进行采样。常见的策略有:

    • 贪婪搜索 (Greedy Search):总是选择概率最高的词。但可能导致重复或单调的文本。
    • 核采样 (Top-p Sampling):从概率最大的词开始累积,直到累积概率超过一个阈值 (p)(如 0.9),然后只从这些候选词中采样。这能在保证生成质量的同时,引入随机性和创造性。
  4. 追加并重复:将采样得到的词(比如 "好")附加到序列末尾,新的序列变为 "今天天气很好"。然后重复步骤 2-4,直到生成结束标记或达到最大长度。

🔄 扩展推导一:训练过程的数学优化

1. 批量训练与梯度累积

实际训练中,我们使用小批量(mini-batch)数据来估计梯度:

批量损失函数

$$ \mathcal{L}_{\text{batch}}(\Theta) = -\frac{1}{B} \sum_{b=1}^{B} \sum_{t=1}^{T_b} \log P(w_t^{(b)} | w_1^{(b)}, \dots, w_{t-1}^{(b)}; \Theta) $$

其中 $B$ 是批量大小,$T_b$ 是第 $b$ 个序列的长度。

2. 梯度下降的数学细节

Adam 优化器的核心思想

Adam 通过计算梯度的一阶矩(均值)和二阶矩(未中心化的方差)的指数移动平均值,来为每个参数自适应地调整学习率。


🧮 完整数学步骤推导

设:

  • ( \Theta_t ):第 ( t ) 次迭代时的模型参数。
  • ( \mathcal{L}(\Theta_t) ):第 ( t ) 次迭代时的损失函数。
  • $g_t = \nabla_{\Theta}\mathcal{L}(\Theta_t)$:第 ( t ) 次迭代时损失函数关于参数的梯度。
  • ( \eta ):全局学习率。
  • ( \beta_1, \beta_2 \in [0, 1) ):指数衰减率,通常分别取 0.9 和 0.999。
  • ( \epsilon ):一个极小的常数,用于数值稳定(通常为 (10^{-8}))。

步骤 1:计算有偏一阶矩估计(动量)

计算梯度的指数移动平均值,它充当动量的角色,加速收敛并减少振荡。

$$ \mathbf{m}_t = \beta_1 \cdot \mathbf{m}_{t-1} + (1 - \beta_1) \cdot \mathbf{g}_t $$

  • ( \mathbf{m}_t ) 是当前一阶矩的估计值。
  • ( \mathbf{m}_{t-1} ) 是上一时刻的一阶矩估计值(初始时 ( \mathbf{m}_0 = \mathbf{0} ))。

步骤 2:计算有偏二阶矩估计(自适应学习率)

计算梯度平方的指数移动平均值,它反映了每个参数梯度幅度的历史变化,用于调整学习率。

$$ \mathbf{v}_t = \beta_2 \cdot \mathbf{v}_{t-2} + (1 - \beta_2) \cdot \mathbf{g}_t^2 $$

  • ( \mathbf{v}_t ) 是当前二阶矩的估计值。
  • ( \mathbf{v}_{t-1} ) 是上一时刻的二阶矩估计值(初始时 ( \mathbf{v}_0 = \mathbf{0} ))。
  • ( \mathbf{g}_t^2 ) 表示逐元素平方。

步骤 3:计算偏差校正的一阶矩估计

由于 ( \mathbf{m}_t ) 和 ( \mathbf{v}_t ) 在初始时间步被初始化为 0,它们在训练初期会偏向于 0。因此需要进行偏差校正。

$$ \hat{\mathbf{m}}_t = \frac{\mathbf{m}_t}{1 - \beta_1^t} $$

  • ( \beta_1^t ) 是 ( \beta_1 ) 的 ( t ) 次方。随着迭代次数 ( t ) 的增加,( 1 - \beta_1^t ) 会趋近于 1,校正的作用逐渐减弱。

步骤 4:计算偏差校正的二阶矩估计

同样地对二阶矩估计进行偏差校正。

$$ \hat{\mathbf{v}}_t = \frac{\mathbf{v}_t}{1 - \beta_2^t} $$

步骤 5:更新参数

使用校正后的矩估计来更新模型参数。

$$ \Theta_{t+1} = \Theta_t - \eta \cdot \frac{\hat{\mathbf{m}}_t}{\sqrt{\hat{\mathbf{v}}_t} + \epsilon} $$


🧠 扩展推导二:注意力机制的数学变体

1. 缩放点积注意力的数学推导

标准的注意力计算

$$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$

缩放因子 $\sqrt{d_k}$ 的数学原理
假设 $q$ 和 $k$ 的每个分量为独立随机变量,均值为0,方差为1,则:

$$ \text{Var}(q \cdot k) = d_k $$

因此,缩放后:

$$ \text{Var}\left(\frac{q \cdot k}{\sqrt{d_k}}\right) = 1 $$

这防止了softmax函数的输入值过大导致梯度消失。

2. 多头注意力的数学形式化

多头注意力的计算

$$ \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h)W^O $$

其中:

$$ \text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) $$

参数矩阵维度

  • $W_i^Q \in \mathbb{R}^{d_{\text{model}} \times d_k}$
  • $W_i^K \in \mathbb{R}^{d_{\text{model}} \times d_k}$
  • $W_i^V \in \mathbb{R}^{d_{\text{model}} \times d_v}$
  • $W^O \in \mathbb{R}^{h \cdot d_v \times d_{\text{model}}}$

通常设置 $d_k = d_v = d_{\text{model}}/h$。

📊 扩展推导三:位置编码的数学基础

1. 正弦位置编码的数学形式

原始Transformer的位置编码

$$ PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) $$

$$ PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) $$

这可以重写为

$$ PE_{(pos, 2i)} = \sin(pos \cdot \omega_i) $$

$$ PE_{(pos, 2i+1)} = \cos(pos \cdot \omega_i) $$

其中 $\omega_i = \frac{1}{10000^{2i/d_{\text{model}}}}$

2. 相对位置编码的数学推导

RoPE (Rotary Position Embedding) 的数学形式
对于位置 $m$ 的查询向量 $q$ 和位置 $n$ 的键向量 $k$:

$$ q_m^T k_n = (R_{\Theta, m}^d q)^T (R_{\Theta, n}^d k) = q^T R_{\Theta, n-m}^d k $$

其中旋转矩阵 $R_{\Theta, m}^d$ 为:

$$ R_{\Theta, m}^d = \begin{pmatrix} \cos m\theta_1 & -\sin m\theta_1 & 0 & 0 & \cdots & 0 & 0 \\ \sin m\theta_1 & \cos m\theta_1 & 0 & 0 & \cdots & 0 & 0 \\ 0 & 0 & \cos m\theta_2 & -\sin m\theta_2 & \cdots & 0 & 0 \\ 0 & 0 & \sin m\theta_2 & \cos m\theta_2 & \cdots & 0 & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & 0 & \cdots & \cos m\theta_{d/2} & -\sin m\theta_{d/2} \\ 0 & 0 & 0 & 0 & \cdots & \sin m\theta_{d/2} & \cos m\theta_{d/2} \end{pmatrix} $$

🏗️ 扩展推导四:现代架构的数学改进

1. Layer Normalization 的数学细节

LayerNorm的计算

$$ \text{LayerNorm}(\mathbf{x}) = \gamma \cdot \frac{\mathbf{x} - \mu}{\sigma} + \beta $$

其中:

$$ \mu = \frac{1}{d} \sum_{i=1}^d x_i, \quad \sigma = \sqrt{\frac{1}{d} \sum_{i=1}^d (x_i - \mu)^2 + \epsilon} $$

2. 残差连接的数学原理

残差网络的前向传播

$$ \mathbf{h}^{(l)} = f(\mathbf{h}^{(l-1)}) + \mathbf{h}^{(l-1)} $$

反向传播的梯度

$$ \frac{\partial \mathcal{L}}{\partial \mathbf{h}^{(l-1)}} = \frac{\partial \mathcal{L}}{\partial \mathbf{h}^{(l)}} \cdot \left(\frac{\partial f(\mathbf{h}^{(l-1)})}{\partial \mathbf{h}^{(l-1)}} + I\right) $$

这缓解了梯度消失问题。

3. SwiGLU激活函数的数学形式

SwiGLU的计算

$$ \text{SwiGLU}(x) = (\text{Swish}(xW) \odot (xV)) \cdot U $$

其中 $\text{Swish}(x) = x \cdot \sigma(\beta x)$,通常 $\beta=1$。

🎯 扩展推导五:损失函数的数学变体

1. 带标签平滑的交叉熵损失

标准交叉熵

$$ \mathcal{L} = -\sum_{i=1}^{|V|} y_i \log(p_i) $$

标签平滑后的目标

$$ y_i^{\text{smooth}} = (1 - \epsilon) \cdot y_i + \frac{\epsilon}{|V|} $$

其中 $\epsilon$ 是平滑参数(通常 0.1)。

2. 因果掩码的数学实现

自回归生成中的掩码

$$ M_{ij} = \begin{cases} 0 & \text{if } i \geq j \\ -\infty & \text{if } i < j \end{cases} $$

掩码后的注意力分数

$$ \text{Attention} = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}} + M\right)V $$

🔧 扩展推导六:推理优化的数学方法

1. 键值缓存(KV Cache)的数学原理

在自回归生成中,对于第 $t$ 个时间步:

没有KV Cache
需要重新计算所有

$$ \mathbf{K}_{1:t}^{(l)}, \quad \mathbf{V}_{1:t}^{(l)} $$

有KV Cache
只需计算 $K^{(l)}_t, V^{(l)}_t$ 并缓存,然后:

$$ K^{(l)}_{1:t} = [K^{(l)}_{1:t-1}, K^{(l)}_t] $$

$$ V^{(l)}_{1:t} = [V^{(l)}_{1:t-1}, V^{(l)}_t] $$

这减少了计算复杂度从 $O(t^2)$ 到 $O(t)$。

2. 量化的数学原理

线性量化

$$ x_{\text{quant}} = \text{round}\left(\frac{x - \min(x)}{\max(x) - \min(x)} \cdot (2^n - 1)\right) $$

反量化

$$ x_{\text{dequant}} = \frac{x_{\text{quant}}}{2^n - 1} \cdot (\max(x) - \min(x)) + \min(x) $$

📈 扩展推导七:模型评估的数学指标

1. 困惑度(Perplexity)的数学定义

困惑度

$$ \text{PPL} = \exp\left(-\frac{1}{N} \sum_{i=1}^N \log P(w_i | w_1, \dots, w_{i-1})\right) $$

其中 $N$ 是测试集的词数。

2. BLEU分数的数学计算

n-gram精度

$$ p_n = \frac{\sum_{C\in\{\text{Candidates}\}} \sum_{\text{n-gram}\in C} \text{Count}_{\text{clip}}(\text{n-gram})}{\sum_{C\in\{\text{Candidates}\}} \sum_{\text{n-gram}\in C} \text{Count}(\text{n-gram})} $$

BLEU分数

$$ \text{BLEU} = BP \cdot \exp\left(\sum_{n=1}^N w_n \log p_n\right) $$

其中 $BP$ 是 brevity penalty。

🧮 扩展推导八:概率图模型视角

1. 自回归模型的图模型表示

LLM可以表示为概率图模型中的有向图模型

联合概率分解

$$ P(w_{1:T}) = \prod_{t=1}^T P(w_t | w_{1:t-1}) $$

图模型结构

w₁ → w₂ → w₃ → ⋯ → w_T
  ↘    ↘    ↘         ↘
   →    →    →         →

每个词只依赖于其前面的所有词,形成完全的因果依赖结构。

2. 马尔可夫假设的松弛

与传统n-gram模型不同,Transformer不强制严格的马尔可夫假设:

$$ P(w_t | w_{1:t-1}) \neq P(w_t | w_{t-n+1:t-1}) $$

而是通过自注意力机制实现可变长度的依赖关系

📐 扩展推导九:信息论基础

1. 交叉熵与KL散度的关系

KL散度(相对熵)

$$ D_{KL}(P || Q) = \sum_x P(x) \log \frac{P(x)}{Q(x)} $$

交叉熵与KL散度的关系

$$ H(P, Q) = H(P) + D_{KL}(P || Q) $$

其中 $H(P) = -\sum_x P(x) \log P(x)$ 是真实分布的熵。

在LLM训练中,我们最小化:

$$ \mathcal{L} = H(P_{\text{data}}, P_{\text{model}}) = -\mathbb{E}_{x \sim P_{\text{data}}}[\log P_{\text{model}}(x)] $$

2. 互信息与表示学习

词与上下文之间的互信息

$$ I(w_t; w_{1:t-1}) = H(w_t) - H(w_t | w_{1:t-1}) $$

训练过程实际上是在最大化目标词与其上下文之间的互信息。

🎲 扩展推导十:贝叶斯学习视角

1. 参数的后验分布

从贝叶斯视角看,训练是在计算参数的后验分布:

$$ P(\Theta | D) = \frac{P(D | \Theta) P(\Theta)}{P(D)} $$

其中:

  • $P(\Theta)$ 是先验分布(通过权重初始化实现)
  • $P(D | \Theta)$ 是似然函数
  • $P(\Theta | D)$ 是后验分布

2. 最大后验概率估计

实际训练中,我们使用最大后验概率估计

$$ \Theta_{\text{MAP}} = \arg\max_{\Theta} \log P(D | \Theta) + \log P(\Theta) $$

权重衰减正则化对应高斯先验:

$$ P(\Theta) = \mathcal{N}(0, \lambda^{-1}I) $$

🌐 扩展推导十一:流形学习视角

1. 词嵌入空间的几何结构

词嵌入将离散符号映射到连续空间 $\mathbb{R}^d$,形成语义流形

语义相似性的几何表示

$$ \text{sim}(w_i, w_j) \approx \cos(\mathbf{e}_i, \mathbf{e}_j) = \frac{\mathbf{e}_i \cdot \mathbf{e}_j}{\|\mathbf{e}_i\| \|\mathbf{e}_j\|} $$

2. 注意力机制的几何解释

自注意力可以看作在语义流形上的消息传递

$$ \mathbf{z}_i = \sum_j \alpha_{ij} \mathbf{v}_j $$

其中权重 $\alpha_{ij}$ 由查询-键相似度决定,实现了语义空间中的自适应邻域聚合

🔢 扩展推导十二:张量分解视角

1. 语言模型作为张量分解

考虑整个序列的联合概率张量:

$$ \mathcal{P}_{i_1, i_2, \dots, i_T} = P(w_1 = v_{i_1}, w_2 = v_{i_2}, \dots, w_T = v_{i_T}) $$

这个张量的维度是 $|V|^T$,直接存储不可行。

2. 神经网络的低秩近似

Transformer通过参数化函数提供了低秩分解

$$ \mathcal{P}_{i_1, i_2, \dots, i_T} \approx \prod_{t=1}^T f_\Theta(v_{i_t} | v_{i_1}, \dots, v_{i_{t-1}}) $$

其中 $f_\Theta$ 是神经网络定义的函数。

📊 扩展推导十三:动力系统视角

1. Transformer作为离散动力系统

每一层Transformer可以看作一个动力系统:

$$ \mathbf{H}^{(l)} = F(\mathbf{H}^{(l-1)}; \Theta^{(l)}) $$

其中 $\mathbf{H}^{(l)} \in \mathbb{R}^{T \times d}$ 是第 $l$ 层的隐藏状态矩阵。

2. 固定点与吸引子

训练好的Transformer在推理时寻找动力系统的固定点

$$ \mathbf{H}^* = F(\mathbf{H}^*; \Theta) $$

不同的上下文输入对应不同的吸引子盆地。

🧩 扩展推导十四:组合数学视角

1. 序列生成的组合结构

长度为 $T$ 的序列有 $|V|^T$ 种可能组合。LLM通过学习为语义合理的序列分配高概率来减少有效搜索空间。

2. 束搜索的数学优化

束搜索(Beam Search) 维护前 $k$ 个最有可能的序列:

设 $B_t$ 是时间步 $t$ 的候选序列集合,每个序列的概率为:

$$ P(w_{1:t}) = \prod_{i=1}^t P(w_i | w_{1:i-1}) $$

束搜索选择:

$$ B_{t+1} = \underset{|S|=k}{\arg\max} \left\{ P(w_{1:t+1}) : w_{1:t} \in B_t, w_{t+1} \in V \right\} $$

🔍 扩展推导十五:泛化理论视角

1. 神经切线核(NTK)理论

在无限宽极限下,神经网络训练动力学由神经切线核描述:

$$ \Theta_0(x, x') = \langle \nabla_\Theta f(x; \Theta_0), \nabla_\Theta f(x'; \Theta_0) \rangle $$

训练动力学变为:

$$ f_t(x) \approx f_0(x) + \Theta_0(x, X)^T \Theta_0(X, X)^{-1} (Y - f_0(X)) $$

2. 双下降现象

LLM表现出双下降现象

  • 当参数数量 $P$ 小于数据点数量 $N$ 时,测试误差先下降后上升
  • 当 $P > N$ 时,测试误差再次下降

这挑战了传统的偏差-方差权衡理论。

🎯 扩展推导十六:最优传输视角

1. 注意力作为最优传输

注意力机制可以解释为最优传输问题

$$ \min_{\alpha_{ij}} \sum_{i,j} \alpha_{ij} c(\mathbf{q}_i, \mathbf{k}_j) - \epsilon H(\alpha) $$

其中:

  • $c(\mathbf{q}_i, \mathbf{k}_j)$ 是传输成本
  • $H(\alpha)$ 是熵正则化项
  • $\epsilon$ 控制熵正则化强度

解就是softmax注意力权重。

📈 扩展推导十七:学习理论视角

1. Rademacher复杂度

对于函数类 $\mathcal{F}$,经验Rademacher复杂度为:

$$ \hat{\mathfrak{R}}_n(\mathcal{F}) = \mathbb{E}_\sigma \left[ \sup_{f \in \mathcal{F}} \frac{1}{n} \sum_{i=1}^n \sigma_i f(x_i) \right] $$

Transformer的复杂度与其深度、宽度和注意力头数有关。

2. 泛化界

基于Rademacher复杂度的泛化界:

$$ L(f) \leq \hat{L}(f) + 2\hat{\mathfrak{R}}_n(\mathcal{F}) + O\left(\sqrt{\frac{\log(1/\delta)}{n}}\right) $$

其中 $L(f)$ 是真实风险,$\hat{L}(f)$ 是经验风险。

🔮 扩展推导十八:量子力学类比

1. 注意力作为量子测量

可以将注意力机制类比为量子测量过程

  • 查询向量 $\mathbf{q}_i$ 对应测量算符
  • 键向量 $\mathbf{k}_j$ 对应量子态
  • 注意力权重 $\alpha_{ij}$ 对应测量概率:$|\langle \mathbf{q}_i | \mathbf{k}_j \rangle|^2$

2. 叠加态与混合态

词向量的线性组合可以看作量子叠加态

$$ |\psi\rangle = \sum_i c_i |w_i\rangle $$

其中 $\{ |w_i\rangle \}$ 构成一组基态,$c_i$ 是复数系数且满足 $\sum_i |c_i|^2 = 1$。注意力机制实现了从叠加态到确定状态的坍缩

🎓 扩展推导十九:微分几何视角

1. 损失景观的几何结构

参数空间 $\Theta \in \mathbb{R}^D$ 形成一个高维流形,损失函数 $\mathcal{L}(\Theta)$ 定义在这个流形上。

Hessian矩阵

$$ \mathbf{H}(\Theta) = \nabla_\Theta^2 \mathcal{L}(\Theta) $$

其特征值分布揭示了损失景观的曲率性质:

  • 大特征值:尖锐方向
  • 小特征值:平坦方向

2. 流形假设与内在维度

自然语言数据存在于高维空间中的低维流形上:

设数据流形的内在维度为 $d_{\text{intrinsic}}$,通常有:

$$ d_{\text{intrinsic}} \ll d_{\text{ambient}} $$

LLM通过学习将这个低维流形嵌入到隐藏空间中。

📊 扩展推导二十:统计力学类比

1. 玻尔兹曼分布与能量模型

Softmax输出可以解释为玻尔兹曼分布

$$ P(w_t = v_i | \text{context}) = \frac{e^{-\beta E(v_i)}}{\sum_j e^{-\beta E(v_j)}} $$

其中 $E(v_i) = - \mathbf{o}_{t,i}$ 可以看作"能量",$\beta=1$ 是逆温度。

2. 配分函数与自由能量

配分函数

$$ Z = \sum_{j=1}^{|V|} e^{-\beta E(v_j)} $$

自由能量

$$ F = -\frac{1}{\beta} \log Z $$

模型训练实际上是在学习一个能量函数,使得合理序列具有低能量。

🔄 扩展推导二十一:信息瓶颈理论

1. 信息瓶颈原理

对于输入 $X$、目标 $Y$ 和中间表示 $T$,信息瓶颈寻求:

$$ \min_{P(T|X)} I(X;T) - \beta I(T;Y) $$

其中:

  • $I(X;T)$ 是输入与表示之间的互信息
  • $I(T;Y)$ 是表示与目标之间的互信息
  • $\beta$ 是权衡参数

2. Transformer中的信息流

在Transformer的每一层中:

$$ T_l = f_l(T_{l-1}) $$

信息瓶颈理论预测,在深度网络中:

  • 前几层:$I(T;Y)$ 增加,$I(T;X)$ 增加
  • 中间层:$I(T;Y)$ 达到平台,$I(T;X)$ 开始减少
  • 深层:$I(T;X)$ 减少(压缩),$I(T;Y)$ 保持

🧠 扩展推导二十二:因果推理视角

1. 干预与反事实推理

LLM可以看作学习了一个因果图模型,其中词之间具有因果依赖关系。

干预操作 $do(w_t = v)$ 表示强制设定 $w_t$ 为 $v$,而不影响其父节点。

2. 因果注意力

标准注意力:

$$ \alpha_{ij} = \text{softmax}\left(\frac{\mathbf{q}_i \cdot \mathbf{k}_j}{\sqrt{d_k}}\right) $$

因果注意力添加掩码:

$$ \alpha_{ij} = \begin{cases} \text{softmax}\left(\frac{\mathbf{q}_i \cdot \mathbf{k}_j}{\sqrt{d_k}}\right) & \text{if } j \leq i \\ 0 & \text{otherwise} \end{cases} $$

这确保了因果性:未来词不影响过去词的表示。

📈 扩展推导二十三:动力系统稳定性

1. 李雅普诺夫稳定性

考虑Transformer层的迭代:

$$ \mathbf{H}^{(l+1)} = F(\mathbf{H}^{(l)}) $$

如果存在李雅普诺夫函数 $V(\mathbf{H})$ 使得:

$$ V(F(\mathbf{H})) < V(\mathbf{H}) \quad \forall \mathbf{H} \neq \mathbf{H}^* $$

则系统全局稳定到固定点 $\mathbf{H}^*$。

2. 梯度爆炸/消失的数学分析

梯度范数

$$ \left\|\frac{\partial \mathcal{L}}{\partial \mathbf{H}^{(l)}}\right\| = \left\|\frac{\partial \mathcal{L}}{\partial \mathbf{H}^{(L)}} \prod_{k=l}^{L-1} \frac{\partial \mathbf{H}^{(k+1)}}{\partial \mathbf{H}^{(k)}}\right\| $$

梯度爆炸/消失取决于雅可比矩阵 $\frac{\partial \mathbf{H}^{(k+1)}}{\partial \mathbf{H}^{(k)}}$ 的谱半径。

添加新评论