一、熵
不同的人对熵有不同的解释(混乱程度,不确定性,信息量),在信息论里,熵是指无损编码事件信息的最小平均编码长度。
例如现在出去玩有四个游乐园(迪士尼、环球影城、长隆、方特)可供选择,每种选择的概率都是1/4,我们要用二进制编码这四种情况发送给朋友,和朋友商量去哪玩,那在不丢失信息的情况下最小编码长度是多少呢?
答案是迪士尼(00)、环球影城(01)、长隆(10)、方特(11),最小编码长度是两位。那如果是八个游乐园可供选择呢,最小编码长度就是三位。
假设某一事件有N种可能性,每种可能性的概率P是1/N,则无损编码最小长度计算公式为
无损编码平均最小长度计算公式,即熵为
因此,熵越大,平均最小编码长度越大,其事件的情况越多,不确定性/混乱程度越大。
二、交叉熵
上节提到的是离散变量的熵的公式,连续变量的熵的公式如下
熵是服从某一特定概率分布事件的理论最小平均编码长度,只要我们知道了任何事件的概率分布,我们就可以计算它的熵。那如果我们不知道事件的概率分布,又想计算熵,该怎么做呢?此时对熵做一个估计,熵的估计的过程自然而然地引出了交叉熵。
实际我们只有估计的概率分布Q,则估计的熵是
估计的概率分布Q影响了期望和编码长度,所以得到的结果很可能错得离谱,我们需要对比我们的编码长度和理论上的最小编码长度(熵)。因此使用P计算平均编码长度,实际编码长度基于Q计算,这个计算结果就是P和Q的交叉熵。
因此,交叉熵大于等于熵。
三、交叉熵损失函数
在二分类中,交叉熵可以对比模型的预测结果和数据的真实标签,随着预测越来越准确,交叉熵的值越来越小,如果预测完全正确,交叉熵的值就为0。因此,训练二分类模型时,可以使用交叉熵作为损失函数。