信息量、熵、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散度”、“交叉熵”

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年蓝桥杯——复盘

1、握手问题 知识点:模拟 这道题很简单。但是不知道考试的时候有没有写错。一开始的43个人握手,仅需要两两握手,也就是从42个握手开始,而非43.很可惜。这道题没有拿稳这5分。也很有可能是这5分导致没有进决赛。 总结&#xff1a…

我的 OpenLiteSpeed 从开始到放弃之经历

昨晚下定决心放弃 OpenLiteSpeed 了,从开始到放弃历时七天。总结下来放弃 OpenLiteSpeed 主要是实在不适合明月当前的需要,用起来不是锦上添花而是个累赘了都,今天明月就给大家总结分享一下这次 OpenLiteSpeed 从开始到放弃的经历。 一、Ngin…

为什么大家都说it行业要死了?

年后开始找工作开始还不敢投简历怕准备不充分。怕错过了心仪的公司。 花了2周自己死磕了一下自我介绍,和工作经历。然后信心满满就开始投了,结果发现一堆人打招呼一阵欣喜的。可是一查全是外包公司。于是开始了自我怀疑。难道是我能力不行?难…

反转链表(C语言)———链表经典算法题

题目描述​​​​​​206. 反转链表 - 力扣(LeetCode): 答案展示: 迭代: 递归: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* rev…

等保测评技术方案(五)

(八)漏洞扫描方案 1.参与人员 乙方工程师:谭 然、张 剑等。 范围经过双方确认,此次评估的对象包括: 2.网络设备 IP 地址 设备型号 备注 / / / / / / 以现场测评实际数据为准 3.应用系统 地址 …

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

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

GBPC2510-ASEMI工业电源专用GBPC2510

编辑:ll GBPC2510-ASEMI工业电源专用GBPC2510 型号:GBPC2510 品牌:ASEMI 封装:GBPC-4 最大重复峰值反向电压:1000V 最大正向平均整流电流(Vdss):25A 功率(Pd):中小功率 芯片个数&#x…

汇聚荣科技:拼多多开店时后期押金可以退吗?

在电商领域,拼多多以其独特的团购模式迅速崛起,吸引了众多商家入驻。对于这些商家而言,了解平台的各项费用政策尤为重要,其中押金的退还问题是大家关注的焦点之一。那么,拼多多开店时后期押金可以退吗?答案是肯定的。…

要不还是别搞Google Play了

​好消息:误导性条款合规了 坏消息: 应用被暂停了,太难玩了 5.13日收到邮件,被告知应用因为应用内体验问题被暂停上架了 邮件大意是由于违反执行流程政策(Violation of Enforcement Process policy)。 这个政策主要是讲Google Play会对账户/…

简述RocketMQ系统架构及其相关概念

一、概述 RocketMQ是一款高性能、高吞吐量的分布式消息队列系统,它采用了分布式架构,支持多生产者和消费者并发读写,具有高可用性、高吞吐量、低延迟等特点。本文将对RocketMQ的系统架构进行详细解析。 二、架构设计 RocketMQ采用了分布式架…

深度学习知识点全面总结

ChatGPT 深度学习是一种使用神经网络来模拟人脑处理数据和创建模式的机器学习方法。下面是深度学习的一些主要知识点的总结: 1. 神经网络基础: - 神经元:基本的计算单元,模拟人脑神经元。 - 激活函数:用于增加神…

通过任意文件读取获取weblogic账号密码

对于weblogic获取到账号密码的前提是有任意文件读取存在,当任意文件读取存在时是可以读取配置文件来对账号密码进行解密。weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可…

Docker基础学习

目录 初始docker 安装docker docker架构 配置docker镜像加速器 docker进程相关命令 docker镜像相关命令 docker容器相关命令 docker容器的数据卷 初始docker 我们写代码会接触好几个环境,如开发环境、测试环境、生产环境。代码从开发环境打包到测试环境&am…

中医揿针的注意事项

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

如何使用Shortemall自动扫描URL短链接中的隐藏内容

关于Shortemall Shortemall是一款针对URL地址安全与Web内容安全的强大工具,该工具基于纯Python开发,专为Web安全方向设计,可以帮助广大研究人员以自动化的形式扫描URL短链接中的隐藏内容。 Shortemall的全名为ShortEm All,该工具…

前端框架 Vue 主要用来做什么的?

Vue.js 是一个流行的前端框架,主要用于构建交互式的用户界面。它的设计目标是通过简单的 API 提供高效的数据驱动视图层。Vue 具有响应式数据绑定和组件化的特性,使得开发者可以轻松地构建复杂的单页面应用 (SPA) 和动态网页。 1. 数据驱动视图 Vue 的…

百亿补贴为什么用 H5?H5 未来会如何发展?

百亿补贴为什么用 H5?H5 未来会如何发展? 本人有一些分析预测。当然,这些分析预测只是个人观点,如果你有不同的意见,欢迎在评论区讨论交流。 百亿补贴为什么用 H5 我们先看两张图,在 Android 手机开发者…

Spring简介IOCDI

文章目录 Spring简介Spring课程介绍为什么要学学什么怎么学 初识SpringSpring家族Spring发展史 Spring体系结构Spring核心概念目前代码存在的问题核心概念 IOC和DI入门案例IOC入门案例入门案例分析实现步骤实现代码 DI入门案例DI入门案例分析实现步骤实现代码图解演示 Bean的基…

美业收银系统源码-App/iPad/PC管理系统常见问题讲解(1)

博弈美业管理系统源码 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 促销活动 PC管理后台、手机APP、iPad APP、微信小程序 1、平板iPad的评论内容,是从哪里评论的呢? 顾客在接受服务后,可以到…

这些小众软件让你秒变职场高手

工作繁忙,效率不高?别急,今天就要给你种草几款超实用的小众工作软件,让你的办公桌面焕然一新,效率翻倍!👀 1️⃣《亿可达》 🖥️ 它是一款自动化工具,相当于国内版免费…