【机器学习】交叉熵损失函数
参考:
交叉熵损失函数
1、信息熵
1.1、信息论中的熵
在信息论中,熵的定义:无损编码事件信息的最小平均编码长度。
假设一个信息事件有 8 种可能的状态,且各状态等可能性,即可能性都是 \(12.5\%=\frac{1}{8}\)。
我们需要多少位来编码 8 个值呢?
我们可以直接用二进制编码来解决整个问题:分别用二进制的 \(0,1,2,···,7\) 对应一种可能的状态。
在 \(8\) 个状态的二进制编码中,少于长度 \(3\) 的编码会出现歧义,大于 \(3\) 是没有必要的,也就是保证了这是最小的值。
由此,我们很容易得到,编码一个有 \(n\) 种可能状态的信息,所需的最小编码长度为:
那么平均最小编码长度,也就是熵的公式为:
1.2、广义熵的理解
在信息学之外,熵被解释为:混乱程度,不确定性,惊奇程度,不可预测性,信息量等。
如果熵比较大,表示整个状态越难以预测,愈加的混乱。
如果理解呢?
来看公式中的这一部分 \(-\log_2{P(i)}\) ,我们知道 \(log\) 函数的值越接近 \(0\) ,越向 \(-\infty\) 靠拢。那么 \(-log\) 就是越向 \(\infty\) 靠拢。
也就是说,\(P(i)\) 的概率越小,\(-\log_2{P(i)}\) 的值越大。
如果一个事件有非常多的状态,且每一个状态发生的概率都很小,那么熵的值就会非常大,这就是上面提到的混乱程度,不确定性。
2、交叉熵
2.1、信息论中的交叉熵
交叉熵(Cross Entropy
)是 Shannon
信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。
信息论中,交叉熵是表示两个概率分布 \(p,q\),其中 \(p\) 表示真实分布,\(q\) 表示非真实分布,在相同的一组事件中,其中,用非真实分布 \(q\) 来表示某个事件发生所需要的平均比特数。从这个定义中,我们很难理解交叉熵的定义。下面举个例子来描述一下:
假设现在有一个样本集中两个概率分布 \(p,q\),其中 \(p\) 为真实分布, \(q\) 为非真实分布。假如,按照真实分布p来衡量识别一个样本所需要的编码长度的期望为:
但是,如果采用错误的分布 \(q\) 来表示来自真实分布 \(p\) 的平均编码长度,则应该是:
此时就将 \(H(p,q)\) 称之为交叉熵。
2.2、交叉熵作为损失函数
交叉熵损失函数具有以下几个优点:
- 非负性:交叉熵损失函数的值总是非负的,这符合损失函数的基本要求。
- 凸函数:交叉熵损失函数是一个凸函数,这意味着在优化过程中可以避免陷入局部最小值,从而更容易找到全局最优解。
- 梯度明显:交叉熵损失函数的梯度在模型预测错误时较大,在预测正确时较小。这使得模型在训练过程中能够更快地调整参数,提高训练效率。