Advertisement

交叉熵与KL散度

阅读量:

Welcome To My Blog
老遇到交叉熵作为损失函数的情况,于是总结一下

KL散度

交叉熵源自KL散度(相对熵)中。\ KL散度(Kullback-Leibler Divergence)公式为:\text{KL散度}(\text{Kullback-Leibler Divergence})\text{公式为}:

1.png

KL散度用于衡量两个概率分布之间的差异程度,其值不小于零.当其值越接近零时,表明这两个概率分布p和q越相似;仅在概率分布p和q完全相同时,KL散度的值才会为零.

交叉熵

在机器学习的分类问题中,通常使用交叉熵作为损失函数来比较两个概率分布之间的相似程度.

在分类问题中,某个样本实例x可能属于K个类别中的某一类,y(x)表示该实例对应各类别的真实概率分布,y~(x)则表示模型预测出各类别的概率值.特别需要注意的是,y(x)**代表的是真实类别分布**,而y~(x)则是预测值所形成的类别概率分布,两者的区别在于真实情况与模型预测结果之间的对比.

在训练过程中,对于某个已知标签y(x),KL散度中的H(y(x))是一个固定的常数.因此在这种情况下,KL散度实际上等价于交叉熵.由此可知,交叉熵能够反映真实概率分布p(x)与预测概率分布q(x)之间的差距.为了使q(x)尽可能地贴近p(x),我们需要最小化交叉熵这一指标.

对于某个样本实例x**,其对应的交叉熵计算公式为:

2.png

对于一个数据集x ,其交叉熵为:

3.png

总结

由于训练集中每个样本的标签都是明确标注过的,在这种情况下,真实标签与预测结果之间的KL散度实际上等于交叉熵。\n\n在分类问题中通常可以将真实标签视为概率分布,在分类问题中通常可以将真实标签视为概率分布。\n举个例子来说,在一个有4个类别的分类任务中某一个样本的真实目标分布可能是(0, 0, 1, 0),而其预测结果可能为(0.2, 0.1, 0.5, 0.2)。交叉熵在这里的作用就是使得预测的概率分布尽量贴近真实的(0, 0, 1, 0)这个目标分布

全部评论 (0)

还没有任何评论哟~