想象一下,你有两组关于同一事件可能结果的概率分布。交叉熵就是一种衡量这两组概率分布之间差异的方法。在分类问题中:

我们希望模型预测的分布尽可能地接近真实的分布。交叉熵就提供了一个量化这种“接近程度”的方法,或者更准确地说,是量化用一个分布(模型预测的)去编码另一个分布(真实的)时所需的平均信息量。交叉熵越小,说明两个分布越接近。


1. 从信息论的角度理解 (Understanding from Information Theory)


2. 在分类任务中的应用 (Application in Classification Tasks)

在分类任务中,我们的目标是让模型的预测概率分布 Q 尽可能地匹配真实的类别概率分布 P

A. 二分类交叉熵 (Binary Cross-Entropy)

B. 多分类交叉熵 (Categorical Cross-Entropy)


3. 为什么在深度学习分类中使用交叉熵?

  1. 衡量概率分布差异: 它直接衡量了模型预测的概率分布与真实的类别分布之间的差异,这正是分类任务的目标。
  2. 与输出层激活函数良好配合:
    • Sigmoid (二分类): Sigmoid 输出 (0,1) 的概率,二元交叉熵损失函数对其求导后形式简洁,有助于优化。
    • Softmax (多分类): Softmax 输出所有类别的概率分布(和为1),分类交叉熵损失函数与其配合求导后形式也相对简洁。
  3. 梯度特性:
    • 避免饱和区域的梯度消失: 相比于均方误差 (MSE) 用于分类问题,交叉熵在模型输出远离目标时(即 Sigmoid 或 Softmax 输出接近0或1的饱和区,但预测错误)仍然能提供较大的梯度。MSE 在这些区域梯度会非常小,导致学习停滞。
    • 例如,对于 Sigmoid 输出 σ(z) 和真实标签 y,使用二元交叉熵时,损失对 z (Sigmoid的输入) 的导数是 σ(z)y,这是一个非常简单且直观的形式:预测与真实的差异。
  4. 惩罚错误预测: 它对预测错误且置信度高的模型给予非常大的惩罚(因为 log(p)p0 时趋向 ),从而强烈地驱动模型向正确的方向学习。