这是一个非常深刻的问题,直指两种方法在统计效率上的核心差异。方差的变化规律,是理解为什么几何平均在工程上更受青睐的关键。
为了清晰地对比,我们依然沿用之前的设定:每个 token 的重要性比率 (r_t) 是独立同分布的随机变量,其均值为 (\mu),方差为 (\sigma^2)。我们考察随着序列长度 (T) 的增加,直接乘积 (P_T) 和几何平均 (G_T) 的方差如何变化。
1. 直接乘积 (P_T = \prod_{t=1}^T r_t) 的方差
数学推导
由于 (r_t) 相互独立,乘积的期望等于期望的乘积。方差的计算稍微复杂一些,但我们可以利用独立随机变量乘积的方差公式:
[
\text{Var}(P_T) = \mathbb{E}[P_T^2] - (\mathbb{E}[P_T])^2
]
其中:
[
\mathbb{E}[P_T] = \prod_{t=1}^T \mathbb{E}[r_t] = \mu^T
]
[
\mathbb{E}[P_T^2] = \prod_{t=1}^T \mathbb{E}[r_t^2] = \prod_{t=1}^T (\text{Var}(r_t) + (\mathbb{E}[r_t])^2) = (\sigma^2 + \mu^2)^T
]
因此:
[
\text{Var}(P_T) = (\sigma^2 + \mu^2)^T - \mu^{2T}
]
方差随 (T) 的增长规律
- 核心观察: 方差由两个指数项构成。
- 当 (\mu > 1) 时: 两项都指数级增长,但 ((\sigma^2 + \mu^2) > \mu^2),所以第一项增长更快。(\text{Var}(P_T)) 随着 (T) 增加而指数级爆炸式增长。
- 当 (\mu < 1) 时: 两项都指数级衰减到 0。但相对而言,(\text{Var}(P_T)) 也随着 (T) 增加而指数级衰减。
- 当 (\mu = 1) 时: 这是重要性采样中最理想但也最脆弱的情况。此时 (\text{Var}(P_T) = (1 + \sigma^2)^T - 1)。只要 (\sigma^2 > 0)(即 (r_t) 不是恒为 1),方差依然随着 (T) 增加而指数级增长。
结论: 除非 (r_t) 恒等于 1(即 (p) 和 (q) 完全相同),否则直接乘积 (P_T) 的方差会随着序列长度 (T) 的增加而指数级增长。这就是重要性采样在实际应用中面临的“方差爆炸”问题,导致估计量极其不稳定,几乎不可用。
2. 几何平均 (G_T = \left( \prod_{t=1}^T r_t \right)^{1/T}) 的方差
数学推导
分析几何平均的方差,更自然的方式是在对数空间进行。令 (Y_t = \log r_t),并假设 (Y_t) 独立同分布,其均值为 (\mu_y),方差为 (\sigma_y^2)。
那么:
[
\log G_T = \frac{1}{T} \sum_{t=1}^T Y_t
]
[
\mathbb{E}[\log G_T] = \mu_y
]
[
\text{Var}(\log G_T) = \frac{\sigma_y^2}{T}
]
现在我们想求 (G_T = \exp(\log G_T)) 本身的方差。这需要用到对数正态分布的性质。如果 (\log G_T) 是正态分布(根据中心极限定理,当 (T) 较大时近似成立),那么 (G_T) 近似服从对数正态分布。对于一个对数正态变量,其方差为:
[
\text{Var}(G_T) \approx \left( \exp(\sigma_y^2 / T) - 1 \right) \cdot \exp(2\mu_y + \sigma_y^2 / T)
]
方差随 (T) 的增长规律
- 核心观察: 方差公式中的关键项是 (\sigma_y^2 / T),它出现在指数函数的参数中。
- 当 (T) 很小时: (\sigma_y^2 / T) 可能比较大,(G_T) 的方差可能较大。
- 当 (T) 增大时: (\sigma_y^2 / T) 趋向于 0。
- 利用近似 (e^x \approx 1 + x)(当 (x) 很小时),我们有:
[
\text{Var}(G_T) \approx \left( (1 + \frac{\sigma_y^2}{T}) - 1 \right) \cdot \exp(2\mu_y) = \frac{\sigma_y^2}{T} \cdot \exp(2\mu_y)
]
- 利用近似 (e^x \approx 1 + x)(当 (x) 很小时),我们有:
- 关键结论: 随着 (T) 的增加,几何平均 (G_T) 的方差以 (1/T) 的速度衰减到 0。
3. 直观对比与总结
为了让你更直观地感受这种差异,我们来看一张对比表(假设 (\mu = 1, \sigma^2 = 0.1),即 (r_t) 围绕 1 波动):
| 序列长度 (T) | 直接乘积 (P_T) 的方差 | 几何平均 (G_T) 的方差 | 对比 |
|---|---|---|---|
| 1 | (0.1) | (0.1) | 相同 |
| 10 | ((1.1)^{10} - 1 \approx 1.59) | (\approx 0.1 / 10 = 0.01) | 乘积方差是几何平均方差的 159倍 |
| 100 | ((1.1)^{100} - 1 \approx 13780) | (\approx 0.1 / 100 = 0.001) | 乘积方差是几何平均方差的 1378万倍 |
| 1000 | ((1.1)^{1000} - 1 \approx 2.5 \times 10^{41}) | (\approx 0.1 / 1000 = 0.0001) | 乘积方差是几何平均方差的 (2.5 \times 10^{45})倍 |
最终结论
| 特性 | 直接乘积 (P_T) | 几何平均 (G_T) |
|---|---|---|
| 方差随 (T) 的变化 | 指数级增长(除非 (p=q) 精确成立) | 以 (1/T) 速率衰减到 0 |
| 统计含义 | 随着序列变长,估计量越来越不可靠,单个样本就能主导整个估计。 | 随着序列变长,估计量越来越稳定,收敛到真实平均值。 |
| 工程后果 | 训练不稳定,梯度更新被个别长序列的极端权重支配。 | 训练稳定,长短序列贡献均衡,模型收敛更平滑。 |
为什么 LLM 的 GSPO 倾向于使用几何平均(或其变体)?
这张方差对比表就是最直接的答案。在长序列(如 (T=1024) 或更长)的场景下,直接乘积的方差会天文数字般地爆炸,导致任何基于它的学习算法都无法收敛。而几何平均的方差随着序列增长反而越来越小,提供了统计学习所需的稳定性。虽然几何平均会引入一些偏差,但在“有偏但稳定”和“无偏但发散”之间,工程实践几乎总是选择前者。