机器学习--回归模型和分类模型常用损失函数总结(详细)

在这里插入图片描述

文章目录

      • 引言
  • 回归模型常用损失函数
    • 均方误差(Mean Squared Error, MSE)
    • 均方根误差(Root Mean Squared Error, RMSE)
    • 平均绝对误差(Mean Absolute Error, MAE)
    • Huber损失(Huber Loss)
  • 分类模型常用损失函数
    • 交叉熵损失(Cross-Entropy Loss)
    • Hinge损失(Hinge Loss)
    • Kullback-Leibler散度(Kullback-Leibler Divergence, KL散度)
      • 总结
        • 回归模型
        • 分类模型

引言

在机器学习和统计学领域,损失函数是评估和优化模型性能的核心工具。它们通过量化模型预测值与真实值之间的差异,指导模型的训练过程,最终影响模型的准确性和可靠性。不同类型的损失函数适用于不同的任务,如回归问题和分类问题,因此选择合适的损失函数是构建高效模型的关键步骤。

在回归问题中,常见的损失函数包括均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)和Huber损失。每种损失函数都有其独特的优缺点和适用场景,例如,MSE在处理大误差时表现良好,但对异常值敏感;MAE对异常值更鲁棒,但梯度不连续。Huber损失则结合了MSE和MAE的优点,在面对异常值时表现出较好的鲁棒性。

对于分类问题,交叉熵损失是最常用的损失函数,广泛应用于二分类和多分类任务,特别是在深度学习中。它通过优化预测概率分布,帮助模型在复杂任务中取得优异的表现。其他常用的损失函数如Hinge损失和Kullback-Leibler散度(KL散度),分别在支持向量机和概率模型中有着重要应用。

本文将深入探讨回归模型和分类模型中常用的损失函数,分析它们的数学公式、优缺点以及适用场景,帮助读者更好地理解和选择合适的损失函数来优化机器学习模型。

在这里插入图片描述

回归模型常用损失函数

均方误差(Mean Squared Error, MSE)

MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

优点
平滑性:误差平方使得损失函数平滑且容易求导,有助于梯度下降法等优化算法。
放大大误差:平方项会放大大误差的影响,使模型更关注大误差。

缺点
对异常值敏感:因为误差被平方,大的异常值会极大地增加损失值,影响模型的鲁棒性。

适用场景: 当数据中异常值较少且对大误差的敏感度要求高时使用。

均方根误差(Root Mean Squared Error, RMSE)

RMSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} RMSE=n1i=1n(yiy^i)2

优点
直观性:与MSE相比,RMSE保留了平方误差放大大误差的特性,但单位与原始数据相同,更容易解释。

缺点
计算复杂度:相比MSE多了一步平方根计算。

适用场景
同MSE,且需要损失函数值与数据原始单位一致时。

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

MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1i=1nyiy^i

优点
鲁棒性:对异常值不敏感,因为误差没有被平方。
易解释:损失值直接反映平均预测误差的大小。

缺点
梯度不连续:在误差为零点处,梯度不连续,可能导致优化算法收敛较慢。

适用场景
数据中含有异常值且需要对这些异常值有更高容忍度时。

Huber损失(Huber Loss)

