二分类交叉熵损失函数的推导,核心是基于极大似然估计(Maximum Likelihood Estimation, MLE),结合二分类任务的概率特性(伯努利分布),最终将“最大化样本出现概率”的目标,转化为“最小化负对数似然”的损失函数。

结合你的数学背景,推导过程分为 5个核心步骤,从概率基础到损失函数成型,再到梯度计算,全程严谨拆解。

一、前置知识与符号定义
1. 任务场景

二分类任务中,每个样本的真实标签 yyy 只有两种取值:

y∈{0,1}y \in \{0, 1\}y{0,1}

  • y=1y=1y=1 :样本属于正类

  • y=0y=0y=0 :样本属于负类

模型的预测目标是输出样本属于正类的概率 y^\hat{y}y^ ,满足:

0≤y^≤10 \le \hat{y} \le 10y^1

由于概率的归一性,样本属于负类的概率为 1−y^1-\hat{y}1y^

2. 概率分布:伯努利分布

二分类任务的样本标签服从伯努利分布(Bernoulli Distribution),其概率质量函数为:

P(y∣y^)=y^y⋅(1−y^)(1−y)P(y|\hat{y}) = \hat{y}^y \cdot (1-\hat{y})^{(1-y)}P(yy^)=y^y(1y^)(1y)

  • y=1y=1y=1 时, P(y=1∣y^)=y^1⋅(1−y^)0=y^P(y=1|\hat{y}) = \hat{y}^1 \cdot (1-\hat{y})^0 = \hat{y}P(y=1∣y^)=y^1(1y^)0=y^

  • y=0y=0y=0 时, P(y=0∣y^)=y^0⋅(1−y^)1=1−y^P(y=0|\hat{y}) = \hat{y}^0 \cdot (1-\hat{y})^1 = 1-\hat{y}P(y=0∣y^)=y^0(1y^)1=1y^

这个公式的巧妙之处在于:用一个表达式同时描述了正类和负类的概率

二、步骤1:构建似然函数

假设我们有 mmm 个独立同分布的训练样本 (x1,y1),(x2,y2),...,(xm,ym){(x_1,y_1), (x_2,y_2), ..., (x_m,y_m)}(x1,y1),(x2,y2),...,(xm,ym) ,模型对第 iii 个样本的正类预测概率为 y^i\hat{y}_iy^i

似然函数的定义是:在给定模型参数的情况下,观测到这组样本的概率。由于样本独立,似然函数是所有样本概率的乘积:

L(y^1,y^2,...,y^m)=∏i=1mP(yi∣y^i)=∏i=1m[y^iyi⋅(1−y^i)1−yi]\mathcal{L}(\hat{y}_1,\hat{y}_2,...,\hat{y}_m) = \prod_{i=1}^m P(y_i|\hat{y}_i) = \prod_{i=1}^m \left[ \hat{y}_i^{y_i} \cdot (1-\hat{y}_i)^{1-y_i} \right]L(y^1,y^2,...,y^m)=i=1mP(yiy^i)=i=1m[y^iyi(1y^i)1yi]

三、步骤2:对数似然函数(简化计算)

似然函数是乘积形式,直接求导和优化会非常复杂(涉及乘积的导数法则)。为了简化计算,我们对似然函数取自然对数,利用对数的性质 log⁡(ab)=log⁡a+log⁡b\log(ab)=\log a + \log blog(ab)=loga+logb ,将乘积转换为求和

log⁡L=∑i=1mlog⁡[y^iyi⋅(1−y^i)1−yi]\log\mathcal{L} = \sum_{i=1}^m \log\left[ \hat{y}_i^{y_i} \cdot (1-\hat{y}_i)^{1-y_i} \right]logL=i=1mlog[y^iyi(1y^i)1yi]

展开对数项( log⁡(ab)=blog⁡a\log(a^b)=b\log alog(ab)=bloga ):

log⁡L=∑i=1m[yilog⁡y^i+(1−yi)log⁡(1−y^i)]\log\mathcal{L} = \sum_{i=1}^m \left[ y_i \log\hat{y}_i + (1-y_i) \log(1-\hat{y}_i) \right]logL=i=1m[yilogy^i+(1yi)log(1y^i)]

数学意义:对数函数是单调递增函数,最大化 L\mathcal{L}L 等价于最大化 log⁡L\log\mathcal{L}logL ,优化目标不变。

四、步骤3:负对数似然 → 交叉熵损失

机器学习的优化目标是最小化损失函数,而我们的目标是最大化对数似然。因此,只需对对数似然函数取负号,就得到了需要最小化的损失函数。

1. 单个样本的损失函数

对于单个样本 iii ,负对数似然就是单个样本的二分类交叉熵损失 LiL_iLi

