news 2026/4/23 10:29:05

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/4/22 11:20:46

基于VMD-CPA-KELM-IOWAl-CSA-LSSVM碳排放的混合预测模型研究附Matlab代码

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

作者头像 李华
网站建设 2026/4/17 13:00:03

鸿蒙与 Electron 的融合探索:跨端开发新思路(CSDN图文教程)

&#x1f31f; 前言 随着华为鸿蒙系统&#xff08;HarmonyOS&#xff09;的快速发展&#xff0c;越来越多开发者开始关注其生态建设。与此同时&#xff0c;Electron 作为构建跨平台桌面应用的强大框架&#xff0c;在 Windows、macOS 和 Linux 上广受欢迎。 但你有没有想过&am…

作者头像 李华
网站建设 2026/4/23 10:11:12

基于文化优化算法图像量化附Matlab代码

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

作者头像 李华
网站建设 2026/4/23 10:10:16

基于自抗扰控制ADRC的永磁同步电机仿真模型附Simulink仿真

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

作者头像 李华
网站建设 2026/4/23 10:11:05

Linux网络编程-udp

1.今天的内容包括&#xff1a;udp通信的编程方法、广播通信的方法2.udp通信udp和tcp通信方式2.1socket创建使用SOCK_DGRAM创建。2.2发送和接收数据使用sendto和recvfrom&#xff0c;因为没有建立连接所以每次都要有ip和port&#xff0c;就是使用struct sockaddr地址。都是六个参…

作者头像 李华
网站建设 2026/4/23 10:11:01

LLC谐振变换器恒压恒流双竞争闭环Simulink仿真探索

LLC谐振变换器恒压恒流双竞争闭环simulink仿真&#xff08;附说明文档&#xff09; 1.采用电压电流双环竞争控制&#xff08;恒压恒流&#xff09; 2.附双环竞争仿真文件&#xff08;内含仿真介绍&#xff0c;波形分析&#xff0c;增益曲线计算.m代码&#xff09; 仿真参数&…

作者头像 李华