014_多分类交叉熵损失函数的构造过程

内容分享3周前发布
0 0 0

损失函数的构造是机器学习中的核心难点之一,但它的本质逻辑实则很朴素:用一个数学公式量化 “模型预测结果” 与 “真实结果” 之间的差异。差异越大,损失函数的值就越大;差异越小,损失函数的值就越小。模型训练的目标就是通过调整参数,让这个 “差异值” 尽可能小。

先从 “直观需求” 理解损失函数的构造逻辑

以多分类问题为例,我们希望模型满足两个核心需求:

  1. 真实类别的预测概率尽可能高(列如样本实际是 “猫”,模型预测 “猫” 的概率最好接近 1);
  2. 非真实类别的预测概率尽可能低(列如样本实际是 “猫”,模型预测 “狗”“鸟” 的概率最好接近 0)。

损失函数的构造,就是要把这两个需求翻译成数学公式。

多分类交叉熵损失的构造过程:从 “单个样本” 入手

假设我们有一个 3 分类问题(类别 A、B、C),某个样本的真实标签是 “B”。用独热编码表明真实标签就是 [0, 1, 0](只有真实类别位置为 1,其余为 0)。

模型对这个样本的预测概率是 014_多分类交叉熵损失函数的构造过程(列如 [0.2, 0.7, 0.1]),其中 014_多分类交叉熵损失函数的构造过程(softmax 保证)。

第一步:聚焦 “真实类别” 的预测概率

我们最关心的是模型对 “真实类别 B” 的预测概率 014_多分类交叉熵损失函数的构造过程。显然:

  • 如果 014_多分类交叉熵损失函数的构造过程 接近 1(列如 0.9),说明预测很好,损失应该很小;
  • 如果 014_多分类交叉熵损失函数的构造过程 接近 0(列如 0.1),说明预测很差,损失应该很大。

什么样的函数能满足 “输入越接近 1,输出越接近 0;输入越接近 0,输出越接近无穷大”?

答案是 -log(x) 函数(x 是预测概率,范围 (0,1)):

  • 当 x→1 时,-log (x)→0(损失小);
  • 当 x→0 时,-log (x)→+∞(损失大)。

这一步已经能满足对 “真实类别” 的惩罚需求:014_多分类交叉熵损失函数的构造过程 就是针对真实类别 B 的损失。

第二步:如何处理 “非真实类别”?

在多分类问题中,“非真实类别的概率小” 是 “真实类别的概率大” 的自然结果,不需要额外在损失函数中单独惩罚非真实类别。

真实标签是 [0, 1, 0],非真实类别 A 和 C 的标签是 0。只要乘以标签 0,结果就是 0,不会增加损失。只有真实类别(标签为 1)的项会贡献损失。

因此,扩展到 K 个类别的通用公式就是:

014_多分类交叉熵损失函数的构造过程

其中,014_多分类交叉熵损失函数的构造过程 是独热编码的真实标签(1 表明真实类别,0 表明其他),014_多分类交叉熵损失函数的构造过程 是模型预测的类别 k 的概率。

举例:用具体数值感受损失的变化

  • 案例 1:样本真实是 B,模型预测 [0.1, 0.8, 0.1](预测较好)
  • 损失 = – [0・log (0.1) + 1・log (0.8) + 0・log (0.1)] = -log (0.8) ≈ 0.22(损失小)
  • 案例 2:样本真实是 B,模型预测 [0.7, 0.2, 0.1](预测较差)
  • 损失 = -log (0.2) ≈ 1.61(损失大)
  • 案例 3:样本真实是 B,模型预测 [0.01, 0.99, 0.00](预测极好)
  • 损失 = -log (0.99) ≈ 0.01(损失极小)

显然,这个公式完美符合我们的直观需求:真实类别预测越准,损失越小;越不准,损失越大

总结:损失函数构造的通用思路

  1. 明确任务目标:分类问题关注 “类别概率的准确性”,回归问题关注 “数值预测的偏差”,目标不同,损失函数的设计方向不同。
  2. 定义 “好 / 坏” 的量化标准:列如分类中 “真实类别概率高 = 好”,用 – log (x) 惩罚低概率;回归中 “预测值与真实值接近 = 好”,用平方差或绝对值衡量偏差。
  3. 保证可优化性:损失函数需要连续、可导(或分段可导),才能用梯度下降等算法更新参数(列如 – log (x) 是光滑可导的,适合优化)。

交叉熵损失之所以成为分类问题的首选,正是由于它精准捕捉了 “概率分布匹配” 的核心需求,且数学性质友善(可导、惩罚合理)。多分类的交叉熵只是二分类的自然扩展(二分类中 K=2,损失简化为 014_多分类交叉熵损失函数的构造过程),本质逻辑完全一致。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...