交叉熵是信息论和机器学习中的一个重要概念,常用于衡量两个概率分布之间的差异,尤其作为分类模型(如逻辑回归、神经网络)的损失函数。给定一个真实概率分布 p 和一个预测概率分布 q,交叉熵的公式为:
H(p,q)=−∑ip(i)logq(i)
其中:
- p(i) 是真实分布中事件 i 的概率(对于分类问题,通常是一个one-hot编码的向量,其中真实类别的概率为1,其他为0)。
- q(i)是模型预测的分布中事件 i的概率(通常通过Softmax或Sigmoid函数获得)。
- 求和范围 i 覆盖所有可能的类别或事件。
- 对数底通常为自然对数(即 log=ln),单位为nats;有时使用 log2,单位为bits。
特殊情况:二分类问题
在二分类问题中,真实标签 y∈{0,1},模型预测 y^ 表示类别1的概率(则类别0的概率为 1−y^ )。交叉熵损失函数简化为:
L=−[ylog(y^)+(1−y)log(1−y^)]
推导过程:从最大似然估计(MLE)角度
交叉熵损失函数的推导可以从最大似然估计(Maximum Likelihood Estimation, MLE)的角度进行。MLE是一种频率派参数估计方法,目标是找到参数 θ 使得观测数据的概率(似然)最大化。这与交叉熵的联系在于:最小化交叉熵等价于最大化对数似然,而负对数似然(Negative Log-Likelihood, NLL)就是交叉熵损失。下面我一步步解释推导过程。
步骤1: 定义似然函数
假设我们有一个分类模型(如逻辑回归或神经网络),参数为 θ。给定训练数据集 {(xj,yj)}j=1N ,其中 xj是输入特征, yj是真实标签(对于多分类问题, yj是one-hot向量)。模型输出预测概率分布 q(i∣xj;θ)(即对输入 xj,模型预测类别 i 的概率)。
在独立同分布(i.i.d.)假设下,整个数据集的似然函数是各个数据点似然的乘积:
L(θ)=∏j=1Np(yj|xj;θ)
这里, p(yj∣xj;θ) 是在参数 θ 下观测到标签 yj的条件概率。模型通过预测分布 q 来近似这个概率,因此:
p(yj|xj;θ)=q(yj|xj;θ)
对于一个具体类别 i,如果真实标签 yj 对应于类别 k(即 yj,k=1 ,其他 yj,k′=0 ,对于 k′≠k),则:
q(yj|xj;θ)=∏kq(k|xj;θ)yj,k
其中:
- ∏k 表示对所有类别 k 求积。
- yj,k 是真实标签的指示变量(当 yj=k 时 yj,k=1 ,否则为0)。
由于真实标签是one-hot的,只有真实类别 k 的项有效(即 q(k∣xj;θ)1),其他为1。因此,整个数据集的似然可简化为:
L(θ)=∏j=1Nq(yj|xj;θ)
步骤2: 最大似然估计和对数转换
最大化似然函数 L(θ) 等价于最大化对数似然(因为对数函数是单调递增的):
logL(θ)=∑j=1Nlog(q(yj|xj;θ))
为了优化方便,我们通常最小化负对数似然(NLL):
−logL(θ)=−∑j=1Nlog(q(yj|xj;θ))
步骤3: 等价于交叉熵
现在考虑真实分布 p 和预测分布 q。对于每个数据点 (xj,yj):
- 真实分布 pj是一个Dirac分布(或one-hot分布):如果真实标签是类别 k,则 pj(k)=1 ,且 pj(i)=0 对于 i≠k。
- 预测分布 qj 是模型输出的概率分布 q(i∣xj;θ)。
单个数据点的交叉熵定义为:
H(pj,qj)=−∑ipj(i)logqj(i)
由于 pjpj 是one-hot的(只有真实类别 k 的 pj(k)=1),其他项为0,因此:
H(pj,qj)=−(1⋅logqj(k)+∑i≠k0⋅logqj(i))=−logqj(k)
但 qj(k)=q(yj∣xj;θ)(模型对真实类别的预测概率),所以:
H(pj,qj)=−logq(yj|xj;θ)
整个数据集的平均交叉熵损失是:
1N∑j=1NH(pj,qj)=−1N∑j=1Nlogq(yj|xj;θ)
而负对数似然是:
−logL(θ)=−∑j=1Nlogq(yj|xj;θ)
因此,最小化平均交叉熵损失 1N∑jH(pj,qj) 等价于最小化负对数似然 −logL(θ)(仅差一个常数因子 1N ),进而等价于最大化似然函数 L(θ)。
结论
从最大似然角度:
- 交叉熵损失函数的推导本质是:最大化数据似然 → 最小化负对数似然 → 等价于最小化交叉熵。
- 这解释了为什么在分类问题中,交叉熵是常用的损失函数:它直接来源于MLE框架,通过优化模型参数 θ使预测分布 q 逼近真实分布 p。
是否与贝叶斯有关?
是的,交叉熵和最大似然估计与贝叶斯推断有关联,但也有区别:
最大似然估计(MLE)是频率派方法:
-
- MLE 只关注最大化似然函数 p(data∣θ) ,不考虑参数的先验分布。
- 因此,推导交叉熵损失直接从MLE出发,不涉及贝叶斯要素。
贝叶斯视角的关联:
-
- 贝叶斯推断的核心是后验分布: p(θ∣data)∝p(data∣θ)⋅p(θ) ,其中 p(data∣θ) 是似然, p(θ) 是先验。
- 在优化上,最大化后验(Maximum a Posteriori, MAP)估计等价于最小化: −logp(θ∣data)=−logp(data∣θ)−logp(θ)+constant
- 这里,−logp(data∣θ) 就是负对数似然(即交叉熵损失),而 −logp(θ) 是先验的负对数(相当于正则化项,如L2正则对应高斯先验)。
- 因此,在MAP估计中,最小化交叉熵损失(似然部分)被包含在内,但额外添加了先验项。例如,在逻辑回归中,使用交叉熵损失加上L2正则,就是MAP估计(高斯先验下)。
总结关系:
-
- 交叉熵本身源自频率派的MLE,但贝叶斯方法在MAP估计中会使用交叉熵作为似然部分的基础。
- 两者都利用了对数似然的概念,但贝叶斯方法额外引入了先验,提供更丰富的参数不确定性建模。