跳到正文
格致开物MATHWIKI

交叉熵

内容维护:格致开物 · 编写与核验 · 修订记录 · 纠错

交叉熵(cross entropy)是在真实分布下,按照另一个候选分布计算的平均负对数概率。它比较的是“事件实际上出现多频繁”和“模型给事件多大概率”这两个对象。采用自然对数时单位为纳特,采用以二为底的对数时单位为比特。本文先讨论有限类别,这时零概率的含义和最小化条件都能直接说明。

设某个合成试验产生甲、乙、丙三类结果,真实比例为 p=(1/2,1/4,1/4)。模型报出 q=(1/2,3/8,1/8)。乙被高估、丙被低估,两种偏差不会在对数评分中互相抵消:用二进制对数计算,三类的损失分别是 1、log2(8/3) 和 3。它们要按真实出现比例加权,而不是按模型概率加权。

定义与零概率

设类别集为 {1,…,m},pi,qi≥0,且各自的和为一。交叉熵定义为 H(p,q)=−∑i:pi>0pilog⁡qi. 约定 0log⁡q=0;若存在 pi>0,qi=0,交叉熵为正无穷,因为模型把实际可能发生的事件判为绝不发生。有限交叉熵要求 p 的正概率类别也有正的 q。它一般不对称,交换两个分布还会改变取平均的权重。[1]

三个类别的真实概率和模型概率柱状比较
合成例子的两组概率。概率之和均为一,但丙被低估。

图中同一类别的两根柱分别表示真实比例和预测概率。丙的损失大,并不是因为丙最常见,而是模型给它的概率只有八分之一。整个试验的平均损失为 H2(p,q)=12⋅1+14log2(8/3)+14⋅3≈1.603759 比特. 若模型准确报出 p,则损失为 H2(p,p)=1.5 比特。差额约为 0.103759,衡量这里的概率错配,而不是分类错误率。

分布匹配的最小值

定义熵 H(p)=−∑pilog⁡pi,相对熵 DKL(p‖q)=∑pi>0pilog⁡(pi/qi)。在交叉熵有限时,逐项拆开对数得到 H(p,q)=H(p)+DKL(p‖q). 为证明差额非负,使用 log⁡t≤t−1(t>0): −DKL(p‖q)=∑pi>0pilog⁡qipi≤∑pi>0(qi−pi)≤0. 第一个不等号取等要求每个正概率类别上 qi=pi;此时这些类别的概率已加到一,其他类别只能取零。因此 H(p,q)≥H(p),等号恰在两个概率向量完全相同时成立。这也覆盖 p 含零项的情形;若交叉熵无穷,不等式仍成立。

对于二分类,固定真实成功率 p∈(0,1),模型成功率为 q∈(0,1),有 L(q)=−plog⁡q−(1−p)log⁡(1−q),L′(q)=q−pq(1−q). 所以 q<p 时向上调概率降低损失,q>p 时向下调概率降低损失,唯一最小点是 q=p。端点 p=0 或 p=1 的最小点相应移到边界。

真实成功率四分之一时,二分类交叉熵在预测四分之一处最小
固定 p=1/4 的交叉熵曲线采用自然对数;最低点在 q=1/4。

样本损失与似然

设 Y1,…,Yn 独立同分布,类别概率为固定 q。观测中第 i 类出现 ni 次,经验比例为 p^i=ni/n。序列似然为 ∏iqini,负对数除以样本量后就是 −1nlog⁡∏iqini=−∑ip^ilog⁡qi=H(p^,q). 只记录类别总数时还多一个多项式系数,它与 q 无关,不改变最优参数。若每个样本有特征 xj,则使用各自的条件概率 qθ(yj∣xj),损失为 −n−1∑jlog⁡qθ(yj∣xj);此时并非所有样本共享一个无条件向量。

三分类例中若取八个样本,计数为 (4,2,2),上式正好复算前面的平均损失。作为变式,把模型改为 q′=(1/2,1/4,1/4),损失下降到 1.5 比特;若改为 q″=(1/2,1/2,0),两次丙观测使损失无穷。仅比较模型的最大概率类别,这三个模型都可能报甲,却有完全不同的概率质量。

连续变量也可对共同参考测度下的密度定义 −∫p(x)log⁡q(x)dx,但须检查积分是否有定义。密度可以超过一,连续交叉熵也可能为负;更换计量单位会改变其值。离散情形的非负性不能直接照搬,有限情况下的交叉熵与相对熵分解则仍适用。

参考文献

  1. ↑ Cosma Shalizi,Shannon Entropy and Kullback-Leibler Divergence,§28.2、§28.2.1,定义365、引理366,访问日期:2026年10月25日。