mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
1614 字
4 分钟
交叉熵损失函数

交叉熵损失函数#

引言#

交叉熵损失函数是衡量模型预测分布与真实分布差异的核心工具。其设计遵循对高置信度错误施以重罚的原则,能够有效引导模型学习。

直观理解:交叉熵就像一个评分系统,其扣分逻辑是“越是自认为正确的错误,惩罚越重”。


一、数学定义#

1.1 二分类交叉熵#

对于二分类任务,模型输出一个概率值 y^\hat{y}(属于类别 1 的概率),真实标签 y{0,1}y \in \{0, 1\}

单个样本的损失公式: L=[ylog(y^)+(1y)log(1y^)]L = -[y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})]

直观理解:

  • y=1y=1 时,L=log(y^)L = -\log(\hat{y})y^\hat{y} 越接近 1,损失越小。
  • y=0y=0 时,L=log(1y^)L = -\log(1 - \hat{y})y^\hat{y} 越接近 0,损失越小。

NN 个样本的平均损失: L=1Ni=1N[yilog(y^i)+(1yi)log(1y^i)]L = -\frac{1}{N} \sum_{i=1}^{N} [y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i)]

1.2 多分类交叉熵#

用于类别数 M>2M > 2 的情况,通常配合 Softmax 激活函数使用。

公式: L=c=1Myclog(y^c)L = -\sum_{c=1}^{M} y_c \log(\hat{y}_c)

其中:

  • MM:类别总数
  • ycy_c:One-hot 编码的真实标签向量
  • y^c\hat{y}_c:模型预测样本属于第 cc 类的概率

简化: 由于 ycy_c 中只有一个 1,其余为 0,公式简化为: L=log(y^target)L = -\log(\hat{y}_{\text{target}})

只关心正确类别对应的预测概率。预测越准,损失越小。


二、信息论基础#

2.1 信息量(自信息/惊奇度)#

定义: 量化单个事件发生时带来的信息量。 I(xi)=log2piI(x_i) = -\log_2 p_i

直观理解:

  • 大概率事件(p1p \approx 1):信息量 I0I \approx 0,不令人惊奇
  • 小概率事件(p0p \approx 0):信息量 II 很大,令人惊奇

结论:事件概率越小,发生后的”惊喜”越大,包含的信息量就越大。

2.2 香农熵(信息熵)#

定义: 衡量一个随机变量的平均不确定性,是所有可能事件信息量的期望值。 H(X)=i=1npilog2pi=E[I(X)]H(X) = -\sum_{i=1}^{n} p_i \log_2 p_i = E[I(X)]

期望形式: H(X)=piI(xi)H(X) = \sum p_i \cdot I(x_i)

性质:

  • 当分布完全确定时(如 one-hot),熵为 0
  • 当分布完全均匀时,熵取最大值 log2n\log_2 n
  • 分布越均匀,不确定性越高,熵值越大
  • 分布越集中,不确定性越低,熵值越小

2.3 交叉熵#

定义: 使用预测分布 QQ 来描述真实分布 PP 所需的平均信息量。 H(P,Q)=iP(i)logQ(i)H(P, Q) = -\sum_{i} P(i) \log Q(i)

与香农熵的关系:

  • Q=PQ = P 时,交叉熵等于香农熵 H(P)H(P)(理想情况)
  • QPQ \neq P 时,H(P,Q)>H(P)H(P, Q) > H(P)

直观解释:

  • 站在真实分布 PP 的角度(用 PP 加权),衡量预测分布 QQ 的”惊奇程度”
  • PP 为 1 的事件,如果 QQ 预测概率低,则 logQ-\log Q 很大,损失爆炸
  • 这是模型的惩罚机制:对真相预测不准,就给予重罚

2.4 KL散度(相对熵)#

定义: 衡量两个概率分布之间的差异。 DKL(PQ)=P(x)logP(x)Q(x)D_{KL}(P || Q) = \sum P(x) \log \frac{P(x)}{Q(x)}

与交叉熵的关系(黄金恒等式): DKL(PQ)=H(P,Q)H(P)D_{KL}(P || Q) = H(P, Q) - H(P)

物理意义:

  • H(P)H(P):理论最小编码长度(数据的本质难度)
  • H(P,Q)H(P, Q):使用 QQ 编码时的实际长度
  • DKL(PQ)D_{KL}(P || Q):因使用错误分布 QQ额外浪费的编码长度

机器学习意义: 真实数据的熵 H(P)H(P) 是常数,因此最小化交叉熵等价于最小化 KL 散度

2.5 KL散度的非对称性#

KL散度不是真正的距离度量,因为 DKL(PQ)DKL(QP)D_{KL}(P || Q) \neq D_{KL}(Q || P)

