深入简出:KL散度、交叉熵、熵、信息量简介、交叉熵损失

学习这些的最终目的

1、量化两个概率分布的差异

2、推导交叉熵损失

一、KL散度

KL散度就是用来量化两个概论分布的差异,如何量化?

计算真实概论分布P信息量估计概论分布为Q,但实际概率分布为P信息量的差值

那么设,概率分布为P时的信息量为H(P),估计概论分布为Q,但实际概率分布为q时的信息量为H(P,Q)

那么两个概率分布差异的量化为:D(P,Q) = H(P) - H(P,Q),注意D(P,Q) 不等于 D(Q,P)

Q估计P的信息量可以用交叉熵(H(P,Q))来计算,P本身信息量可以用熵(H(P))来计算

二、交叉熵

交叉熵是用于,使用“估计分布”下,对真实分布的期望信息量估计

如何估计?

设,每个事件,真实发生概率为pi = x,对应的估计事件的信息量为Ii

那么交叉熵H(P,Q) = \sumpi * Ii,就是用每个事件真实的概率 乘上 估计概率分布对应事件的信息量代表估计概率分布q对真实概率分布q的期望信息量估计

三、熵

熵表示一个概率分布下的期望信息量

设,每个事件,真实发生概率为pi = x,对应的事件的信息量为Ii

H(P) = \sumpi * Ii

到此,我们可以发现,如果估计概率分布和真实概率分布一致,那么D(P,Q)应该为0

四、信息量

现在只差如何定义信息量了

在信息论中,某个事件的信息量(self-information)定义为

I(x)=log(\frac{1}{p(x)}),p为事件x发生的概率,即事件发生的概率越低,它带来的信息量越大

下图是I(X)的函数图像,x属于[0,1],I属于[0,+00]

举个例子来说

小明不中彩票,带来的信息量很小,因为这是很正常的一件事

但如果小明中了彩票,就带来了较大的信息量,因为这是小概率事件

五、交叉熵损失

对于模型的预测,以分类为例,模型会给出每个类别的概率,可以认为是概率分布Q,真实分布为P,那么P和Q差异的量化就是D(P,Q),对D(P,Q)求梯度,就得到了交叉熵损失

六、结语

表述可能不准确,大家意会

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

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

相关文章

MySQL:Join连接的原理

连接查询的执行过程: 确定第一个需要查询的表【驱动表】 选取代价最小的访问方法去执行单表查询语句 从驱动表每获取到一条记录,都需要到t2表中查找匹配的记录 两表连接查询需要查询一次t1表,两次t2表,在两表的连接查询中&…

【Drools+springboot3规则匹配】

文章目录 一、 业务场景概述二、整体技术架构三、Drools概述1. Drools 简介2. Drools Rete 算法与flink-cep的区别?2.1 Rete 算法概述2.2 Flink CEP 概述四、代码实现4.1 导入依赖4.2 从kafka消费数据4.3 核心类,触发匹配操作并将匹配数据写入mysql4.4 Drools 管理4.5 相关的…

深入理解 Android Handler

一、引言 Handler 在安卓中的地位是不言而喻的,几乎维系着整个安卓程序运行的生命周期,但是这么重要的一个东西,我们真的了解它吗?下面跟随着我的脚步,慢慢揭开Hanler的神秘面纱吧! 本文将介绍Handler 的运…

读书笔记 -- MySQL架构

1、MySQL逻辑架构 最上层的服务并不是 MySQL所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等等。 第二层架构是 MySQL 比较有意思的部分。大多数 MySQL 的核心服务功能都在这一层包括查询解析、分析、…

linux 4.14内核jffs2文件系统不自动释放空间的bug

前段时间在做spi-nor flash项目的时候,使用jffs2文件系统,发现在4.14内核下存在无法释放空间的bug,后来进行了修复,修复后功能正常,现将修复patch公开,供后来者学习: diff --git a/fs/jffs2/ac…

vue3+vite 实现.env全局配置

首先创建.env文件 VUE_APP_BASE_APIhttp://127.0.0.1/dev-api 然后引入依赖: pnpm install dotenv --save-dev 引入完成后,在vite.config.js配置文件内加入以下内容: const env dotenv.config({ path: ./.env }).parsed define: { // 将…

