深度学习篇---回归分类任务的损失函数


文章目录

  • 前言
  • 一、分类任务常用损失函数
    • 1. 交叉熵损失(Cross-Entropy Loss)
      • 数学形式
      • 使用场景
      • 特点
      • 训练状态分析
        • 损失下降
        • 损失震荡
        • 训练损失低但是验证损失高
    • 2. Hinge Loss(合页损失)
      • 数学形式
      • 适用场景
      • 特点
      • 训练状态分析
        • 损失趋近于0
        • 损失不下降
    • 3. Focal Loss
      • 数学形式
      • 适用场景
      • 特点
      • 训练状态分析
        • 损失快速下降
        • 损失稳定后仍有波动
  • 二、回归任务常用损失函数
    • 1. 均方误差(Mean Squared Error, MSE)
      • 数学形式
      • 适用场景
      • 特点
      • 训练状态分析
        • 损失持续下降
        • 损失突然增大
    • 2. 平均绝对误差(Mean Absolute Error, MAE)
      • 数学形式
      • 适用场景
      • 特点
      • 训练状态分析
        • 损失缓慢下降
        • 损失波动小但值比较高
    • 3. Huber Loss
      • 数学形式
      • 适用场景
      • 特点
      • 训练状态分析
        • 损失平稳下降
        • 需调整δ
  • 三、损失函数值与训练状态的关系
  • 四、总结
    • 分类任务
    • 回归任务
    • 监控策略


前言

本文简单介绍了深度学习中常用的损失函数。比如用于回归任务的交叉熵损失、Focal Loss损失;用于分类任务的MAE\MSE\Huber损失等。


一、分类任务常用损失函数

1. 交叉熵损失(Cross-Entropy Loss)

数学形式

数学形式

𝑦𝑖,𝑐 样本 𝑖的真实标签(one-hot 编码)。
𝑝𝑖,𝑐:模型预测样本 𝑖 属于类别 𝑐的概率。

使用场景

适用场景:多分类任务(如手写数字识别、图像分类)。

特点

  1. 直接衡量预测概率分布与真实分布的差异。
  2. 错误预测的惩罚呈指数增长(梯度随误差增大而增大)。

训练状态分析

损失下降

损失下降:模型正在学习正确分类样本

损失震荡

损失震荡:学习率可能过高,或数据噪声较大

训练损失低但是验证损失高

训练损失低但验证损失高:过拟合(模型记忆训练数据,泛化能力差)。

2. Hinge Loss(合页损失)

数学形式

𝑦𝑖∈{−1,1}:真实标签。
𝑦^𝑖:模型输出的未归一化得分(如 SVM 的决策函数)。

适用场景

适用场景:二分类任务(如支持向量机)。

特点

  1. 正确分类且置信度高的样本损失为 0
  2. 误分类样本的惩罚与置信度线性相关

训练状态分析

损失趋近于0

损失趋近于 0:模型对大部分样本分类正确且置信度高

损失不下降

损失不下降:模型无法找到有效的分类边界(需调整超参数或特征)。

3. Focal Loss

数学形式

Focal Loss

  1. 𝛼:平衡类别权重的系数。
  2. 𝛾:聚焦参数降低易分类样本的权重。

适用场景

适用场景:类别不平衡问题(如目标检测中的前景-背景分类)。

特点

通过降低简单样本的权重,使模型更关注难样本。

训练状态分析

损失快速下降

损失快速下降:模型正在学习难样本的特征。

损失稳定后仍有波动

损失稳定后仍有波动:需调整 𝛾或数据增强策略。

二、回归任务常用损失函数

1. 均方误差(Mean Squared Error, MSE)

数学形式

均方误差

适用场景

适用场景:连续值预测(如房价预测、温度预测)。

特点

  1. 异常值敏感(平方放大大误差)。
  2. 输出为凸函数,利于梯度下降优化。

训练状态分析

损失持续下降

损失持续下降:模型正在拟合数据分布

损失突然增大

损失突然增大:可能遇到异常值或梯度爆炸。

2. 平均绝对误差(Mean Absolute Error, MAE)

数学形式

平均绝对误差

适用场景

适用场景:对异常值敏感的回归任务(如金融风险预测)。

特点

  1. 异常值鲁棒(线性惩罚)。
  2. 梯度恒定,可能导致收敛速度慢。

