
1. 定义与推导
交叉熵是一个衡量两个概率分布之间差异的指标。在机器学习中,这通常用于衡量真实标签的分布与模型预测分布之间的差异。对于两个概率分布
和
,其中
是真实分布,
是模型预测分布,交叉熵的定义为:
这里的求和是对所有可能的事件
进行的。
KL 散度用于衡量两个概率分布之间的非对称差异。对于真实概率分布
和模型预测分布
,KL 散度定义为:
这同样是对所有可能的事件
进行求和。KL 散度是一种测量模型预测分布
如何偏离实际分布
的评价标准。
在计算机实现中,交叉熵通常应用于分类问题。对于一个有
个类的问题,如果
是一个使用 one-hot 编码 的标签向量,
是模型的输出概率向量,则交叉熵可以计算为:
在实际应用中,计算
通常需要保证
对于所有
都不为零(即
),以避免在计算
时出现数学上的未定义行为。
在信息论和机器学习中,交叉熵和 KL 散度都被广泛使用:
而不是
的情况下,描述事件平均所需的比特数。KL 散度则衡量了用分布
来编码来自分布
的数据所需的额外信息量。
交叉熵和 KL 散度之间存在紧密的联系:
这里
是
的熵,表示了在完全知道真实分布情况下描述事件所需的最少信息量。可以看出,交叉熵不仅包含了当
被用作模型预测时所带来的额外成本(即 KL 散度),还包括了数据本身的不确定性
。
总之,交叉熵和 KL 散度在机器学习中是评价和优化模型的重要工具,它们帮助我们理解模型与数据之间的信息差异,从而指导模型的改进和优化。