常见的损失函数

news2024/10/5 16:28:46

1. 损失函数、代价函数与目标函数

  损失函数(Loss Function):是定义在单个样本上的,是指一个样本的误差。
  代价函数(Cost Function):是定义在整个训练集上的,是所有样本误差的平均,也就是所有损失函数值的平均。
  目标函数(Object Function):是指最终需要优化的函数,一般来说是经验风险+结构风险,也就是(代价函数+正则化项)。

2. 常用的损失函数

(1)0-1损失函数(0-1 loss function) 

     𝐿(𝑦,𝑓(𝑥))={1,0,𝑦≠𝑓(𝑥)𝑦=𝑓(𝑥)L(y,f(x))={1,y≠f(x)0,y=f(x) 

  也就是说,当预测错误时,损失函数为1,当预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度。只要错误,就是1。

(2)平方损失函数(quadratic loss function)

             𝐿(𝑦,𝑓(𝑥))=(𝑦−𝑓(𝑥))2L(y,f(x))=(y−f(x))2

  是指预测值与实际值差的平方。

(3)绝对值损失函数(absolute loss function)

      𝐿(𝑦,𝑓(𝑥))=|𝑦−𝑓(𝑥)|L(y,f(x))=|y−f(x)|

  该损失函数的意义和上面差不多,只不过是取了绝对值而不是求绝对值,差距不会被平方放大。

(4)对数损失函数(logarithmic loss function)

      𝐿(𝑦,𝑝(𝑦|𝑥))=−log𝑝(𝑦|𝑥)L(y,p(y|x))=−log⁡p(y|x)

  这个损失函数就比较难理解了。事实上,该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。

(5)Hinge loss

  Hinge loss一般分类算法中的损失函数,尤其是SVM,其定义为:

    𝐿(𝑤,𝑏)=𝑚𝑎𝑥{0,1−𝑦𝑓(𝑥)}L(w,b)=max{0,1−yf(x)}

  其中𝑦=+1或𝑦=−1y=+1或y=−1,𝑓(𝑥)=𝑤𝑥+𝑏f(x)=wx+b,当为SVM的线性核时。


3. 常用的代价函数

(1) 均方误差(Mean Squared Error) 

                 𝑀𝑆𝐸=1𝑁∑𝑁𝑖=1(𝑦(𝑖)−𝑓(𝑥(𝑖)))2MSE=1N∑i=1N(y(i)−f(x(i)))2

  均方误差是指参数估计值与参数真值之差平方的期望值; MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。( i 表示第 i 个样本,N表示样本总数)

  通常用来做回归问题的代价函数

(2)均方根误差  

           𝑅𝑀𝑆𝐸=1𝑁∑𝑁𝑖=1(𝑦(𝑖)−𝑓(𝑥(𝑖)))‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√

  均方根误差是均方误差的算术平方根,能够直观观测预测值与实际值的离散程度。
  通常用来作为回归算法的性能指标

(3)平均绝对误差(Mean Absolute Error)  

      𝑀𝐴𝐸=1𝑁∑𝑁𝑖=1|𝑦(𝑖)−𝑓(𝑥(𝑖))|

  平均绝对误差是绝对误差的平均值 ,平均绝对误差能更好地反映预测值误差的实际情况。
  通常用来作为回归算法的性能指标

(4)交叉熵代价函数(Cross Entry)  

          𝐻(𝑝,𝑞)=−∑𝑁𝑖=1𝑝(𝑥(𝑖))log𝑞(𝑥(−𝑖))

  交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。其中 p(x)是指真实分布的概率, q(x) 是模型通过数据计算出来的概率估计。
  比如对于二分类模型的交叉熵代价函数(可参考逻辑回归一节):

        𝐿(𝑤,𝑏)=−1𝑁∑𝑁𝑖=1(𝑦(𝑖)log𝑓(𝑥(𝑖))+(1−𝑦(𝑖))log(1−𝑓(𝑥(𝑖))))L(w,b)=−1N∑i=1N(y(i)log⁡f(x(i))+(1−y(i))log⁡(1−f(x(i))))

  其中 f(x)可以是sigmoid函数。或深度学习中的其它激活函数。而 y(i)∈0,1。
  通常用做分类问题的代价函数。

平方损失函数的缺点:

1.在激活函数是sigmoid之类的函数的时候,用平方损失的话会导致误差比较小的时候梯度很小,这样就没法继续训练了,这时使用交叉熵损失就可以避免这种衰退。如果是线性输出或别的激活函数神经元的话完全可以用平方损失。

2.

 

文章转自: https://www.cnblogs.com/lliuye/p/9549881.html

参考链接:交叉熵损失函数相比平方差损失函数的优点? - 知乎

参考链接:几种常见的损失函数 - 理想几岁 - 博客园

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

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

相关文章

07_openstack之安全组与浮动IP

目录 一、环境准备 二、浮动IP 1、浮动IP介绍 2、创建和分配浮动IP 三、安全组 1、安全组介绍 2、创建安全组 3、给云主机绑定安全组 一、环境准备 部署openstack私有云环境:02_openstack私有云部署_桂安俊kylinOS的博客-CSDN博客 创建项目和用户&#xf…

Mac电脑系统降级至10.15 Catalina(2020末代intel)

目录起因前期准备降级系统步骤&#xff08;联网&#xff09;选定开机阶段需要按的快捷键进入简化的macOS激活锁页面macOS实用工具页面抹除磁盘安装降级系统Catalina关于从U盘重装系统相关参考博客起因 这部分碎碎念可以不看> < 20年7月买mac是为了找工作&#xff0c;找到…

[附源码]计算机毕业设计校园商铺Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]计算机毕业设计药品仓库及预警管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

libcef.dll文件丢失怎么办?丢失对电脑有什么影响?

提到电脑中的系统文件可能大家都是不太了解的&#xff0c;毕竟平时使用电脑的时候也接触不到那些复杂的文件&#xff0c;最多大家只会使用电脑上面的各种功能&#xff0c;不过虽然接触不到但是大家也要适当的了解一下&#xff0c;就比如libcef.dll文件丢失了就会造成电脑系统出…

Word2Vec详解

Word2Vec 基本思想&#xff1a;通过训练将每一个词映射成一个固定长度的向量&#xff0c;所有向量构成一个词向量空间&#xff0c;每一个向量&#xff08;单词)可以看作是向量空间中的一个点&#xff0c;意思越相近的单词距离越近。 如何把词转换为向量&#xff1f; 通常情况…

用Python做个学生管理系统,这不简简单单

前言 最近因为疫情&#xff0c;各大高校都开始放假了&#xff0c;要不就是回家上网课 我朋友的老师真有趣&#xff0c;硬是要我朋友做个学生管理系统打包成exe文件发给他&#xff0c;才能回家 这不就找上我来了&#xff0c;我写完就顺便发篇文章咯 准备工作 环境准备 Pyth…

Java基于springboot+vue的保健用品销售购物商城系统 前后端分离

随着人们生活水平的提高&#xff0c;人们对日常的保健工作也越来越重视&#xff0c;如何拥有一个更加健康的体魄成为当下很多人的一个追求&#xff0c;尤其是我国当下人口老龄化验证&#xff0c;老人因为身体机能的下降所以也要经常补充一些蛋白核矿物质。当下的年轻人也因为生…

【Java】ArrayList扩容规则

文章目录初始大小扩容规则总结初始大小 ArrayList的初始大小由你选定的构造函数决定&#xff0c;如果你使用无参构造函数&#xff0c;那么初始大小为0&#xff0c;是一个空数组。 而如果你选用有参数的构造函数&#xff0c;那么初始大小为你输入的大小 因此如果问你ArrayLis…

[附源码]计算机毕业设计基于springboot的4s店车辆管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

货架穿梭车控制方案

穿梭车控制系统结构示意图 系统组成结构示意图穿梭车服务端模块 PLC设备输出的控制客户端4个电机动作的开关量信号 共8个开关量信号&#xff0c;PNP电路接口,接线端子Q3.0&#xff5e;Q3.7&#xff1b;每个继电器由两个开关量的值共同作用&#xff0c;其控制表如下&#xff1a…

黑马程序员课程SpringMVC听课笔记

目录 SpringMVC概述 入门案例 使用Servlet技术开发web程序流程 使用SpringMVC技术开发web程序流程 导入pom.xml文件 UserController SpringMvcConfig ServletContainersInitConfig POST请求中文乱码处理 代参数GET请求 请求参数与传递 普通参数&#xff1a;请求参数名…

python -- PyQt5(designer)中文详细教程(一)Qt的基本功能

在介绍PyQt5中文详细教程前&#xff0c;如有需要安装PyQt5的同学可以在此 PyQt5安装详细教程_M_Q_T的博客-CSDN博客参考安装&#xff0c;里面有详细的安装内容。 下一章内容python -- PyQt5&#xff08;designer&#xff09;中文详细教程(二)菜单和工具栏 ​​​​​​​http:…

技术人员创业的第一步分析

概述&#xff1a;看完了本文&#xff0c;基本上可以了解确认自己所掌握的技术是否适合创业&#xff0c;如果不适合&#xff0c;不如找个大公司长期停留&#xff0c;也挺好的&#xff0c;免得折腾&#xff01;————————————————————前几天和一个朋友聊天&…

资源管理的部分

估算资源的活动的资源目录概述需求&#xff1a;设计思路实现思路分析1.估算的资源的资源的分解结构&#xff1a;获取资源2.虚拟团队3.CPO模型4.团队的5.资源日历建设团队团队一般成长规律形成 指导型管理风格认可奖励培训指标管理团队关于授权情商&#xff0c;领导力等控制资源…

排障必用的4款工具,帮你缩减排障时间!-网络工程师

Zen Load Balancer Zen Load Balancer是一个基于 Debian 的发行版&#xff0c;主要用于实现 TCP 的负载均衡。如果你在工作中遇到需要服务器负载均衡的功能&#xff0c;但又没有预算的时候&#xff0c;这个工具就能帮到你了。 可通过定制的脚本来检查后端的运行状态&#xff0c…

【java】3-获取线程引用与线程的属性

1.获取线程的引用 在创建一个线程之后&#xff0c;我们很有必要去获取当前线程实例的引用&#xff0c;以便能够观察到线程的一些属性&#xff0c;或是对于当前线程进行一系列的操作 调用Thread类的静态方法currentThread&#xff0c;我们便能拿到当前线程的引用 Thread.curr…

软件项目尾期,客户提新需求怎么办?

1、需求管理流程很关键 面对客户的需求要求&#xff0c;需求管理流程很关键。 在前期与用户签订合同时&#xff0c;可以增加一些相关条款&#xff0c;如限定用户提出需求变更的时间&#xff0c;规定何种情况的变更可以接受、拒绝接受或部分接受&#xff0c;还可以规定发生需求变…

[论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL)

[论文阅读] 颜色迁移-Linear Monge-Kantorovitch(MKL) 文章: The Linear Monge-Kantorovitch Linear Colour Mapping for Example-Based Colour Transfer, [paper], [matlab代码] 1-算法原理 本文将颜色迁移变成数据分布的转换问题, 因而本文需要解决2个方面的问题, 如何描述…

Kettle BIGNUMBER TIMESTAMP 类型格式处理

一、问题描述 Kettle默认的格式化处理对BIGNUMBER列 ,把0 会强行写成0.0;对TIMESTAMP列强行写成如2021/12/31 16:51:55.000000000格式。从而引起不必要错误。 二、解决方案 最新的Kettle下载地址:https://udomain.dl.sourceforge.net/project/pentaho/Pentaho-9.3/client…