news 2026/10/15 2:22:51

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^​)+(1−y)log(1−y^​)]

其中:

  • 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=1C​yi​log(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/10/14 23:21:02

【光学】基于遗传算法GA设计最优光学多层滤波器附Matlab代码

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

作者头像 李华
网站建设 2026/10/15 0:32:08

链表中的回文判断

给一个链表&#xff0c;判断这个链表是否为回文链表。能否使用O(1)的空间复杂度解决问题&#xff1f;思路1&#xff1a;使用辅助空间&#xff0c;我们这里给出了使用动态数组作为检查表&#xff0c;给出了两种实现方式&#xff0c;但是这种实现方式效率不高。​ public class L…

作者头像 李华
网站建设 2026/10/14 21:03:25

技术架构的核心目标

技术架构的核心问题与目标 技术架构的核心在于解决系统在物理层面的稳定性、性能和扩展性问题&#xff0c;确保业务功能在复杂环境下可靠运行。以下是技术架构需重点解决的问题及实现目标&#xff1a;系统的物理组成 一个完整的系统由多个层级构成&#xff1a; 接入系统&#x…

作者头像 李华
网站建设 2026/10/15 10:24:05

算法导论第三版,学习日志,2.思考

2-1 &#xff08;在归并排序中对小数组采用插入排序&#xff09;虽然归并排序的最坏情况运行时间为 Θ(n lg n)&#xff0c;而插入排序的最坏情况运行时间为 Θ(n)&#xff0c;但是插入排序中的常量因子可能使得它在 n 较小时&#xff0c;在许多机器上实际运行得更快。因此&…

作者头像 李华
网站建设 2026/10/15 20:13:18

Python数据类型入门

引言 在Python编程中&#xff0c;数据类型就像“食材”&#xff0c;掌握它们才能做出美味的“代码大餐”。今天我们用生活中的例子&#xff0c;带大家认识Python最常用的6种数据类型&#xff0c;看完就能动手写代码&#xff01; 一、整数与浮点数&#xff1a;数字的两种形态 整…

作者头像 李华