训练状态分析

损失缓慢下降

损失缓慢下降:需结合自适应优化器(如 Adam)。

损失波动小但值比较高

损失波动小但值较高:模型可能欠拟合(需增加网络容量)。

3. Huber Loss

数学形式

Huber Loss

适用场景

适用场景:存在少量异常值的回归任务(如传感器数据预测)。

特点

  1. 结合 MSE 和 MAE 的优点,对异常值鲁棒。
  2. 需手动设定阈值 𝛿。

训练状态分析

损失平稳下降

损失平稳下降:模型在平衡大误差和小误差的优化。

需调整δ

需调整 𝛿:根据误差分布动态选择。

三、损失函数值与训练状态的关系

损失函数行为 可能原因 解决方案
训练损失持续下降 模型正常学习中 持续监控验证集损失
验证损失上升 过拟合 增加正则化(Dropout, L2)、数据增强
损失震荡剧烈 学习率过高或批量过小 降低学习率、增大批量大小
损失长期不下降 模型容量不足、梯度消失/爆炸 加深网络、使用残差连接、调整初始化
训练/验证损失均高 欠拟合 增加模型复杂度、减少正则化、延长训练

四、总结

分类任务

分类任务:优先选择交叉熵损失,处理不平衡数据时使用 Focal Loss

回归任务

回归任务:根据**异常值情况选择 MSE(平滑优化)**或 MAE/Huber(鲁棒性)

监控策略

同时观察训练集和验证集损失,判断过拟合/欠拟合
使用学习率调度器(如 ReduceLROnPlateau)动态调整优化速度。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39892.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV三维解算常用方法C++

如果标定过程是通过OpenCV张正友标定法实现的,得到的内参外参保存在.txt文件中是这样的形式: ① 内参intrinsics.txt: ② 外参extrinsics.txt: 那么可以通过如下方法读取.txt文件获取左右相机内外参,主要包括三维解算…

光电效应及普朗克常数的测定数据处理 Python实现

内容仅供参考,如有错误,欢迎指正,如有疑问,欢迎交流。 因为我不会Excel所以只能用Python来处理 祝大家早日摆脱物理实验的苦海 用到的一些方法 PCHIP (分段三次埃尔米特插值多项式) 因为实验时记录的数…

【日常笔记 1】 有关异常学习笔记

今天笔记内容详见 ----- C11_5 异常部分 笔记较乱 , 笔者只是为了记录重要知识点 , 想重点了解相关知识点的可关注笔者正文栏目 ~ 笔者代码仓 : C11_5 代码 异常部分学习笔记 异常基本关键字信息   throw    ----    抛出异常   try - catch ----    捕获异常 , 必须…

Linux UDP网络编程套接字sockets

目录 一、预备知识 1、IP地址 2、端口号 3、Socket网络通信 4、认识TCP/UDP协议 (1)TCP协议 (2)UDP协议 (3)网络字节序 二、socket网络套接字 1、概念 2、Socket 的地址结构和一系列转换函数 &a…

VUE3项目VITE打包优化

VUE3项目VITE打包优化 代码加密依赖配置效果对比图 自动导入依赖配置 代码压缩依赖配置效果对比图 图片压缩依赖配置效果对比图 字体压缩总结与实践运用效果 代码加密 依赖 npm install -D vite-plugin-bundle-obfuscator配置 import vitePluginBundleObfuscator from "…

NO.57十六届蓝桥杯备战|基础算法-高精度|加减乘除|模拟竖式计算(C++)

当数据的值特别⼤,各种类型都存不下的时候,此时就要⽤⾼精度算法来计算加减乘除: 先⽤字符串读⼊这个数,然后⽤数组逆序存储该数的每⼀位;利⽤数组,模拟加减乘除运算的过程。 ⾼精度算法本质上还是模拟算法…

最新DeepSeek-V3-0324:AI模型性能提升与新特性解析

文章目录 性能提升概览新特性解析1. 推理任务表现提高2. 前端开发能力增强3. 中文写作与搜索能力优化4. 模型开源 总结与展望 随着人工智能技术的快速发展,模型的迭代更新成为推动技术进步的重要力量。最近,DeepSeek团队发布了其V3模型的最新小版本更新—…

linux常用指令(7)

