前言

西瓜书基本都过了一遍,感觉怎么说呢,理论气息太重了,实战中的价值感觉不大,所以我又开了一本新书《动手学深度学习》,之后就是边看边把自己觉得重要和有所感悟的地方记录下来。

交叉熵损失函数

先来看看交叉熵损失函数长啥样,

$$
H(y^{(i)}, \hat{y}^{(i)}) = -\sum_{j} y_j^{(i)} \log \hat{y}_j^{(i)}
$$

其中 $p(x)$ 是真实分布,$q(x)$ 是预测分布,$j$ 是标签类别的索引。

不知道大家看到这个会不会觉得很熟悉,反正我第一时间就想到了信息熵。

信息熵

同样的我们也来看看信息熵长啥样。

$$
H(p) = -\sum_{x} p(x) \log p(x)
$$

其中 $p(x)$ 是概率分布。

是不是几乎一摸一样,所以交叉熵损失函数的本质就是在求预测分布所包含的信息量。

那为什么要最小化交叉熵损失函数,也就是最小化信息量呢?

因为信息量越小,意味着信息越纯净,大家可以画一下上面的函数图,会发现当且仅当 $y^{(i)} = \hat{y}^{(i)}$ 时,交叉熵损失函数取最小值,也就是说预测分布和真实分布完全一致时,信息量最小。

应用

交叉熵损失函数的主要应用场景是分类问题,因为分类问题的输出是一个概率分布,也只有概率分布才会包含所谓的信息。

单标签分类

来考虑一下单标签分类问题,换言之每个样本只有一个标签,也就是说在真实分布中只有一个 $y_j^{(i)} = 1$,其他都是0,所以我们可以将交叉熵损失函数简化为。

$$
H(y^{(i)}, \hat{y}^{(i)}) = -\log \hat{y}_j^{(i)}
$$

其中 $j$ 是真实标签的索引。

多标签分类

这就是要求多个标签的联合信息熵了。