一 信息量
信息论当中的熵指的是信息量的混乱程度,也可以理解成信息量的大小。
举个简单的例子,以下两个句子,哪一个句子的信息量更大呢?
- 我今天没中彩票
- 我今天中彩票了
从文本上来看,这两句话的字数一致,描述的事件也基本一致,但是显然第二句话的信息量要比第一句大得多,原因也很简单,因为中彩票的概率要比不中彩票低得多。一个低概率的结果与一个高概率的结果相比,低概率的结果带来的信息量更大。
我们用对数函数来量化一个事件的信息量:
因为一个事件发生的概率取值范围在0到1之间,所以log(p(X))的范围是负无穷到0,我们加一个负号将它变成正值。画成函数大概是下面这个样子:
二 信息熵
现在我知道一个事件产生某个结果的自信息,我想知道这个事件平均带来多少自信息。对自信息s进行加权平均是很直观的。现在的问题是选择什么权重?因为我知道每个结果的概率,所以用概率作为权重是有意义的,因为这是每个结果应该发生的概率
我们上面的公式定义的是信息量,但是这里有一个问题,我们定义的只是事件X的一种结果的信息量。对于一个事件来说,它可能的结果可能不止一种。我们希望定义整个事件的信息量,其实也很好办,我们算下整个事件信息量的期望即可,这个期望就是信息熵。
期望的公式我们应该都还记得:
套入信息量的公式可以得到信息熵H(x):
对于某个事件,有n种可能性,每一种可能性都有一个概率p(xi) ,这样就可以计算出某一种可能性的信息量。举一个例子,假设你拿出了你的电脑,按下开关,会有三种可能性,下表列出了每一种可能的概率及其对应的信息量。
所以上面的问题结果就是 :
三 交叉熵
现在,如果每个结果的实际概率为 pi 却有人将概率估计为 qi怎么办。在这种情况下,每个事件都将以pi的概率发生,但是公式里的自信息就要改成qi(因为人们以为结果的概率是qi)。现在,在这种情况下,加权平均自信息就变为了交叉熵c,它可以写成:
交叉熵总是大于熵,并且仅在以下情况下才与熵相同 pi = qi,你可以观看 https://www.desmos.com/calculator/zytm2sf56e 的插图来帮助理解
交叉熵损失
紫色线代表蓝色曲线下的面积,估计概率分布(橙色线),实际概率分布(红色线)
在上面我提到的图中,你会注意到,随着估计的概率分布偏离实际/期望的概率分布,交叉熵增加,反之亦然。因此,我们可以说,最小化交叉熵将使我们更接近实际/期望的分布,这就是我们想要的。这就是为什么我们尝试降低交叉熵,以使我们的预测概率分布最终接近实际分布的原因。因此,我们得到交叉熵损失的公式为:
在只有两个类的二分类问题的情况下,我们将其命名为二分类交叉熵损失,以上公式变为:
从期望角度上理解来说,信息熵计算的是log(p)在p上的期望,交叉熵则是log(q)在p上的期望;换句话说,信息熵为事件的信息量关于其事件发生的概率分布的期望值,那么交叉熵可以认为是事件的信息量关于真实概率分布的期望值
四 交叉熵的应用
1.为什么要用交叉熵做loss函数?
在线性回归问题中,常常使用MSE(Mean Squared Error)作为loss函数,比如:
这里的m表示m个样本的,loss为m个样本的loss均值。
MSE在线性回归问题中比较好用,那么在逻辑分类问题中还是如此么?
2.交叉熵在单分类问题中的使用
这里的单类别是指,每一张图像样本只能有一个类别,比如只能是狗或只能是猫。
交叉熵在单分类问题上基本是标配的方法
上式为一张样本的loss计算方法,n代表着n种类别。
举例说明,比如有如下样本
对应一个batch的loss就是
m为当前batch的样本数
3.交叉熵在多分类问题中的使用
这里的多类别是指,每一张图像样本可以有多个类别,比如同时包含一只猫和一只狗
和单分类问题的标签不同,多分类的标签是n-hot。
有一张图,即有青蛙,又有老鼠,所以是一个多分类问题
值得注意的是,这里的Pred不再是通过softmax计算的了,这里采用的是sigmoid。将每一个节点的输出归一化到[0,1]之间。所有Pred值的和也不再为1。换句话说,就是每一个Label都是独立分布的,相互之间没有影响。所以交叉熵在这里是单独对每一个节点进行计算,每一个节点只有两种可能值,所以是一个二项分布。前面说过对于二项分布这种特殊的分布,熵的计算可以进行简化。
同样的,交叉熵的计算也可以简化,即
注意,上式只是针对一个节点的计算公式。这一点一定要和单分类loss区分开来。
例子中可以计算为:
单张样本的loss即为loss=loss猫+loss蛙+loss鼠
每一个batch的loss就是:
m为当前batch中的样本量,n为类别数。
单分类时,每张图片的损失是一个交叉熵,交叉熵针对的是所有类别(所有类别概率和是1)。 多分类时,每张图片的损失是N个交叉熵之和(N为类别数),交叉熵针对的是单个类别(单个类别概率和是1)。