今天还是继续学习linux相关的指令,基础越牢固,就越有利于我们后面的学习,那么话不多说,来看. 1.head指令 功能描述:用于显示文件的开头部分内容,默认情况下head显示文件的前10行内容. 基本语法:head 文件 选项:-n nums 显示前nums行内容 …

数仓架构告别「补丁」时代!全新批流一体 Domino 架构终结“批流缝合”

在数字化转型的浪潮中,企业对数据处理的需求日益复杂多变,传统的批处理和流处理架构已难以满足日益增长的性能和时效性要求。在此背景下,YMatrix CEO 姚延栋发布了深度文章《数仓架构告别「补丁」时代!全新批流一体 Domino 架构终…

HTB 笔记 | SQL 注入基础 + 实操小练习 P2

1. 数据库类型 数据库分为两类: 关系型数据库(Relational Databases) 使用表格存储数据(行和列)。数据通过“键”连接,形成逻辑关系。示例:MySQL、PostgreSQL、SQL Server。特点:结…

MySQL 入门大全:数据类型

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

解决 Not allowed to load local resource 问题

记录一下遇到的问题&#xff1a;html跳转本地资源&#xff0c;用相对路径 这样是不对的&#xff0c;要用 <script src"/jquery.min.js"></script> 网络路径也行&#xff0c;慢了一点 记得一定要关闭浏览器的广告屏蔽器 绝对路径也行&#xff0c;不过要…

STM32实现智能温控系统(暖手宝):PID 算法 + DS18B20+OLED 显示,[学习 PID 优质项目]

一、项目概述 本文基于 STM32F103C8T6 单片机&#xff0c;设计了一个高精度温度控制系统。通过 DS18B20 采集温度&#xff0c;采用位置型 PID 算法控制 PWM 输出驱动 MOS 管加热Pi膜&#xff0c;配合 OLED 实时显示温度数据。系统可稳定将 PI 膜加热至 40℃&#xff0c;适用于…

[深度学习]图像分类项目-食物分类

图像分类项目-食物分类(监督学习和半监督学习) 文章目录 图像分类项目-食物分类(监督学习和半监督学习)项目介绍数据处理设定随机种子读取文件内容图像增广定义Dataset类 模型定义迁移学习 定义超参Adam和AdamW 训练过程半监督学习定义Dataset类模型定义定义超参训练过程 项目介…

C++初阶入门基础二——类和对象(中)

1类的默认成员函数 默认成员函数就是用户没有显式实现&#xff0c;编译器会自动生成的成员函数称为默认成员函数。一个类&#xff0c;我们不写的情况下编译器会默认生成以下6个默认成员函数&#xff0c;需要注意的是这6个中最重要的是前4个&#xff0c;最后两个取地址重载不重…

基于SSM框架的线上甜品销售系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此网上销售信息的…

3.25学习总结java 接口+内部类

JDK8以后新增的方法 可以将接口中静态方法和抽象方法中重复的部分抽离出来&#xff0c;作为私有方法&#xff0c;用去private修饰&#xff0c;此方法只为接口提供服务&#xff0c;不需要外界访问。 接口的应用 接口代表规则&#xff0c;是行为的抽象&#xff0c;想让哪个类拥有…

Linux--环境变量

ok&#xff0c;今天我们来学习Linux中的环境变量、地址空间、虚拟内存 环境变量 基本概念 环境变量(environmentvariables)⼀般是指在操作系统中⽤来指定操作系统运⾏环境的⼀些参数如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&#xff0c;从来不知道我…

Java 集合 List、Set、Map 区别与应用

一、核心特性对比 二、底层实现与典型差异 ‌List‌ ‌ArrayList‌&#xff1a;动态数组结构&#xff0c;随机访问快&#xff08;O(1)&#xff09;&#xff0c;中间插入/删除效率低&#xff08;O(n)&#xff09;‌‌LinkedList‌&#xff1a;双向链表结构&#xff0c;头尾操作…

基于 arco 的 React 和 Vue 设计系统

arco 是字节跳动出品的企业级设计系统&#xff0c;支持React 和 Vue。 安装模板工具 npm i -g arco-cli创建项目目录 cd someDir arco init hello-arco-pro? 请选择你希望使用的技术栈React❯ Vue? 请选择一个分类业务组件组件库Lerna Menorepo 项目❯ Arco Pro 项目看到以…