机器学习——损失函数(lossfunction)

news2024/11/23 16:48:53

问:非监督式机器学习算法使用样本集中的标签构建损失函数。

答:错误。非监督式机器学习算法不使用样本集中的标签构建损失函数。这是因为非监督式学习算法的目的是在没有标签的情况下发现数据集中的特定结构和模式,因此它们依赖于不同于监督式学习的算法。因此,它们不会使用标签来训练模型。相反,它们使用不同的技术,例如聚类,降维和异常检测来发现数据中的模式和结构。

一、非监督式学习

非监督学习的训练样本没有已知标签,常需要通过非监督学习去发现样本间的结构关系。
非监督学习这块内容由两部分组成:K邻近法和主成分分析

K-means


聚类是最常见的非监督学习应用。K-means是最常见的聚类学习算法。
K-means算法的输入包括:训练集样本,和需要划分的类别K。

 

二、什么是损失函数:

简单的理解就是每一个样本经过模型后会得到一个预测值,然后得到的预测值和真实值的差值就成为损失(当然损失值越小证明模型越是成功),我们知道有许多不同种类的损失函数,这些函数本质上就是计算预测值和真实值的差距的一类型函数,然后经过库(如pytorch,tensorflow等)的封装形成了有具体名字的函数。

三、为什么需要损失函数:

我们上文说到损失函数是计算预测值和真实值的一类函数,而在机器学习中,我们想让预测值无限接近于真实值,所以需要将差值降到最低(在这个过程中就需要引入损失函数)。而在此过程中损失函数的选择是十分关键的,在具体的项目中,有些损失函数计算的差值梯度下降的快,而有些下降的慢,所以选择合适的损失函数也是十分关键的。

四、损失函数通常使用的位置:

在机器学习中,我们知道输入的feature(或称为x)需要通过模型(model)预测出y,此过程称为向前传播(forward pass),而要将预测与真实值的差值减小需要更新模型中的参数,这个过程称为向后传播(backward pass),其中我们损失函数(lossfunction)就基于这两种传播之间,起到一种有点像承上启下的作用,承上指:接収模型的预测值,启下指:计算预测值和真实值的差值,为下面反向传播提供输入数据。

五、监督学习及其目标函数:

      损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。

损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。

模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子(一般来说,监督学习可以看做最小化下面的目标函数):

 

式子左边表示经验风险函数,损失函数是其核心部分;式子右边是正则项。式子整体是结构风险函数,其由经验风险函数和正则项组成。

其中,第一项L(yi,f(xi;w)) 衡量我们的模型(分类或者回归)对第i个样本的预测值f(xi;w)和真实的标签yi之前的误差。因为我们的模型是要拟合我们的训练样本的,所以我们要求这一项最小。即前面的均值函数表示的是经验风险函数,L代表的是损失函数;

但正如上面说言,我们不仅要保证训练误差最小,我们更希望我们的模型测试误差小,所以我们需要加上第二项,也就是对参数w的规则化函数Ω(w)去约束我们的模型尽量的简单。即后面的Φ是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或者其他的正则函数。

整个式子表示的意思是找到使目标函数最小时的θ值。机器学习的大部分带参模型都和这个不但形似,而且神似,其实大部分无非就是变换这两项而已。

损失函数/loss函数

      对于第一项Loss函数,如果是Square loss,那就是最小二乘;如果是Hinge Loss,那就是著名的SVM;如果是exp-Loss,那就是 Boosting;如果是log-Loss,那就是Logistic Regression;还有等等。不同的loss函数,具有不同的拟合特性,这个也得就具体问题具体分析的。

loss函数一般都是通过mle推导出来的。使用最大似然来导出代价函数的方法的一个优势是,它减轻了为每个模型设计代价函数的负担。明确一个模型p(y | x)则自动地确定了一个代价函数log p(y | x)。[深度学习]

下面主要列出几种常见的损失函数:

  • 平方损失
  • 0-1损失
  • Log损失
  • Hinge损失
  • 指数损失
  • 感知损失

平方损失函数(最小二乘法, Ordinary Least Squares )

最小二乘法是线性回归的一种,OLS将问题转化成了一个凸优化问题。在线性回归中,它假设样本和噪声都服从高斯分布(为什么假设成高斯分布呢?其实这里隐藏了一个小知识点,就是中心极限定理),最后通过极大似然估计MLE可以推导出最小二乘式子,即平方损失函数可以通过线性回归在假设样本是高斯分布的条件下推导得到。

