news 2026/6/23 18:02:42

neural network中的loss function (一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
neural network中的loss function (一)

交叉熵损失

loss函数是机器学习中衡量模型预测值与真实值之间的差距, 并指导模型在训练过程中不断优化自身。交叉熵损失 (Cross-Entropy Loss)是分类任务中最常用的损失函数之一。交叉熵损失的目标最小化该值,使得模型输出的预测概率真实标签的分布尽可能接近。

交叉熵损失主要用于衡量两个概率分布之间的差异性。在分类问题中,我们通常将真实标签和模型预测都视为概率分布。

  • 真实标签 (True Label)通常以 one-hot 编码形式表示,例如对于一个三分类问题,如果样本属于第二类,则真实标签为[0, 1, 0]。这表示样本属于第二类的概率为 1,属于其他类的概率为 0。
  • 模型预测 (Predicted Probability)是模型输出的各个类别的概率分布,例如[0.1, 0.7, 0.2]。这表示模型预测样本属于第一类的概率为 0.1,第二类为 0.7,第三类为 0.2。

交叉熵损失的公式如下:

对于二分类问题:

L=−[ylog⁡(y^)+(1−y)log⁡(1−y^)]L = -[y \log(\hat{y}) + (1-y) \log(1-\hat{y})]L=[ylog(y^)+(1y)log(1y^)]

其中:

  • yyy是真实标签 (0 或 1)
  • y^\hat{y}y^是模型预测的样本属于类别 1 的概率

对于多分类问题:

L=−∑i=1Cyilog⁡(y^i)L = - \sum_{i=1}^{C} y_i \log(\hat{y}_i)L=i=1Cyilog(y^i)

其中:

  • CCC是类别数量
  • yiy_iyi是真实标签的 one-hot 编码中第iii个元素 (0 或 1)
  • y^i\hat{y}_iy^i是模型预测的样本属于第iii个类别的概率

理解公式:

  • 交叉熵损失的核心思想是惩罚模型对于错误类别的预测。
  • 当模型预测的概率越接近真实标签时,损失值越小。反之,当模型预测的概率与真实标签相差甚远时,损失值越大。
  • 公式中的负号是为了确保损失值为正数,方便后续的梯度下降优化。
  • log⁡\loglog函数使得当预测概率接近 0 时,损失值趋于无穷大,从而对错误的预测施加更大的惩罚。

logits:

Logits 就是模型在最后一层线性变换之后、还没进 Softmax 之前的那个原始输出向量
换句话说,logits 是“未归一化的预测分数”,每个元素对应一个类别的“得分”。Softmax 的作用就是把这组得分压缩成 0–1 之间、加和为 1 的概率分布。

为什么交叉熵损失适合分类任务?

  • 概率解释:交叉熵损失直接基于概率分布,与分类任务的本质相符。分类任务的目标就是预测样本属于各个类别的概率。
  • 梯度特性:交叉熵损失函数在梯度下降优化过程中,能够提供更有效的梯度信息,加速模型收敛,尤其是在使用 Sigmoid 或 Softmax 激活函数的情况下,可以缓解梯度消失问题。
  • 直观性:交叉熵损失能够直观地衡量预测概率分布与真实概率分布之间的差异,损失值越小,表示模型预测越准确。

为什么使用log函数计算loss?

计算机中的log函数a>1, 计算loss时, x<1, 所以取-log(x)

  • 当x -> 1时, log(x)->0
  • x -> 0时, log(x) ->无穷大
其他类似概念
  • KL 散度(Kullback-Leibler Divergence):衡量两个概率分布之间的相对差异,常用于生成模型(如自编码器)中。
  • Hinge 损失:用于支持向量机(SVM)中的损失函数,适合二分类任务。
  • 均方误差(MSE):通常用于回归问题中,衡量预测值与真实值之间的误差平方和。
  • 交叉熵 vs 均方误差(MSE):交叉熵主要用于分类任务,而均方误差主要用于回归任务。
  • 二元交叉熵 vs 多分类交叉熵:二元交叉熵用于二分类问题,输入值是单个预测概率;多分类交叉熵用于多类别问题,输入值是每个类别的概率分布。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 22:44:18

【电力系统】电力系统优化与控制热液调度附Matlab代码和报告

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码获取及仿…

作者头像 李华
网站建设 2026/6/22 16:57:43

Golang实战:构建综合多头(逾期+反欺诈)风险查询的高性能客户端

一、用 Go 构建毫秒级风控“熔断器” 在实时信贷审批场景中&#xff0c;风控系统需要在极短的时间内&#xff08;通常 < 200ms&#xff09;做出决策。如果一个申请人当前存在信贷逾期或属于欺诈团伙成员&#xff0c;系统必须立即“熔断”流程&#xff0c;直接拒单&#xff0…

作者头像 李华
网站建设 2026/6/22 19:16:19

【TSP问题】基于蜣螂算法DBO和改进的蜣螂算法FADBO求解旅行商TSP问题(可根据自己的经纬度设置自己想要到达的地区)附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码获取及仿真…

作者头像 李华
网站建设 2026/6/23 2:36:12

数据结构:二叉排序树,平衡二叉树,红黑树的介绍

一.二叉排序树二叉排序树的定义是任意一个父节点的值&#xff0c;大于其左子树节点的值&#xff0c;小于其右子树节点的值。以下是两个例子&#xff1a;&#xff08;1&#xff09;数组&#xff1a;5,3,1,4,8,9,7它的二叉排序树是这样的&#xff1a;它的时间复杂度是O(logn)。&a…

作者头像 李华