Huber ( y , y ^ ) = { 1 2 ( y − y ^ ) 2 if  ∣ y − y ^ ∣ ≤ δ δ ∣ y − y ^ ∣ − 1 2 δ 2 if  ∣ y − y ^ ∣ > δ \text{Huber}(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{if } |y - \hat{y}| \leq \delta \\ \delta |y - \hat{y}| - \frac{1}{2}\delta^2 & \text{if } |y - \hat{y}| > \delta \end{cases} Huber(y,y^)={21(yy^)2δyy^21δ2if yy^δif yy^>δ

优点
平衡性:结合了MSE和MAE的优点,小误差时类似于MSE,大误差时类似于MAE,对异常值有一定的鲁棒性。
可调参数:参数 ( δ ) (\delta) (δ) 可以根据具体情况调整,灵活性强。

缺点
参数调整:需要调整参数 ( δ ) (\delta) (δ),不适当的 ( δ ) (\delta) (δ)值可能影响模型性能。

适用场景
当数据中存在少量异常值且需要模型对大误差和小误差都能进行有效处理时。

分类模型常用损失函数

交叉熵损失(Cross-Entropy Loss)

二分类交叉熵损失
Binary Cross-Entropy = − 1 n ∑ i = 1 n [ y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) ] \text{Binary Cross-Entropy} = - \frac{1}{n} \sum_{i=1}^{n} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right] Binary Cross-Entropy=n1i=1n[yilog(y^i)+(1yi)log(1y^i)]

多分类交叉熵损失
Categorical Cross-Entropy = − 1 n ∑ i = 1 n ∑ c = 1 C y i , c log ⁡ ( y ^ i , c ) \text{Categorical Cross-Entropy} = - \frac{1}{n} \sum_{i=1}^{n} \sum_{c=1}^{C} y_{i,c} \log(\hat{y}_{i,c}) Categorical Cross-Entropy=n1i=1nc=1Cyi,clog(y^i,c)

优点
适用性广:广泛应用于分类问题,特别是深度学习模型。
概率解释:损失函数值与概率相关,直观且易于理解。
良好梯度特性:对概率预测进行优化效果好。

缺点
对错误分类惩罚较高:可能导致模型在异常数据上过拟合。

适用场景
二分类和多分类任务,如图像分类、文本分类等。

Hinge损失(Hinge Loss)

Hinge Loss = 1 n ∑ i = 1 n max ⁡ ( 0 , 1 − y i y ^ i ) \text{Hinge Loss} = \frac{1}{n} \sum_{i=1}^{n} \max(0, 1 - y_i \hat{y}_i) Hinge Loss=n1i=1nmax(0,1yiy^i)
其中, ( y i ) ( y_i ) (yi) 为真实标签(取值为+1或-1), ( y ^ i ) (\hat{y}_i) (y^i) 为预测值。

优点
分类边界优化:对分类边界的优化效果好,适用于支持向量机(SVM)。
对大间隔分类器友好:鼓励模型找到更大的分类间隔。

缺点
仅适用于线性可分问题:对非线性可分问题效果不佳。
不处理概率输出:不能直接用于概率模型。

适用场景
线性可分问题和支持向量机的应用场景。

Kullback-Leibler散度(Kullback-Leibler Divergence, KL散度)

KL ( P ∥ Q ) = ∑ i = 1 n P ( i ) log ⁡ P ( i ) Q ( i ) \text{KL}(P \| Q) = \sum_{i=1}^{n} P(i) \log \frac{P(i)}{Q(i)} KL(PQ)=i=1nP(i)logQ(i)P(i)

其中, ( P ) (P) (P) ( Q ) (Q) (Q) 是两个概率分布。

优点
测量概率分布差异:适用于比较两个概率分布,特别是处理概率模型的输出。
灵活性:适用于多种任务中的概率分布比较。

缺点
计算不稳定性:当 ( Q ( i ) ) (Q(i)) (Q(i)) 很小或为零时,计算结果会不稳定。
不对称性 ( KL ( P ∥ Q ) ≠ KL ( Q ∥ P ) ) (\text{KL}(P \| Q) \neq \text{KL}(Q \| P)) (KL(PQ)=KL(QP)),需要注意使用场景。

适用场景
处理概率分布差异的任务,如语言模型、生成对抗网络(GAN)等。

总结

回归模型

**均方误差(MSE)**适用于大多数回归问题,特别是异常值较少的情况下。
**均方根误差(RMSE)**适用于需要损失函数值与原始数据单位一致的场景。
**平均绝对误差(MAE)**适用于对异常值敏感度要求低的场景。
Huber损失适用于数据中存在少量异常值且需要综合处理大误差和小误差的场景。

分类模型

交叉熵损失广泛适用于二分类和多分类任务,特别是在深度学习中。
Hinge损失适用于线性可分问题和支持向量机应用。
KL散度适用于需要比较概率分布的任务,如语言模型和生成对抗网络

选择合适的损失函数不仅取决于具体的任务和数据特性,还需要考虑模型的优化难度、对异常值的处理能力以及应用场景的具体要求。

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

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

相关文章

【HTTP系列】HTTP1.0/1.1/2.0 的区别

文章目录 一、HTTP1.0二、HTTP1.1三、HTTP2.0# 多路复用二进制分帧首部压缩服务器推送 四、总结HTTP1.0:HTTP1.1:HTTP2.0: 参考文献 一、HTTP1.0 HTTP协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本 HTTP 1.0 浏览器…

学习笔记——路由网络基础——环回接口(loopback)

6、环回接口(loopback) (1)定义 环回接口(loopback) :是一种虚拟的接口,是一种纯软件性质的虚拟接口,模拟一个单独的网段。 Loopback等于在设备中模拟另外不同的网络,实现不需要物理接口连接设备,依然可以模拟的功能…

海思Hi3519DV500方案1200万无人机吊舱套板

海思Hi3519DV500方案1200万无人机吊舱套板 Hi3519DV500 是一颗面向行业市场推出的超高清智能网络摄像头SoC。该芯片最高 支持四路sensor 输入,支持最高4K30fps 的ISP 图像处理能力,支持2F WDR、 多级降噪、六轴防抖、全景拼接、多光谱融合等多种传统图像…

【Python】一文向您详细介绍 `__dict__` 的作用和用法

【Python】一文向您详细介绍 __dict__ 的作用和用法 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通本硕…

以sqlilabs靶场为例,讲解SQL注入攻击原理【42-53关】

【Less-42】 使用 or 11 -- aaa 密码,登陆成功。 找到注入点:密码输入框。 解题步骤: # 获取数据库名 and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- aaa# 获取数据表名 and updatexml(1,concat(0x7e,(select group_conca…

【教程】让小爱音箱Play增强版接入Mi-GPT

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 项目地址:https://github.com/idootop/mi-gpt MiIOT:小米小爱音箱Play 增强版 - 产品规格 - Xiaomi Miot Spec 实现效果图&…

数据库(27)——多表查询——自连接

语法 SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件...; 自连接可以是内连接查询也可以是外连接查询。 演示 我新增了字段friend便于演示 查询所有人的名字以及他们的friend的人的名字: select a.name,b.name from user a,user b where a.friendb.id; 其…

【数据结构】查找(顺序查找、二分查找、索引顺序查找、二叉排序树、平衡排序树、B树、B+树、哈希表)

目录 数据结构——查找何为查找1. 查找表2. 关键字3. 查找方法效果评价指标——平均查找长度ASL(Average Search Length) 静态查找表1.顺序查找2.二分查找二分查找判定树 3.静态查找表—索引顺序表的查找索引顺序查找表的算法原理: 动态查找树表1. 二叉排序树2. 二叉…

06 Linux 设备驱动模型

1、Overview Linux-2.6 引入的新的设备管理机制 - kobject 降低设备多样性带来的 Linux 驱动开发的复杂度,以及设备热拔插处理、电源管理等将硬件设备归纳、分类,然后抽象出一套标准的数据结构和接口驱动的开发,就简化为对内核所规定的数据结构的填充和实现驱动模型是 Linu…

Go微服务: 分布式之通过本地消息实现最终一致性和最大努力通知方案

通过本地消息实现最终一致性 1 )概述 我们的业务场景是可以允许我们一段时间有不一致的消息的状态的,并没有说必须特别高的这个消息的一致性比如说在TCC这个架构中,如果采用了消息的最终一致性,整体架构设计要轻松好多即便我们库…