最小二乘的基本原则是:最优拟合直线应该是使各点到回归直线的距离和最小的直线,即平方和最小。换言之,OLS是基于距离的,而这个距离就是我们用的最多的欧几里得距离。为什么它会选择使用欧式距离作为误差度量呢(即Mean squared error, MSE),主要有以下几个原因:

  • 简单,计算方便;
  • 欧氏距离是一种很好的相似性度量标准;
  • 在不同的表示域变换后特征性质不变。

平方损失(Square loss)的标准形式


当样本个数为n时,此时的损失函数变为:
$$L(Y, f(X)) = \sum _{i=1}^{n}(Y - f(X))^2$$
Y-f(X)表示的是残差,整个式子表示的是残差的平方和,而我们的目的就是最小化这个目标函数值,也就是最小化残差的平方和(residual sum of squares,RSS)。

而在实际应用中,通常会使用均方差(MSE)作为一项衡量指标

上面提到了线性回归,这里额外补充一句,我们通常说的线性有两种情况,一种是因变量y是自变量x的线性函数,一种是因变量y是参数的线性函数。在机器学习中,通常指的都是后一种情况。

 

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

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

相关文章

QMS-云质说质量 - 5 解决中小企业质量问题的钥匙在哪里?

云质QMS原创 转载请注明来源 作者:王洪石 引言 一个小小的质量问题可能引发蝴蝶效应 日常生活中,我们每天都会遇到各种各样的问题,并随着它们喜怒哀乐。企业也不例外,即使有很好的管理体系以及非常高素质的员工,一些错…

XGBoost模型详解

1.什么是XGBoost? GBDT,它是一种基于boosting增强策略的加法模型,训练的时候采用前向分布算法进行贪婪的学习,每次迭代都学习一棵CART树来拟合之前 t − 1 t-1 t−1 棵树的预测结果与训练样本真实值的残差。XGBoost对GBDT进行了一…

C/C++每日一练(20230424)

目录 1. 只出现一次的数字 🌟 2. 有效的括号 🌟🌟 3. 递归反序正整数 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 只出现一次…

《站在巨人的肩膀上学习Java》

Java从诞生距今已经有28年了,在这段时间里,随着Java版本的不断迭代,Java新特性的不断出现,使得Java被使用的越来越广泛。在工程界Java语言一直是大家最喜欢的语言之一,Java一直排行在编程语言热门程度的前3名。 可想而…

ora_scm0导致主机负载高

今天不知道了,几个12.2 RAC出问题,有现场反馈主机负载高,之前连接过该环境,知道是12.2环境,直接top查看,发现ora_scm0经常cpu使用率100%了,查看hydb1主机负载正常 直接上mos文档 12.2 RAC DB B…

字节和阿里,谁的管理模式更先进?

有人说,字节跳动的成功,是商业模式和管理模式的成功。不无道理,相比阿里巴巴以KPI绩效考核、强制淘汰的组织管理模式来说,字节的模式有其先进的地方。 在商业模式上,字节用算法的方式,10倍速地提升了信息分…

2023.04.24 c++第六讲

作业&#xff1a; 1. 手动实现顺序栈&#xff0c;要求实现数据结构中&#xff0c;所有栈的相关操作 #include <iostream> #define MAXSIZE 20 //宏定义&#xff0c;栈的最大容量 using namespace std;template <typename T> class stacklink { pri…

ESXi8.0安装Windows10系统教程

本篇教程主要教大家怎么在ESXi虚拟机上安装Windows10系统&#xff0c;首先安装Windows10需要准备一个ISO系统镜像文件&#xff0c;我们可以去MSDN或者是微软官网下载。 镜像下载教程&#xff1a; 下两种方法都可以下载ISO镜像文件&#xff0c;任选其一下载即可 方法一&#xf…

BDD110 HNLP205879R1设备控制、监视、报警及打印报表等管理功能

​ BDD110 HNLP205879R1设备控制、监视、报警及打印报表等管理功能 基于ABB AC500系列PLC的水泥生产线控制系统 随着中国经济的迅速发展&#xff0c;各行各业对水泥的需求日益增加。目前国内外各大水泥企业纷纷在华兴建大型干法旋窑水泥生产线&#xff0c;这为水泥行业的发展提…

【SWAT水文模型】ArcSWAT安装