Oracle 19c部署之手工建库(四)

#Oracle #19c #手工建库 手工创建Oracle数据库(也称为手工建库)是指在已经安装了Oracle数据库软件的基础上,通过手动执行一系列命令和步骤来创建一个新的数据库实例。这种方法与使用Database Configuration Assistant (DBCA)等工具自动创建数…

【Reading Notes】(8.3)Favorite Articles from 2025 March

【March】 雷军一度登顶中国首富,太厉害了(2025年03月02日) 早盘,小米港股一路高歌猛进,暴涨4%,股价直接飙到52港元的历史新高。这一波猛如虎的操作,直接把雷军的身家拉到了2980亿元&#xff0c…

【Python爬虫基础篇】--1.基础概念

目录 1.爬虫--定义 2.爬虫--组成 3.爬虫--URL 1.爬虫--定义 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。随着网络的迅速发展,万维网成为大量信息的载体…

C语言超详细结构体知识

1.自定义类型:结构体的介绍 在之前的博客中,我们简单介绍过了关于结构体的基本知识,这里我们稍微复习一下。 结构体(struct)是C语言中一种重要的复合数据类型,它允许将不同类型的数据组合成一个整体。 1.1结构体的定义 结构体使…

C++学习:六个月从基础到就业——内存管理:new/delete操作符

C学习:六个月从基础到就业——内存管理:new/delete操作符 本文是我C学习之旅系列的第十七篇技术文章,也是第二阶段"C进阶特性"的第二篇,主要介绍C中动态内存管理的核心操作符——new和delete。查看完整系列目录了解更多…

15~30K,3年以上golang开发经验

继续分享最新的面经,前面发的两篇大家也可以看看: 「坐标上海,20K的面试强度」「北京七猫,薪资25~35K,瞧瞧面试强度」 今天分享的是golang开发岗面经,要求是3年以上golang开发经验,薪资为15~3…

Python爬虫实战:获取优志愿专业数据

一、引言 在信息爆炸的当下,数据成为推动各领域发展的关键因素。优志愿网站汇聚了丰富的专业数据,对于教育研究、职业规划等领域具有重要价值。然而,为保护自身数据和资源,许多网站设置了各类反爬机制。因此,如何高效、稳定地从优志愿网站获取计算机专业数据成为一个具有…

ArcPy工具箱制作(下)

在上一篇博客中,我们已经初步了解了如何制作ArcPy工具箱,包括工具箱的基本概念、准备工作、脚本编写以及将脚本转换为工具箱的步骤。今天,我们将继续深入探讨ArcPy工具箱的制作,重点介绍一些进阶技巧和优化方法. 一、优化工具箱的…

不一样的flag 1(迷宫题)

题目 做法 下载压缩包,解压,把解压后的文件拖进Exeinfo PE进行分析 32位,无壳 扔进IDA(32位),找到main,F5反编译 没啥关键词,ShiftF12也找不到什么有用的点 从上往下分析吧 puts(…

工程化实践:Flutter项目结构与规范

工程化实践:Flutter项目结构与规范 在Flutter项目开发中,良好的工程化实践对于提高开发效率、保证代码质量和团队协作至关重要。本文将从项目结构、代码规范、CI/CD流程搭建以及包管理等方面,详细介绍Flutter项目的工程化最佳实践。 项目结…

[Java · 初窥门径] Java 语言初识

🌟 想系统化学习 Java 编程?看看这个:[编程基础] Java 学习手册 0x01:Java 编程语言简介 Java 是一种高级计算机编程语言,它是由 Sun Microsystems 公司(已被 Oracle 公司收购)于 1995 年 5 …

1187. 【动态规划】竞赛总分

题目描述 学生在我们USACO的竞赛中的得分越多我们越高兴。我们试着设计我们的竞赛以便人们能尽可能的多得分。 现在要进行一次竞赛,总时间T固定,有若干类型可选择的题目,每种类型题目可选入的数量不限,每种类型题目有一个si(解答…

使用KeilAssistant代替keil的UI界面

目录 一、keil Assistant的优势和缺点 二、使用方法 (1)配置keil的路径 (2)导入并使用工程 (3)默认使用keil自带的ARM编译器而非GUN工具链 一、keil Assistant的优势和缺点 在日常学…