信息量、熵、KL散度、交叉熵概念理解

信息量、熵、KL散度、交叉熵概念理解

(1) 信息量

  • 信息量是对事件的不确定性的度量。
假设我们听到了两件事,分别如下:事件A:巴西队进入了世界杯决赛圈。
事件B:中国队进入了世界杯决赛圈。仅凭直觉来说,显而易见事件B的信息量比事件A的信息量要大。究其原因,是因为事件A发生的概率很大,事件B发生的概率很小。所以当越不可能的事件发生了,我们获取到的信息量就越大。
越可能发生的事件发生了,我们获取到的信息量就越小。
(`事件发生的概率越小,信息量越大;事件发生的概率越大,信息量越小。`

信息量的数学表达式

具体而言,对于一个离散随机事件 x x x,其发生的概率为 p ( x ) p(x) p(x),则该事件所包含的信息量 l ( x ) l(x) l(x) 定义为:
l ( x ) = − l o g ( p ( x ) ) l(x)=-log(p(x)) l(x)=log(p(x))

  • 对数函数可以采用任意底数,常见的有自然对数(以 e 为底)和常用对数(以 2为底)。
  • 使用常用对数2时,信息量的单位是比特(bit)
  • 使用自然对数e时,单位是纳特(nat)

(2) 熵

  • 信息量可以理解为一个事件由不确定变为确定,它的难度有多大。

  • 熵可以理解为一个系统由不确定变为确定,它的难度有多大。

熵定义为对信息量 f ( p i ) f(pi) f(pi)求期望,熵越大,表示这个系统的不确定性越高。对所有可能发生的事件,把这个信息量求出来,然后和事件发生可能性相乘,最后全部加起来。

设X是一个离散型随机变量,分布律为 p ( x ) = p ( X = x ) p(x) = p(X = x) p(x)=p(X=x) x ∈ X x∈X xX为取值空间集合 ,则随机变量X的熵 H ( X ) H(X) H(X) 定义为:
H ( X ) = − ∑ x ∈ X p ( x ) l o g ( p ( x ) ) H(X) = -\sum_{x∈ X} p(x)log(p(x)) H(X)=xXp(x)log(p(x))

  • 熵的单位
    使用常用对数2时,熵的单位是比特(bit);
    使用自然对数e时,熵的单位是纳特(nat)。
假设我们有一个离散随机变量 X,它有四个可能的结果:x1、x2、x3 和 x4,对应的概率分别为 0.1、0.2、0.3 和 0.4。我们要计算这个随机变量X的熵。# 首先计算每个结果的信息量。根据信息量的定义,我们有
I(x1) = -log(0.1)
I(x2) = -log(0.2)
I(x3) = -log(0.3)
I(x4) = -log(0.4)# 然后,我们将这些信息量与对应的概率相乘,并将结果相加,得到随机变量 X 的熵
H(X) = 0.1 * I(x1) + 0.2 * I(x2) + 0.3 * I(x3) + 0.4 * I(x4)

(3) 相对熵(KL散度)

相对熵,也叫KL散度,是一种衡量两个分布差异的方法。假设现在同一个随机变量 X ,有P、Q两个单独的概率分布(如下图),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异。

在这里插入图片描述

如何定义相对熵来衡量这两个分布的差异呢?
D K L ( P ∣ ∣ Q ) = ∑ x ∈ X p x ( l Q ( q x ) − l P ( p x ) ) 【对于每一个可能的 x , 计算信息量之差】 = ∑ x ∈ X p x ( − l o g ( q x ) − ( − l o g ( p x ) ) = ∑ x ∈ X p x ( − l o g ( q x ) ) − ∑ x ∈ X p x ( − l o g ( p x ) ) 【称为相对熵】 = ∑ x ∈ X p x l o g ( p x q x ) D_{KL}(P||Q)=\sum_{x∈X}p_x(l_Q(q_x)-l_P(p_x)) 【对于每一个可能的x,计算信息量之差】\\ =\sum_{x∈X}p_x(-log(q_x)-(-log(p_x)) \\ =\sum_{x∈X}p_x(-log(q_x))-\sum_{x∈X}p_x(-log(p_x)) 【称为相对熵】\\ =\sum_{x∈X}p_xlog(\frac{p_x}{q_x}) DKL(P∣∣Q)=xXpx(lQ(qx)lP(px))【对于每一个可能的x,计算信息量之差】=xXpx(log(qx)(log(px))=xXpx(log(qx))xXpx(log(px))【称为相对熵】=xXpxlog(qxpx)

  • D K L ( P ∣ ∣ Q ) = ∑ x ∈ X p x l o g ( p x q x ) D_{KL}(P||Q)=\sum_{x∈X}p_xlog(\frac{p_x}{q_x}) DKL(P∣∣Q)=xXpxlog(qxpx),KL散度的值越小,Q分布越接近P分布;
  • 根据吉布斯不等式,KL散度的值一定是大于等于0的;
  • KL散度不能用来衡量两个分布的距离,其原因在于KL散度不是对称的,即 D K L ( P ∣ ∣ Q ) 不等于 D K L ( Q ∣ ∣ P ) D_{KL}(P||Q)不等于D_{KL}(Q||P) DKL(P∣∣Q)不等于DKL(Q∣∣P)
  • KL散度通俗解释(英文原文):Kullback-Leibler Divergence Explained
  • KL散度通俗解释(翻译版本):KL散度介绍

(4) 交叉熵

我们一般会从极大似然估计角度,来推导交叉熵公式。

二分类交叉熵公式推导:

在这里插入图片描述

为了计算方便,我们对似然函数求对数,并加负号,这样就从求解使似然函数最大时的参数,变为求解使交叉熵最小时的参数。
J = − 1 n ∑ i = 1 n ( y i l o g y i ^ + ( 1 − y i ) l o g ( 1 − y i ^ ) ) 在机器学习或深度学习中,其中 n 为批量样本数 J=-\frac{1}{n}\sum_{i=1}^n(y_ilog \hat{y_i}+ (1-y_i)log(1-\hat{y_i})) \\ 在机器学习或深度学习中,其中n为批量样本数 J=n1i=1n(yilogyi^+(1yi)log(1yi^))在机器学习或深度学习中,其中n为批量样本数
多分类交叉熵公式:
对于多项分布,我们假设有 m 个类别,模型预测各个类别的分数分别为 ( y i 1 ^ , y i 2 ^ , . . . , y i m ^ ) ,则有: p ( y i = 1 ∣ x i , w ) = y i 1 ^ p ( y i = 2 ∣ x i , w ) = y i 2 ^ . . . . . . p ( y i = c ∣ x i , w ) = y i c ^ . . . . . . p ( y i = m ∣ x i , w ) = y i m ^ 同样,合并上述公式: p ( y i ∣ x i , w ) = y i 1 ^ y i 1 y i 2 ^ y i 2 . . . y i m ^ y i m = ∏ c = 1 m y i c ^ y i c 对于 n 次观察结果 ( 批量样本 n ) ,则有似然函数: L ( w ∣ X , Y ) = f ( Y = y 1 , . . . , y n ∣ X = x 1 , . . . , x n , w ) = ∏ i = 1 n ∏ c = 1 m y i c ^ y i c 同样,为了计算方便,我们对似然函数求对数,并加负号: J = − 1 n l o g L ( w ∣ X , Y ) = − 1 n ∑ i = 1 n ∑ c = 1 m y i c l o g y i c ^ 对于多项分布,我们假设有m个类别,模型预测各个类别的分数分别为(\hat{y_{i1}},\hat{y_{i2}},...,\hat{y_{im}}),则有:\\ p(y_i=1|x_i,w)=\hat{y_{i1}}\\ p(y_i=2|x_i,w)=\hat{y_{i2}}\\ ......\\ p(y_i=c|x_i,w)=\hat{y_{ic}}\\ ......\\ p(y_i=m|x_i,w)=\hat{y_{im}}\\ 同样,合并上述公式:\\ p(y_i|x_i,w)=\hat{y_{i1}}^{y_{i1}}\hat{y_{i2}}^{y_{i2}}...\hat{y_{im}}^{y_{im}} =\prod\limits_{c=1}^{m}\hat{y_{ic}}^{y_{ic}} \\ 对于n次观察结果(批量样本n),则有似然函数:\\ L(w|X,Y)=f(Y=y_1,...,y_n|X=x_1,...,x_n,w)=\prod\limits_{i=1}^{n}\prod\limits_{c=1}^{m}\hat{y_{ic}}^{y_{ic}}\\ 同样,为了计算方便,我们对似然函数求对数,并加负号:\\ J=-\frac{1}{n}logL(w|X, Y)=-\frac{1}{n}\sum\limits_{i=1}^n\sum\limits_{c=1}^my_{ic}log\hat{y_{ic}} 对于多项分布,我们假设有m个类别,模型预测各个类别的分数分别为(yi1^,yi2^,...,yim^),则有:p(yi=1∣xi,w)=yi1^p(yi=2∣xi,w)=yi2^......p(yi=cxi,w)=yic^......p(yi=mxi,w)=yim^同样,合并上述公式:p(yixi,w)=yi1^yi1yi2^yi2...yim^yim=c=1myic^yic对于n次观察结果(批量样本n),则有似然函数:L(wX,Y)=f(Y=y1,...,ynX=x1,...,xn,w)=i=1nc=1myic^yic同样,为了计算方便,我们对似然函数求对数,并加负号:J=n1logL(wX,Y)=n1i=1nc=1myiclogyic^
通过上述推导,我们就确定了多分类的交叉熵损失函数:
l o s s = − 1 n ∑ i = 1 n ∑ c = 1 m y i c l o g y i c ^ n 为批量样本, m 为分类数 loss=-\frac{1}{n}\sum\limits_{i=1}^n\sum\limits_{c=1}^my_{ic}log\hat{y_{ic}} \\ n为批量样本,m为分类数 loss=n1i=1nc=1myiclogyic^n为批量样本,m为分类数
m = 2 m=2 m=2时候,就是二分类交叉熵损失函数:
l o s s = − 1 n ∑ i = 1 n ∑ c = 1 2 y i c l o g y i c ^ = − 1 n ∑ i = 1 n ( y i 1 l o g y i 1 ^ + y i 2 l o g y i 2 ^ ) 令 y i 1 = y i ,那么 y i 2 = 1 − y i l o s s = − 1 n ∑ i = 1 n ( y i l o g y i ^ + ( 1 − y i ) l o g ( 1 − y i ^ ) ) n 为批量样本,和之前推导一样 loss=-\frac{1}{n}\sum\limits_{i=1}^n\sum\limits_{c=1}^2y_{ic}log\hat{y_{ic}} \\ =-\frac{1}{n}\sum\limits_{i=1}^n(y_{i1}log\hat{y_{i1}}+y_{i2}log\hat{y_{i2}})\\ 令y_{i1}=y_{i},那么y_{i2}=1-y_{i}\\ loss=-\frac{1}{n}\sum\limits_{i=1}^n(y_{i}log\hat{y_{i}}+(1-y_{i})log(1-\hat{y_i}))\\ n为批量样本,和之前推导一样 loss=n1i=1nc=12yiclogyic^=n1i=1n(yi1logyi1^+yi2logyi2^)yi1=yi,那么yi2=1yiloss=n1i=1n(yilogyi^+(1yi)log(1yi^))n为批量样本,和之前推导一样

我们现在从相对熵的角度,来看待交叉熵。那么,相对熵和交叉熵的有什么关系呢?
D K L ( P ∣ ∣ Q ) = ∑ x ∈ X p x ( − l o g ( q x ) − ( − l o g ( p x ) ) = ∑ x ∈ X p x ( − l o g ( q x ) ) − ∑ x ∈ X p x ( − l o g ( p x ) ) = ∑ x ∈ X p x ( l o g ( p x ) ) − ∑ x ∈ X p x ( l o g ( q x ) ) 令 H ( p , q ) = − ∑ x ∈ X p x ( l o g ( q x ) ) ,那么 D K L ( P ∣ ∣ Q ) = H ( p ) + H ( p , q ) D_{KL}(P||Q)=\sum_{x∈X}p_x(-log(q_x)-(-log(p_x)) \\ =\sum_{x∈X}p_x(-log(q_x))-\sum_{x∈X}p_x(-log(p_x)) \\ =\sum_{x∈X}p_x(log(p_x))-\sum_{x∈X}p_x(log(q_x)) \\ 令H(p,q)=-\sum_{x∈X}p_x(log(q_x)),那么\\ D_{KL}(P||Q)=H(p)+H(p,q) \\ DKL(P∣∣Q)=xXpx(log(qx)(log(px))=xXpx(log(qx))xXpx(log(px))=xXpx(log(px))xXpx(log(qx))H(p,q)=xXpx(log(qx)),那么DKL(P∣∣Q)=H(p)+H(p,q)

  • 在机器学习中,训练数据的分布通常是固定的,因此 H ( p ) H(p) H(p)是一个常数,不影响模型的训练过程。我们的目标是使模型预测的概率分布q尽可能接近真实分布p,其实就是最小化交叉熵 H ( p , q ) H(p,q) H(p,q)
  • 所以我们把交叉熵损失函数定义为:

H ( p , q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(p,q)=-\sum\limits_{i=1}^np(x_i)log(q(x_i)) H(p,q)=i=1np(xi)log(q(xi))

总结如下:

在这里插入图片描述

通俗讲解这几个概念的视频,可以参考:

“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”

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

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

相关文章

Python从0到POC编写-魔法方法

name __name__ 是系统定义的内部函数, 它的作用是识别模块。 通常我们看到这样一句话: if __name__ __main____name__ 的值有两种情况,那么挨个来说下。 如果模块是被直接执行的 ,那么 __name__ 的值 为 __main__ 例如&…

html中用frameset对窗口进行划分

html中&#xff0c;一般有<head><body>等部分&#xff0c;在用<frameset>对窗口进行区域划分时&#xff0c;<body>标签对就不再需要了。直接删除就可以了。 请看下面的示例&#xff1a; 由于使用frameset进行窗口划分时&#xff0c;对于电脑屏幕的划分…

排序-快速排序(Quick Sort)

快排的简介 快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;采用分治法的策略&#xff0c;其基本思想是选择一个基准元素&#xff0c;通过一趟排序将待排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据要…

Android 老年模式功能 放大字体

1 配置属性 <attr name"text_size_16" format"dimension"/><attr name"text_size_18" format"dimension"/><attr name"text_size_14" format"dimension"/><attr name"text_size_12&quo…

容器组件:Column ,Row(HarmonyOS学习第四课【4.1】)

容器组件-Column Column 容器组件是沿垂直方向布局的容器。该组件从APIVersion7开始支持从API version 9开始&#xff0c;该接口支持在ArkTs,卡片中使用。其可以包含子组件 Column(value?: {space?: string | number}) 参数 space 参数类型string | number 是否必填&am…

第11节 多文件函数生成位置规律

我把多年的shellcode开发经验浓缩在了这个专题课&#x1f469;&#x1f3fb;‍&#x1f4bb;里&#xff0c;主要面向对网络安全技术感兴趣的小伙伴。这是视频版内容对应的文字版材料&#xff0c;内容里面的每一个环境我都亲自测试实操过的记录&#xff0c;有需要的小伙伴可以参…

进程创建-fork

demo1代码状态变迁 demo2代码输出到stdout使用管道 demo1 代码 #include <pthread.h> #include <iostream> #include <unistd.h> int main(int argc, char const *argv[]) {// 1.pid_t x fork();// 2.pid_t y fork();// 3.printf("%d %d\n", x…

【C++】STL-list的使用

目录 1、list的使用 1.1 list的构造 1.2 list的遍历 1.3 list capacity 1.4 list element access 1.5 容量相关 list是一个带头双向循环链表 1、list的使用 1.1 list的构造 1.2 list的遍历 list只有两种遍历方式&#xff0c;因为没有operator[] 因为list的双向链表&am…

《建筑抗震设计规程》DB62/T 3055-2020下载

本规程适用于抗震设防分类为乙类、丙类&#xff0c;抗震设防烈度为6度(0.05g)、7度(0.10g、0.15g)、8度(020g、030g)、9度(0.40g)的多高层钢筋混凝土结构及钢-混凝土混合结构、中等跨度钢屋盖结构、门式刚架钢结构、多低层砖砌体结构房屋建筑的抗震设计。 关于甘肃省地方标准《…

01 | 为什么需要消息队列?

哪些问题适合使用消息队列来解决&#xff1f; 1. 异步处理 2. 流量控制 使用消息队列隔离网关和后端服务&#xff0c;以达到流量控制和保护后端服务的目的。 3. 服务解耦 无论增加、减少下游系统或是下游系统需求如何变化&#xff0c;订单服务都无需做任何更改&#xff0c…

【主题广泛|稳定检索】2024年社会科学、公共服务与人文艺术国际会议(SPSHA 2024)

2024年社会科学、公共服务与人文艺术国际会议&#xff08;SPSHA 2024&#xff09; 2024 International Conference on Social Sciences, Public Services, and Humanities and Arts 【会议简介】 本次会议定于2024年在中国的繁华都市——广州召开&#xff0c;汇聚了全球在该领…

如何挑选护眼灯?分享最好的台灯品牌排行榜

作为家长&#xff0c;孩子的健康无疑是我们最为牵挂的事项。然而&#xff0c;通过研究数据显示&#xff0c;我国青少年儿童的近视率高达52.7%&#xff0c;这意味着在每十名儿童中&#xff0c;就有超过半数的孩子可能面临视力问题。这一数据无疑令人警觉。当我们看到孩子们在写作…

Web3加密空投入门:空投类型有哪些?如何避免限制?

今天分享空投如何避免限制以提高效率&#xff0c;增加成功几率&#xff0c;首先我们来了解什么是空投加密&#xff0c;有哪些空投类型。 一、什么是空投加密&#xff1f; 加密货币空投是一种营销策略&#xff0c;包括向用户的钱包地址发送免费的硬币或代币。 加密货币项目使用…

中医揿针的注意事项

点击文末领取揿针的视频教程跟直播讲解 关于揿针的注意事项&#xff0c;我们可以从以下几个方面进行探讨&#xff1a; 01操作前准备 1. 确保针具的清洁和无菌状态&#xff0c;以避免感染。 2. 了解患者的身体状况&#xff0c;如是否有特殊疾病或过敏史&#xff0c;以便选择…

解码管理新趋势:咨询公司如何助力企业破局升级?

随着数字化、智能化技术的不断发展&#xff0c;企业管理的边界正在被重新定义。传统的层级管理正在向扁平化、网络化转变&#xff0c;员工的参与度和自主性得到了前所未有的提升。同时&#xff0c;企业也更加注重数据驱动决策&#xff0c;通过大数据分析来洞察市场变化&#xf…

STM32 PWM 计数器模式和对齐

STM32 PWM 计数器模式和对齐 1. TIM高级定时器简介2. TIM计数模式2.1 向上计数2.2 向下计数2.3 中心对齐模式&#xff08;向上/向下计数&#xff09;2.4 重复计数 3. PWM输出模式3.1 举例看下PWM中心对齐模式&#xff0c;设置参数如下&#xff1a; 4. FOC中PWM相关设置说明4.1 …

SpringBoot对接微信公众平台(1)--- 配置微信公众平台测试号URL并校检

SpringBoot对接微信公众平台&#xff08;1&#xff09;--- 配置微信公众平台测试号URL并校检 说明微信公众号接口测试号申请后端代码实现内网穿透接口测试 说明 这里记录下自己学习SpringBoot对接微信公众平台的成长过程&#xff0c;以防止后面继续踩坑且方便以后直接使用。这…

房价暴跌到头?中国楼市回调信号愈发强烈!

一、房地产市场的繁荣与萧条 在过去的几十年里&#xff0c;中国的房地产市场经历了多次繁荣与萧条的周期。自2015年第二季度起&#xff0c;全国房价开始逐渐攀升&#xff0c;这标志着新一轮房地产市场的繁荣期的开始。以深圳为例&#xff0c;新政出台后&#xff0c;这座城市的…

CSS 实现文本的渐变色

定义一个类 .text-color{/* 创建一个水平方向的颜色渐变 */background: linear-gradient(120deg, #bd34fe 30%,#5c34fe, #41d1ff);/* 将文本透明度设置为0&#xff0c;以便背景渐变可见 */color: transparent;/* 使用背景渐变来填充文本背景 */-webkit-background-clip: text;…

LeetCode 0994.腐烂的橘子:广度优先搜索(BFS)

【LetMeFly】994.腐烂的橘子&#xff1a;广度优先搜索(BFS) 力扣题目链接&#xff1a;https://leetcode.cn/problems/rotting-oranges/ 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子…