前向 KL(PQP || Q#

公式: DKL(PQ)=P(x)logP(x)Q(x)D_{KL}(P || Q) = \sum P(x) \log \frac{P(x)}{Q(x)} 权重依据: 真实分布 PP 惩罚: PP 有值但 QQ 没预测到(怕”漏报”) 行为: Mean-seeking(求均值)模型会覆盖 PP 的所有支撑集 应用: 监督学习(分类任务)

反向 KL(QPQ || P#

公式: DKL(QP)=Q(x)logQ(x)P(x)D_{KL}(Q || P) = \sum Q(x) \log \frac{Q(x)}{P(x)} 权重依据: 近似分布 QQ 惩罚: QQ 预测有值但 PP 没有(怕”误报”) 行为: Mode-seeking(求众数)模型会锁定 PP 的一个峰值 应用: 变分推断(如 VAE)

对比总结#

特性前向 KL (PQP \parallel Q)反向 KL (QPQ \parallel P)
别名Moment MatchingInformation Projection
权重依据真实分布 PP近似分布 QQ
害怕什么漏报 (Zero-avoiding)误报 (Zero-forcing)
几何行为Mean-Seeking(覆盖所有峰)Mode-Seeking(锁定一个峰)
视觉效果模糊(平均化多种可能性)清晰但单一(忽略多样性)
典型应用最大似然估计 (MLE)变分推断

三、统计学基础:最大似然估计#

3.1 核心结论#

在机器学习分类问题中: 最小化交叉熵损失 \Leftrightarrow 最大化对数似然估计

最大似然的核心思想:寻找一组模型参数 θ\theta,使得在这组参数下,观察到当前训练数据的概率最大。

3.2 数学推导#

似然函数#

对于 NN 个独立同分布样本 (xi,yi)(x_i, y_i)L(θ)=i=1Np(yixi;θ)L(\theta) = \prod_{i=1}^{N} p(y_i | x_i; \theta)

对数似然#

取对数简化计算: (θ)=logL(θ)=i=1Nlogp(yixi;θ)\ell(\theta) = \log L(\theta) = \sum_{i=1}^{N} \log p(y_i | x_i; \theta)

二分类情况#

真实标签 yi{0,1}y_i \in \{0, 1\},模型输出概率 pip_i,服从伯努利分布: p(yixi;θ)=piyi(1pi)1yip(y_i | x_i; \theta) = p_i^{y_i} (1 - p_i)^{1-y_i}

对数似然: (θ)=i=1N[yilog(pi)+(1yi)log(1pi)]\ell(\theta) = \sum_{i=1}^{N} [y_i \log(p_i) + (1 - y_i) \log(1 - p_i)]

负对数似然(即损失函数): J(θ)=(θ)=i=1N[yilog(pi)+(1yi)log(1pi)]J(\theta) = -\ell(\theta) = -\sum_{i=1}^{N} [y_i \log(p_i) + (1 - y_i) \log(1 - p_i)]

这正是二分类交叉熵损失

多分类情况#

对于 KK 个类别,真实标签为 One-hot 向量 yijy_{ij}J(θ)=i=1Nj=1KyijlogpijJ(\theta) = -\sum_{i=1}^{N} \sum_{j=1}^{K} y_{ij} \log p_{ij}

这正是多分类交叉熵损失

3.3 两种视角的统一#

视角衡量对象优化目标本质联系
信息论视角交叉熵 H(P,Q)H(P, Q)最小化分布差异H(P,Q)=H(P)+DKL(PQ)H(P, Q) = H(P) + D_{KL}(P \parallel Q)
统计学视角负对数似然 (θ)-\ell(\theta)最大化数据似然数学形式完全一致

关键洞见:

  1. 在分类任务中,真实分布 PP 是 One-Hot 分布,熵 H(P)=0H(P)=0
  2. 因此,最小化交叉熵 H(P,Q)H(P, Q) 等价于最小化 KL 散度 DKL(PQ)D_{KL}(P \parallel Q)
  3. 交叉熵损失易于计算和求导,为梯度优化提供便利

四、为什么对高置信度错误惩罚更重?#

这是交叉熵的核心设计特点,源于对数函数的性质。

考虑二分类情况:

  • 真实标签 y=1y=1
  • 模型预测 y^=0.9\hat{y}=0.9L=log(0.9)0.105L = -\log(0.9) \approx 0.105
  • 模型预测 y^=0.1\hat{y}=0.1L=log(0.1)2.303L = -\log(0.1) \approx 2.303

分析:

  1. 预测正确但不够自信y^=0.9\hat{y}=0.9):损失较小
  2. 预测错误且非常自信y^=0.1\hat{y}=0.1):损失很大
  3. 预测错误但不太自信y^=0.4\hat{y}=0.4):L0.916L \approx 0.916,介于两者之间

数学原因: 对数函数 log(x)-\log(x)(0,1](0,1] 区间是单调递减的凸函数:

  • x0x \to 0(高置信度错误)时,log(x)-\log(x) \to \infty
  • x1x \to 1(高置信度正确)时,log(x)0-\log(x) \to 0

训练意义: 这种性质迫使模型不仅要预测正确,还要对自己的预测有足够的信心,从而学习到更确定的决策边界。


分享

如果这篇文章对你有帮助,欢迎分享给更多人!

交叉熵损失函数
https://castorice.xin/posts/交叉熵损失/
作者
castorice
发布于
2025-08-12
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时