从熵到交叉熵损失的直观通俗的解释

2024-04-13 19:08

本文主要是介绍从熵到交叉熵损失的直观通俗的解释,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0b9a1ca38929adb15bd62e8fe82adc79.png

来源:DeepHub IMBA本文约1100字,建议阅读5分钟
本文从信息论的角度解释有关熵的概念。

对于机器学习和数据科学的初学者来说,必须清楚熵和交叉熵的概念。它们是构建树、降维和图像分类的关键基础。

在本文中,我将尝试从信息论的角度解释有关熵的概念,当我第一次尝试掌握这个概念时,这非常有帮助。让我们看看它是如何进行的。

什么是-log(p)?

信息论的主要关注点之一是量化编码和传输事件所需的总比特数:罕见的事件即概率较低的事件,需要表示更多位,而频繁事件不需要很多位。因此我们可以从编码器和通信机的角度出发,将-log(p)定义为编码和传输符合p概率分布的事件所需的总比特数,即信息。小 p(罕见事件)导致大 -log(p)(更多位)。

a33b68d4a61e3e35e7c2f3aaec199ef4.png

-log P(x) = log (1/P(x))

从事件观察者的角度来看,我们可以将 -log(p)理解为是观察事件的“惊讶”的程度(事件发生的概率越小,我们的惊讶程度越高)。例如如果抛硬币的 p(head) = 0.99 和 p(tail) = 0.01,如果抛硬币是tail人们肯定会惊讶。计算 -log(p(tail)) = 6.644,远大于 -log(p(head)) = 0.014。这就是 -log(p) 的直观含义。

熵,意料之中的惊喜

在上面讨论之后,我们可以定义概率分布为p(x)的事件的预期以外惊讶程度并称其为熵。正式一些的说法是:熵是量化事件可能结果中固有的不确定性水平(对我们来说不确定性带来的就是意外的惊喜,当然也有可能是惊吓)。对于连续变量 x,熵可以写为,

bab139affaa7e605ba75149db3829028.png

回到信息论,从编码器和通信机的角度来看,这量化了表示遵循概率分布p(x)的随机选择事件所需的比特数。例如一个包含圆形和三角形的盒子并回忆化学课上熵的概念!偏态分布(许多圆圈和少量三角形)意味着低熵,因为选择不确定性水平很低,这意味着确信选择圆圈的概率更大。

交叉熵,用于机器学习

现在让我们切换一下思路,机器学习的主要目标是找到并声明一个最能模拟(近似)真实数据分布的概率分布。交叉熵提供了一种使用分布 Q 来量化按照分布 P 编码数据所需的平均位数的方法。

b5d9338d1e7df2c2a57d2673af023f42.png

听着有点绕口对吧,下面这个概念可能更复杂。这个量Q可以通过以下关系从熵中获得:(原始比特)+(额外比特)=(总比特)。(额外比特)部分就是所谓的 KL 散度,在统计学中常用来衡量两个分布之间的距离,也被称为相对熵。

15bf3e9517bc05cf4b7a66207cffccac.png

在图像分类中,经常会遇到对于 N 类的交叉熵损失,如下表示,其中 y{i} 和 {y{i}}冒 分别是实际标签和预测。当 N = 2时交叉熵损失将简单地变成逻辑回归中使用的log损失。

d8a37e69267deccffa03af984a37798b.png

总结

  • -log(p) 只是表达对以概率 p 观察到事件的惊讶程度的一种奇特方式。罕见事件(低 p)导致惊讶程度高。

  • 如果整合所有事件的”惊讶程度“,就会得到预期的”惊讶“,我们称之为熵。如果高熵则意味着事件的可能结果中固有的不确定性水平很高。

  • 交叉熵考虑了近似于真实分布 P 的分布 Q,并使用分布 Q 测量表示遵循分布 P 的数据所需的比特数。

  • 交叉熵损失是量化我们的机器学习模型对数据真实分布 (P) 的近似 (Q) 的好坏程度 (Q) 的好方法。请注意,Log损失只是一个二元交叉熵损失。

