跳转至

DL 八股总结

约 891 个字 预计阅读时间 3 分钟

优化目标函数

一、基本定义

1. KL散度(相对熵)

KL散度用于衡量两个概率分布 \(p(x)\)\(q(x)\) 之间的差异,公式为:

\[ D_{\text{KL}}(p \parallel q) = \sum_x p(x) \log\left(\frac{p(x)}{q(x)}\right) \]
  • 性质
  • 非负性:\(D_{\text{KL}}(p \parallel q) \geq 0\),当且仅当 \(p = q\) 时取等号。
  • 非对称性:\(D_{\text{KL}}(p \parallel q) \neq D_{\text{KL}}(q \parallel p)\),因此不是严格的距离。
  • 物理意义:表示用分布 \(q\) 近似 \(p\) 时所损失的信息量。

2. 交叉熵

交叉熵描述用分布 \(q\) 表示真实分布 \(p\) 的平均编码长度,公式为:

\[ H(p, q) = -\sum_x p(x) \log q(x) \]
  • 应用场景
    在机器学习中,\(p(x)\) 通常是样本的真实分布(如标签),\(q(x)\) 是模型预测的分布。交叉熵常用于分类问题的损失函数(如对数损失),衡量预测分布与真实分布的差异。

二、数学关系:KL散度 = 交叉熵 - 信息熵

\(H(p)\) 为真实分布 \(p\) 的信息熵(熵),定义为:

\[ H(p) = -\sum_x p(x) \log p(x) \]

则 KL散度可分解为:

\[ D_{\text{KL}}(p \parallel q) = H(p, q) - H(p) \]

推导过程

\[ D_{\text{KL}}(p \parallel q) = \sum_x p(x) \log p(x) - \sum_x p(x) \log q(x) = -H(p) + H(p, q) \]

关键结论

真实分布 \(p\) 固定 时(如训练数据的标签分布已知),\(H(p)\) 是常数。此时:
- 最小化 KL散度 \(D_{\text{KL}}(p \parallel q)\) 等价于 最小化交叉熵 \(H(p, q)\)
- 这就是为什么机器学习中常用交叉熵作为损失函数——它本质上隐式地优化了KL散度,且无需显式计算 \(H(p)\)

三、应用场景对比

场景 KL散度 交叉熵
物理意义 衡量两个分布的差异(相对熵)。 用预测分布编码真实分布的平均长度。
公式 \(\sum p \log(p/q)\) \(-\sum p \log q\)
是否需要真实分布熵 需要(\(H(p)\) 需已知)。 不需要(隐式包含 \(H(p)\))。
机器学习中的作用 理论分析(如生成模型评估)。 直接作为损失函数(如分类问题)。
对称性 非对称(\(p \parallel q \neq q \parallel p\))。 非对称(由 \(p\)\(q\) 的角色决定)。

四、实例:二分类问题中的交叉熵损失

以二分类为例,真实分布 \(p\) 用one-hot向量表示(标签 \(y \in \{0, 1\}\)),预测分布 \(q\) 用概率 \(\hat{y} = \sigma(\mathbf{w}^T\mathbf{x})\)\(\sigma\) 为sigmoid函数)。
- 单个样本的交叉熵损失为:

\[ \text{Loss} = - \left[ y \log \hat{y} + (1-y) \log (1-\hat{y}) \right] \]
  • 等价于最小化 \(p\)(真实分布)与 \(q\)(预测分布)的KL散度,因为此时 \(H(p)\) 为常数(仅与标签分布有关)。

五、总结

  1. 核心联系
    KL散度是交叉熵与信息熵的差,当真实分布固定时,最小化交叉熵等价于最小化KL散度。
  2. 应用差异
  3. 交叉熵更直接用于机器学习损失函数,因其无需显式计算真实分布的熵。
  4. KL散度更适合理论分析(如分布差异度量、生成模型评估)。
  5. 本质理解
    两者均刻画分布差异,交叉熵是KL散度的“实用简化版”,尤其在监督学习中通过优化预测分布拟合真实分布时表现突出。

通过理解这种关系,可以更清晰地认识为什么交叉熵在分类问题中有效,以及KL散度在理论分析中的核心作用。