【机器学习300问】67、均方误差与交叉熵误差,两种损失函数的区别?

一、均方误差(Mean Squared Error, MSE)

        假设你是一个教练,在指导学生射箭。每次射箭后,你可以测量子弹的落点距离靶心的差距(误差)。MSE就像是计算所以射击误差的平方后的平均值。它强调了每一次偏离靶心的大小。

(1)定义与公式

        均方误差损失函数是衡量模型预测值和实际值差异的常用指标,定义为预测值与真实值之间差异的平方和的平均值。

        均方误差公式如下:

 L(y, \hat{y}) = \frac{1}{n} \sum_{i=1}^{n}(y_i - \hat{y_i})^2

        其中,y_i是真实的目标值,\hat y_i是模型预测的值,n是样本数量。

        均方误差损失对大的误差“惩罚”更严重,因为它将误差平方,这意味着大误差的影响会被放大。

(2)导数

        MSE的导数用于指导模型参数更新的方向和步长。为了求导方便,可以给损失函数乘上个二分之一:

L(y, \hat{y}) = \frac{1}{2n} \sum_{i=1}^{n}(y_i - \hat{y_i})^2

        对于单个样本来说,参数\theta求偏导得到的公式如下:

\frac{dL}{d\hat{y_i}} = 2(y_i - \hat{y_i})

\frac{dL}{d\theta _j} =\frac{dL}{d\hat{y_i}}\frac{d\hat{y_i}}{d\theta _j} = -(y_i - \hat{y_i})\frac{d\hat{y_i}}{d\theta _j}

        这意味着对于每一个参数,模型会沿着误差方向的反方向进行调整,调整幅度与误差大小和模型输出对参数的敏感度(偏导)成正比。


二、交叉熵误差(Cross-Entropy Loss)

        假设你正在教一群学生区分猫和狗的图片。每次他们判断时,你就会根据他们回答的“是猫”或“是狗”的概率与实际标签对比,给他们打分。交叉熵就像是衡量他们的答案与正确答案之间的“信息距离”,误差分数越低表示他们的判断越接近真相。

(1)定义与公式

        交叉熵损失是由信息论中的交叉熵概念发展而来的,它衡量的是在给定真实标签的条件下,模型预测概率分布与真实的概率分布之间的差异。当预测值与实际标签越接近时,交叉熵损失越小。

        以二分类为例交叉熵误差的公式:

L(y, \hat{y}) = -\frac{1}{n} \sum_{i=1}^{n}[y_i \log(\hat{y_i}) + (1 - y_i) \log(1 - \hat{y_i})]

        其中的y_i是真实的目标值,\hat y_i是模型预测的值,n是样本数量。在二分类问题中y \in \{0,1\},而预测值\hat y_i也可以看成是模型预测的相应类别概率p。所以有些公式也写成(下面公式只列举了一个样本,没有相加起来求平均):

L(y,p)=-ylog(p)-(1-y)log(1-p)

(2)导数

        交叉熵损失的导数有助于指导模型调整其输出概率。对\hat y_i求导公式如下:

\frac{dL}{d\hat{y_i}} = \frac{-y_i}{\hat{y_i}} + \frac{1-y_i}{1-\hat{y_i}}

        导数告诉模型,当预测概率p低于真实标签y时,应增加输出概率,反之若预测概率过高则应降低。调整幅度同样取决于输出对参数的敏感度。


三、两者使用场景的区别

  • 均方误差用于回归问题:当目标是预测连续数值型变量时,如预测房价、气温、销售额、股票价格等,均方损失是最常用的损失函数。这类任务要求模型输出一个具体的数值,而非离散的类别标签。
  • 交叉熵误差用于分类问题:当目标是预测离散的类别标签时,尤其是对于多类别的分类任务(包括二分类),交叉熵损失是首选的损失函数。例如,图像分类(区分猫、狗、鸟等)、文本分类(判断新闻主题、情感极性)、疾病诊断(判断患者是否患病)等。

        当处理连续数值预测的回归任务时,优先考虑使用均方损失(MSE)。而当面对离散类别标签的分类任务时,交叉熵损失(CE Loss)通常是更合适的选择。

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

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

相关文章

ARM v8 Cortex R52内核 04 时钟和复位 Clocking and Resets

ARM v8 Cortex R52内核 04 时钟和复位 Clocking and Resets 4.1 Clock and clock enables 时钟和时钟使能 Cortex-R52处理器具有一个单一的时钟,驱动着所有的触发器和RAM。各种输入,包括复位输入,都有同步逻辑使它们可以与处理器时钟异步操…

appium控制手机一直从下往上滑动

用于使用Appium和Selenium WebDriver在Android设备上滚动设置应用程序的界面。具体来说,它通过WebDriverWait和expected_conditions等待元素出现,然后使用ActionChains移动到该元素并执行滚动动作。在setUp中,它初始化了Appium的WebDriver和c…

Android中的Zygote进程介绍

在Android系统中,Zygote是一个特殊的进程,主要负责孵化(fork)新的应用进程,从而加速应用的启动过程。Zygote进程是系统启动过程中创建的第一个进程,它会在系统启动时被初始化并一直运行在后台。 以下是Zyg…

如何在MacOS上使用OpenHarmony SDK交叉编译?

本文以cJSON三方库为例介绍如何通过OpenHarmony的SDK在Mac平台进行交叉编译。 环境准备 SDK准备 我们可以通过 openHarmony SDK 官方发布渠道下载对应mac版本的SDK,当前OpenHarmony MAC版本的SDK有2种,一种是x86架构,另一种是arm64&#x…

【HTML】HTML简介

参考资料:https://html.spec.whatwg.org/#introduction 在最初的五年(1990-1995)中,HTML经历了一系列修订和扩展,最初主要由欧洲核子研究组织(CERN)托管,随后由互联网工程任务组&am…