希望本篇文章能够帮助你对熵是什么以及它如何连接到交叉熵以进行机器学习有了更好的了解。

编辑:于腾凯

校对:杨学俊

6bdbbc39a3b7c5f8f3601fe698dfd472.png

这篇关于从熵到交叉熵损失的直观通俗的解释的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/900973

相关文章

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

如何通俗理解注意力机制?

1、注意力机制(Attention Mechanism)是机器学习和深度学习中一种模拟人类注意力的方法,用于提高模型在处理大量信息时的效率和效果。通俗地理解,它就像是在一堆信息中找到最重要的部分,把注意力集中在这些关键点上,从而更好地完成任务。以下是几个简单的比喻来帮助理解注意力机制: 2、寻找重点:想象一下,你在阅读一篇文章的时候,有些段落特别重要,你会特别注意这些段落,反复阅读,而对其他部分

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行介绍。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注

嵌入式技术的核心技术有哪些?请详细列举并解释每项技术的主要功能和应用场景。

嵌入式技术的核心技术包括处理器技术、IC技术和设计/验证技术。 1. 处理器技术    通用处理器:这类处理器适用于不同类型的应用,其主要特征是存储程序和通用的数据路径,使其能够处理各种计算任务。例如,在智能家居中,通用处理器可以用于控制和管理家庭设备,如灯光、空调和安全系统。    单用途处理器:这些处理器执行特定程序,如JPEG编解码器,专门用于视频信息的压缩或解压。在数字相机中,单用途

请解释Java Web应用中的前后端分离是什么?它有哪些好处?什么是Java Web中的Servlet过滤器?它有什么作用?

请解释Java Web应用中的前后端分离是什么?它有哪些好处? Java Web应用中的前后端分离 在Java Web应用中,前后端分离是一种开发模式,它将传统Web开发中紧密耦合的前端(用户界面)和后端(服务器端逻辑)代码进行分离,使得它们能够独立开发、测试、部署和维护。在这种模式下,前端通常通过HTTP请求与后端进行数据交换,后端则负责业务逻辑处理、数据库交互以及向前端提供RESTful

OpenStack:Glance共享与上传、Nova操作选项解释、Cinder操作技巧

目录 Glance member task Nova lock shelve rescue Cinder manage local-attach transfer backup-export 总结 原作者:int32bit,参考内容 从2013年开始折腾OpenStack也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我暂不直接

OpenStack实例操作选项解释:启动和停止instance实例

关于启动和停止OpenStack实例 如果你想要启动和停止OpenStack实例时,有四种方法可以考虑。 管理员可以暂停、挂起、搁置、停止OpenStack 的计算实例。但是这些方法之间有什么不同之处? 目录 关于启动和停止OpenStack实例1.暂停和取消暂停实例2.挂起和恢复实例3.搁置(废弃)实例和取消废弃实例4.停止(删除)实例 1.暂停和取消暂停实例

Zuul详细解释

Zuul 是 Netflix 开源的 API 网关,广泛用于微服务架构中。它作为系统的前置网关,主要功能包括路由、负载均衡、限流、安全性管理等。Zuul 最常见的应用场景是作为反向代理,它接收所有来自客户端的请求,并将请求转发给后端的微服务,从而屏蔽了微服务的复杂性。Spring Cloud 集成了 Zuul,使其成为 Spring Cloud 微服务生态系统中的一个重要组件。 为什么使用 Zu

GetWay详细解释

Spring Cloud Gateway 是 Spring Cloud 提供的一款全功能 API 网关,作为微服务架构中的流量管理工具,提供了统一的入口来处理来自客户端的所有请求。它具有以下功能:路由请求、限流、熔断、监控、认证与授权等。 Spring Cloud Gateway 的设计基于 Spring 5.0 和 Spring Boot 2.0,并与 Spring WebFlux 深度集成,