熵、交叉熵和KL散度
一直区分不清楚熵、交叉熵、KL散度有什么区别和联系。
前几天特意理解了一下,记录下来,以后忘了方便再来复习。
熵(Entropy)
熵是单个概率分布的 “不确定性” 或 “混乱程度” 的度量。
对于离散随机变量X,假定其概率分布为 \(p(x)\),则它的熵定义为:
为什么要将熵的计算公式像上式这样定义呢?因为这一形式源于对 “不确定性” 的精准量化需求。
- 
\(-\log p(x)\) 
 首先明确一点:单个事件的信息量与其发生概率成反比。
 如“太阳从东边升起”这件事,它所蕴含的信息量就是0,因为这件事没有任何的不确定性,太阳总是会从东边升起。
 再比如,“我买票中了一等奖”,这件事所蕴含的信息量就很大,因为它发生的概率非常之小。
 所以,对于某一随机事件,我们将它所对应的信息量定义为 \(-\log p(x)\)。这里 \(p(x)\) 的取值范围是[0,1],概率 \(p(x)\) 越小,则 \(-\log p(x)\) 越大。
  
- 
\(-\sum_{x} p(x) \log p(x)\) 
 熵是用来衡量单个概率分布的 “不确定性”,它是所有随机事件的平均信息量,所以,需要以概率 \(p(x)\) 为权重来加权求和。
物理意义
- 熵越高,分布的不确定性越大(比如均匀分布的熵高于集中分布)。
- 极端情况:若某一事件必然发生(如\(p(x=1)=1\),其他为 0),则熵\(H(p)=0\)(完全确定);若所有事件等概率(均匀分布),熵达到最大值。
示例
- 抛硬币(正反概率均为 0.5):熵\(H = -0.5*\log0.5 -0.5*\log0.5 = \log2 \approx 1\)(高不确定性)。
- 抛 “作弊硬币”(正面概率 0.9,反面 0.1):熵\(H \approx -0.9*\log0.9 -0.1*\log0.1 \approx 0.47\)(低不确定性)。
交叉熵(Cross-Entropy)
交叉熵是衡量 “用一个分布q近似另一个分布p” 时的 “拟合效果” 的度量。
公式为:$$H(p, q) = -\sum_{x} p(x) \log q(x)$$
物理意义:
- p通常是 “真实分布”(如样本标签),q是 “预测分布”(如模型输出)。
- 交叉熵越小,说明q对p的拟合越好。
- 交叉熵不对称:\(H(p, q) \neq H(q, p)\)。
示例:
二分类问题中,真实标签\(p = [1, 0]\)(正类):
- 模型预测\(q_1 = [0.9, 0.1]\):交叉熵\(H = -1 \cdot \log0.9 - 0 \cdot \log0.1 \approx 0.105\)(拟合好)。
- 模型预测\(q_2 = [0.6, 0.4]\):交叉熵\(H \approx -1 \cdot \log0.6 \approx 0.511\)(拟合差)。
KL 散度(Kullback-Leibler Divergence)
KL 散度(又称相对熵)衡量 “用分布q近似分布p” 时的 “信息损失”。
公式为:$$D_{KL}(p | q) = \sum_{x} p(x) \log \frac{p(x)}{q(x)}$$
物理意义:
- 可理解为 “p与q的差异”:\(D_{KL}(p \| q)\)越大,q对p的近似越差。
- 非负性:\(D_{KL}(p \| q) \geq 0\),当且仅当\(p = q\)时取等号。
- 不对称:\(D_{KL}(p \| q) \neq D_{KL}(q \| p)\)(用q近似p的损失,与用p近似q的损失不同)。
示例:
用q近似p(\(p = [1, 0]\)):
- \(q_1 = [0.9, 0.1]\):\(D_{KL} = 1 \cdot \log\frac{1}{0.9} + 0 \cdot \log\frac{0}{0.1} \approx 0.105\)(损失小)。
- \(q_2 = [0.6, 0.4]\):\(D_{KL} \approx 1 \cdot \log\frac{1}{0.6} \approx 0.511\)(损失大)。
三者的核心联系
通过公式变形可直接推导出三者的关系:\(D_{KL}(p \| q) = H(p, q) - H(p)\)
- 含义:KL 散度 = 交叉熵 - 真实分布的熵。
- 机器学习中的简化:当真实分布p固定时(如训练数据的标签分布),\(H(p)\)是常数。此时最小化 KL 散度等价于最小化交叉熵。
 这就是为什么在分类任务中,我们常用交叉熵作为损失函数(而非直接用 KL 散度)—— 计算更简单,且效果等价。
总结
- 熵是 “单个分布的不确定性”;
- 交叉熵是 “两个分布的拟合误差”;
- KL 散度是 “两个分布的差异(含熵的影响)”;
- 三者通过 \(D_{KL}(p\|q) = H(p,q) - H(p)\) 关联,在实际任务中常因简化需求优先使用交叉熵。
 理解它们的核心是抓住 “单分布” 还是 “双分布”,以及是否包含 “真实分布的熵”。

 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号