获取东方财富网股票的实时数据股票的数据,并保存到Excel文件中

可以运行python文件获取东方财富网:【序号,代码,名称,最新价,涨跌幅,涨跌额,成交量,成交额,振幅,最高,最低,今开,昨收,量比,换手率,市盈率-动态,市净率,总市值,流通市值,涨速,5分钟涨跌,60日涨跌幅,年初至今涨跌幅,】数据,保存到Excel文件中。 import pandas as pd import re…

公司面试题总结(二)

7. 说说 JavaScript 中的数据类型?存储上的差别? • 基本类型: o Number o String o Boolean o Undefined o null o symbol • 引用类型 o Object o Array o Function • 声明变量时不同的内存地址分配: o 简单类型的…

嵌入式Linux系统编程 — 3.3 chown、fchown 和 lchown 函数更改文件属主

目录 1 文件属主 1.1 文件属主概念 1.2 如何查看文件属主 1.3 有效用户 ID 和有效组 ID 2 chown 函数 2.1 chown命令 2.2 chown函数 2.3 getuid 和 getgid函数 3 fchown函数 3.1 fchown函数简介 3.2 示例代码 4 lchown函数 1 文件属主 1.1 文件属主概念 Linux…

tkinter颜色选择器

tkinter颜色选择器 颜色选择器效果代码 颜色选择器 Tkinter 提供了一个简单易用的颜色选择器模块 colorchooser,通过调用 colorchooser.askcolor() 方法,我们可以轻松实现颜色选择功能。 效果 代码 import tkinter as tk from tkinter import colorch…

CSS函数: translate、translate3d的使用

translate()和translate3d()函数可以实现元素在指定轴的平移的功能。函数使用在CSS转换属性transform的属性值。实现转换的函数类型有: translate():2D平面实现X轴、Y轴的平移translate3d():3D空间实现位置的平移translateX():实…

LLVM Cpu0 新后端4

想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1V_tZkt9uvxo5bnUufhMQ_Q?…

向量数据库是什么?

向量数据库是什么? 随着人工智能和机器学习技术的迅猛发展,向量数据库作为一种新型数据库引起了广泛关注。向量数据库专门用于存储和查询高维向量数据,是在大规模数据检索和相似性搜索领域的重要工具。 向量数据库的定义 向量数据库是一种…

为下一波创新做准备:人工智能和元宇宙

人工智能和元宇宙的发展带来了独特的可能性和挑战。随着这些技术的发展,我们进入了一个沉浸式虚拟体验和智能系统的时代,我们正站在一个历史性的时刻。为迎接下一波创新,采取必要的措施是很重要的。 我们正在见证两项变革性技术的激动人心的发…

以sqlilabs靶场为例,讲解SQL注入攻击原理【54-65关】

【Less-54】 与前面的题目不同是,这里只能提交10次,一旦提交超过十次,数据会重新刷新,所有的步骤需要重来一次。 解题步骤: 根据测试,使用的是单引号闭合。 # 判断字段的数量 ?id1 order by 3 -- aaa# …

WPF视频学习-基础知识篇

1.简介WPF: C# 一套关于windows界面应用开发框架 2.WPF和winform的差别 ,(WPF比较新) 创建新项目使用模板: WPF使用.xaml后缀,双击可查看操作界面和设置代码,其文件展开之后中有MainWindow.xaml.cs为程序交互逻辑。…