【机器学习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。各种输入,包括复位输入,都有同步逻辑使它们可以与处理器时钟异步操…

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

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

做一个后台项目的架构

后台架构的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…

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

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

【Java虚拟机】三色标记、增量更新、原始快照、记忆集与卡表

三色标记、增量更新、原始快照、记忆集与卡表 三色标记基本原来错标、漏标错标漏标 增量更新基本原理写屏障 原始快照基本原理为什么G1使用原始快照而不用增量更新。 记忆集与卡表 三色标记 基本原来 三色标记是JVM的垃圾收集器用于标记对象是否存活的一种方法。 三色是指黑…

Servlet实现常用功能及其他方法

getParameter 获取body或url中指定的key/value值 String classIdreq.getParameter("classId"); getQueryString 获取请求的所有查询参数key,values1 String queryStringreq.getQueryString(); from表单提交 前端通过from表单提交用户名和密码 <!DOCTYPE htm…

Zookeeper和Kafka的部署

目录 一、Zookeeper的基本概念 1. Zookeeper定义 2. Zookeeper工作机制 3. Zookeeper特点 4. Zookeeper数据结构 5. Zookeeper应用场景 5.1 统一命名服务 5.2 统一配置管理 5.3 统一集群管理 5.4 服务器动态上下线 5.5 软负载均衡 6. Zookeeper 选举机制 6.1 第一…

【opencv】示例-text_skewness_correction.cpp 校正文本图像的倾斜度

// 此教程展示了如何矫正文本的偏斜。 // 程序接受一个偏斜的源图像作为输入&#xff0c;并显示非偏斜的文本。#include <opencv2/core.hpp> // 包含OpenCV核心功能的头文件 #include <opencv2/imgcodecs.hpp> // 包含OpenCV图像编解码功能的头文件 #include <o…

每日练习——leetcode402. 移掉 K 位数字和17. 电话号码的字母组合

目录 402. 移掉 K 位数字 题目描述 解题思路 代码实现 17. 电话号码的字母组合 题目描述 解题思路 代码实现 402. 移掉 K 位数字 题目描述 给你一个以字符串表示的非负整数 num 和一个整数 k &#xff0c;移除这个数中的 k 位数字&#xff0c;使得剩下的数字最小。请…

Python杂记--使用asyncio构建HTTP代理服务器

Python杂记--使用asyncio构建HTTP代理服务器 引言基础知识代码实现 引言 本文将介绍 HTTP 代理的基本原理&#xff0c;并带领读者构建一个自己的 HTTP 代理服务器。代码中不会涉及到任何第三方库&#xff0c;全部由 asyncio 实现&#xff0c;性能优秀&#xff0c;安全可靠。 基…

Linux-文件系统理解(磁盘的物理与逻辑结构、什么是inode、OS如何管理磁盘)

一、磁盘 磁盘的物理结构 磁盘的本质是一个机械设备&#xff0c;可以存储大量的二进制信息&#xff0c;是实现数据存储的基础硬件设施&#xff0c;磁盘的盘片类似于光盘&#xff0c;不过盘片的两面都是可读可写可擦除的&#xff0c;每个盘面都有一个磁头&#xff0c;马达可以使…