SWAT水文模型-ArcSWAT安装 安装ArcSWAT1.1 下载ArcSWAT1.2 安装ArcSWAT1.3 加载ArcSWAT 参考 SWAT水文模型原理及数据库简介可参见另一博客文章-【水文模型】SWAT水文模型原理及数据库简介。 本博客主要介绍ArcSWAT的安装。 安装ArcSWAT 1.1 下载ArcSWAT 安装之前&#xff0…

广域通信网 - 差错控制(停等 ARQ 协议、选择重发 ARQ 协议、后退 N 帧 ARQ 协议)

文章目录 1 概述2 差错控制的办法2.1 停等 ARQ 协议2.2 选择重发 ARQ 协议2.3 后退 N 帧 ARQ 协议 3 扩展3.1 流量控制3.2 网工软考真题 1 概述 #mermaid-svg-ju8w1gQxodkcBbaB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#me…

【应急响应】后门攻击检测指南Rookit内存马权限维持WINLinux

文章目录 Windows实验常规后门&#xff1a; 网络对外连接查看 自启动测试&#xff1a;隐藏账户映像劫持屏保&登录 Linux实验常规后门&#xff1a;Rootkit后门&#xff1a;GScan rkhunter权限维持后门&#xff1a;GScan rkhunter Web层面&#xff1a;通用系统层面 主机层面后…

网络设备发现工具

什么是网络设备发现 网络设备发现是识别和映射网络基础架构&#xff08;如路由器、交换机、集线器、防火墙、无线接入点、服务器、虚拟机等&#xff09;中存在的设备和接口的过程。网络发现是网络管理的第一步&#xff0c;也是成功监控解决方案的关键。该过程不仅涉及发现网络…

【超算/先进计算学习】日报6

目录 今日已完成任务列表遇到的问题及解决方案任务完成详细笔记传统性能优化从体系结构角度理解四种计算优化途径-主频/缓存/流水线/超标量优化途径的有效适用条件存储墙与层次式存储结构数据局部性与cache循环合并循环展开循环交换循环分布循环不变量外提循环分块循环分裂 优化…

zabbix环境准备

zabbix基础设置(运维笔记) 准备三台主机配置主机名hostnamectl set-hostname --static zabbixserver.cluster.comvi /etc/hosts192.168.126.143 zabbixserver.cluster.com 192.168.126.142 agent1.cluster.com 192.168.126.141 agent2.cluster.com三台机器同步时间 ntpdate…

springboot中统一功能处理浅析

在springboot工程中实现统一功能的处理&#xff0c;主要分析以下3个统一功能场景&#xff1a; 1、统一用户登录权限验证 2、统一数据格式返回 3、统一异常处理 1、统一用户登录权限验证 用户登录权限验证从最初每个方法中自己验证用户登录权限&#xff0c;逐步发展到进行统一用…

[HDU - 4578]Transformation(线段树+多重懒标记)

[HDU - 4578]Transformation&#xff08;线段树多重懒标记&#xff09; 一、问题二、分析1、节点定义2、pushup3、pushdown&#xff08;1&#xff09;每种标记如何下传&#xff1f;赋值乘法加法 &#xff08;2&#xff09;三种标记下传的优先级问题 三、代码 一、问题 二、分析…

object.assgin,事件,screen。client,offset ,http等

js进阶-对象和BOM-day02 今日学习目标 对象进阶&#xff08;***&#xff09; Date时间对象&#xff08;了解&#xff09; BOM对象&#xff08;location对象 history对象&#xff09; 1、对象进阶Object内置方法 1、Object.assign&#xff08;** ***&#xff09; 作用&#xf…

GPT3.5, InstructGPT和ChatGPT的关系

GPT-3.5 GPT-3.5 系列是一系列模型&#xff0c;从 2021 年第四季度开始就使用文本和代一起进行训练。以下模型属于 GPT-3.5 系列&#xff1a; code-davinci-002 是一个基础模型&#xff0c;非常适合纯代码完成任务text-davinci-002 是一个基于 code-davinci-002 的 InstructG…

【 动态SQL 的使⽤ 】

文章目录 一、动态 SQL 是什么二、动 态 SQL 标签2.1 < if >标签2.2 < trim >标签2.3 < where >标签2.4 < set >标签2.5 < foreach >标签 一、动态 SQL 是什么 Mybatis 动态 sql 可以让我们在 Xml 映射文件内&#xff0c;以标签的形式编写动态 …