Anaconda在Ubuntu下的安装与简单使用

一、参考资料 ubuntu16.04下安装&配置anacondatensorflow新手教程 二、安装Anaconda 下载 Miniconda镜像1 or Miniconda镜像2 # 下载 wget Miniconda3-py39_4.10.3-Linux-x86_64.sh# 安装 bash Miniconda3-py39_4.10.3-Linux-x86_64.sh一路yes 安装过程中的选项 Do you …

做一个后台项目的架构

后台架构的11个维度 架构1:团队协助基础工具链的选型和培训架构2:搭建微服务开发基础设施架构3:选择合适的RPC框架架构4:选择和搭建高可用的注册中心架构5:选择和搭建高可用的配置中心架构6:选择和搭建高性…

Hudi-ubuntu环境搭建

hudi-ubuntu环境搭建 运行 1.编译Hudi #1.把maven安装包上传到服务器 # 官网下载安装包 https://archive.apache.org/dist/maven/maven-3/ scp -r D:\Users\zh\Desktop\Hudi\compressedPackage\apache-maven-3.6.3-bin.tar.gz zhangheng10.8.4.212:/home/zhangheng/hudi/com…

Spring+SpringMVC的知识总结

一:技术体系架构二:SpringFramework介绍三:Spring loC容器和核心概念3.1 组件和组件管理的概念3.1.1什么是组件:3.1.2:我们的期待3.1.3Spring充当组件管理角色(IOC)3.1.4 Spring优势3.2 Spring Ioc容器和容器实现3.2.1普通和复杂容器3.2.2 SpringIOC的容器介绍3.2.3 Spring IOC…

字符串常量池(StringTable)

目录 String的基本特性 String的内存分配 字符串拼接操作 intern()的使用 String的基本特性 String:字符串,使用一对""引起来表示 String声明为final的,不可被继承 String实现了Serializable接口:表示字符串是支持…

考试酷基本功修炼课学习历程_FPGA成长篇

本文为明德扬原创文章,转载请注明出处!作者:明德扬学员:考试酷账号:11167760 我是硬件工程师,日常工作中主要跟数字电路、模拟电路、嵌入式系统打交道,当然也会涉及到FPGA,但是苦于…

排序算法-基数排序

基数排序是一种非比较排序算法,它将待排序的数字按照位数进行排序。基数排序的思想是先按照个位数进行排序,然后按照十位数进行排序,接着按照百位数进行排序,以此类推,直到最高位排序完成。 基数排序的步骤如下&#x…

设计模式代码实战-桥接模式

1、问题描述 小明家有一个万能遥控器,能够支持多个品牌的电视。每个电视可以执行开机、关机和切换频道的操作,请你使用桥接模式模拟这个操作。 输入示例 6 0 2 1 2 0 4 0 3 1 4 1 3 输出示例 Sony TV is ON TCL TV is ON Switching Sony TV channel S…

【菜狗学前端】原生Ajax笔记(包含原生ajax的get/post传参方式、返回数据等)

这回图片少,给手动替换了~祝看得愉快,学的顺畅!哈哈 一 原生ajax经典四步 (一) 原生ajax经典四步 第一步:创建网络请求的AJAX对象(使用XMLHttpRequest) JavaScript let xhr new XMLHttpRequest() 第二…

QQ农场-phpYeFarm添加数据教程

前置知识 plugin\qqfarm\core\data D:\study-project\testweb\upload\source\plugin\qqfarm\core\data 也就是plugin\qqfarm\core\data是一个缓存文件,如果更新农场数据后,必须要删除才可以 解决种子限制(必须要做才可以添加成功) 你不更改加入了id大于2000直接删除种子 D…

Vulnhub靶机 DC-2渗透详细过程

VulnHub靶机 DC-2 打靶 目录 VulnHub靶机 DC-2 打靶一、将靶机导入到虚拟机当中二、攻击方式主机发现端口扫描服务探针爆破目录web渗透信息收集扫描探针登录密码爆破SSH远程登录rbash提权 一、将靶机导入到虚拟机当中 靶机地址: https://www.vulnhub.com/entry/dc…

进制转换总结

目录 其它进制转十进制 十进制转其它进制 二八十六进制间转换 2进制(BIN): 0,1,满2进1.以0b或0B开头。8进制(OCT): 0-7 ,满8进1.以数字0o或者0O开头表示。 10进制(DEC): 0-9,满10进1。 16进制(HEX): 0-9及A(10)-F(15),满16进…

未来的前端框架技术发展趋势

​ 福利开篇推荐 老铁们,你们是否平常开发有这样的问题: 1.需要公网访问内网的一个服务? 2.需要一个开发环境直接支持https,但是弄本地证书既不合法,又很麻烦? 3.本地有强劲的服务器,需要对公网提供服务,但是拉宽带既贵,又麻烦? 4.有云主机,但同时云主机需要访问内部的服…

sample gpt 无限长上下文

参考地址 https://aistudio.baidu.com/projectdetail/7723195 import mathimport paddle import paddle.nn as nn import paddle.nn.functional as Fclass MaskMultiHeadAttention(nn.Layer):def __init__(self, hidden_size, num_heads):super(MaskMultiHeadAttention, self…

信息系统项目管理师0051:管理基础(4信息系统管理—4.1管理方法—4.1.1管理基础)

点击查看专栏目录 文章目录 第四章 信息系统管理4.1管理方法4.1.1管理基础1.层次结构2.系统管理第四章 信息系统管理 在信息技术和数据资源要素的推动下,社会各领域已经并正在加速进入数字化的全新发展时期,基于智能、网络和大数据的新经济业态正在形成,从“数字融合”向“数…