Li=−[yilog⁡y^i+(1−yi)log⁡(1−y^i)]L_i = - \left[ y_i \log\hat{y}_i + (1-y_i) \log(1-\hat{y}_i) \right]Li=[yilogy^i+(1yi)log(1y^i)]

2. 整个训练集的代价函数

mmm 个样本的损失取平均,得到代价函数(Cost Function) JJJ ,也就是我们最终优化的目标:

J=1m∑i=1mLi=−1m∑i=1m[yilog⁡y^i+(1−yi)log⁡(1−y^i)]J = \frac{1}{m} \sum_{i=1}^m L_i = -\frac{1}{m} \sum_{i=1}^m \left[ y_i \log\hat{y}_i + (1-y_i) \log(1-\hat{y}_i) \right]J=m1i=1mLi=m1i=1m[yilogy^i+(1yi)log(1y^i)]

这就是二分类交叉熵损失函数的最终形式

3. 直观理解损失值
  • yi=1y_i=1yi=1 时,损失简化为 Li=−log⁡y^iL_i = -\log\hat{y}_iLi=logy^iy^i\hat{y}_iy^i 越接近1,损失越小; y^i\hat{y}_iy^i 接近0,损失趋近于无穷大。

  • yi=0y_i=0yi=0 时,损失简化为 Li=−log⁡(1−y^i)L_i = -\log(1-\hat{y}_i)Li=log(1y^i)y^i\hat{y}_iy^i 越接近0,损失越小; y^i\hat{y}_iy^i 接近1,损失趋近于无穷大。

五、步骤4:结合Sigmoid的梯度推导(优化关键)

模型的原始输出(如神经网络最后一层)是一个无界的实数 ** ziz_izi (可能是任意值),而交叉熵损失要求 y^i\hat{y}_iy^i 是0-1之间的概率。因此,我们需要用Sigmoid函数**将 ziz_izi 映射为概率 y^i\hat{y}_iy^i

y^i=σ(zi)=11+e−zi\hat{y}_i = \sigma(z_i) = \frac{1}{1+e^{-z_i}}y^i=σ(zi)=1+ezi1

Sigmoid函数有一个关键导数性质,这是梯度计算的核心:

σ′(zi)=σ(zi)⋅(1−σ(zi))=y^i⋅(1−y^i)\sigma'(z_i) = \sigma(z_i) \cdot (1-\sigma(z_i)) = \hat{y}_i \cdot (1-\hat{y}_i)σ(zi)=σ(zi)(1σ(zi))=y^i(1y^i)

我们的目标是最小化代价函数 ** JJJ ** 对模型参数的导数,而参数通过 ziz_izi 影响 y^i\hat{y}_iy^i ,因此需要计算损失对 ** ziz_izi ** 的梯度 ∂J∂zi\frac{\partial J}{\partial z_i}ziJ (链式法则):

  1. 先计算单个样本损失对 y^i\hat{y}_iy^i 的导数:

    ∂Li∂y^i=−(yiy^i−1−yi1−y^i)\frac{\partial L_i}{\partial \hat{y}_i} = -\left( \frac{y_i}{\hat{y}_i} - \frac{1-y_i}{1-\hat{y}_i} \right)y^iLi=(y^iyi1y^i1yi)

  2. 再结合链式法则 ∂Li∂zi=∂Li∂y^i⋅∂y^i∂zi\frac{\partial L_i}{\partial z_i} = \frac{\partial L_i}{\partial \hat{y}_i} \cdot \frac{\partial \hat{y}_i}{\partial z_i}ziLi=y^iLiziy^i ,代入 y^i=σ(zi)\hat{y}_i = \sigma(z_i)y^i=σ(zi) 和其导数:

    KaTeX parse error: {align*} can be used only in display mode.

这个梯度结果极其简洁∂Li∂zi=y^i−yi\frac{\partial L_i}{\partial z_i} = \hat{y}_i - y_iziLi=y^iyi ,这也是交叉熵损失在二分类任务中收敛速度快的核心原因——梯度直接与预测误差成正比,无复杂计算。

六、推导总结

二分类交叉熵损失的推导逻辑链:

伯努利分布→似然函数→对数似然(简化)→负对数似然(损失)→结合Sigmoid求梯度\text{伯努利分布} \rightarrow \text{似然函数} \rightarrow \text{对数似然(简化)} \rightarrow \text{负对数似然(损失)} \rightarrow \text{结合Sigmoid求梯度}伯努利分布似然函数对数似然(简化)负对数似然(损失)结合Sigmoid求梯度

核心本质:交叉熵损失是二分类任务下的负对数似然函数,其优化目标等价于最大化样本观测概率,且梯度计算简洁高效。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