相对熵(KL散度)计算过程
KL散度(Kullback-Leibler Divergence)也叫做相对熵,用于度量两个概率分布之间的差异程度。
离散型
D K L ( P ∥ Q ) = ∑ i = 1 n P i l o g ( P i Q i ) D_{KL}(P \parallel Q)= \sum_{i=1}^{n}P_i log(\frac{P_i}{Q_i}) DKL(P∥Q)=i=1∑nPilog(QiPi)
比如随机变量 X ∼ P X \sim P X∼P取值为 1 , 2 , 3 1,2,3 1,2,3时的概率分别为 [ 0.2 , 0.4 , 0.4 ] [0.2, 0.4, 0.4] [0.2,0.4,0.4],随机变量 Y ∼ Q Y \sim Q Y∼Q取值为 1 , 2 , 3 1,2,3 1,2,3时的概率分别为 [ 0.4 , 0.2 , 0.4 ] [0.4, 0.2, 0.4] [0.4,0.2,0.4],则:
D ( P ∥ Q ) = 0.2 × l o g ( 0.2 0.4 ) + 0.4 × l o g ( 0.4 0.2 ) + 0.4 × l o g ( 0.4 0.4 ) = 0.2 × − 0.69 + 0.4 × 0.69 + 0.4 × 0 = 0.138 \begin{aligned} D(P \parallel Q) & =0.2 \times log(\frac{0.2}{0.4}) + 0.4 \times log(\frac{0.4}{0.2}) + 0.4 \times log(\frac{0.4}{0.4}) \\ & =0.2 \times -0.69 + 0.4 \times 0.69 + 0.4\times0 \\ & = 0.138 \end{aligned} D(P∥Q)=0.2×log(0.40.2)+0.4×log(0.20.4)+0.4×log(0.40.4)=0.2×−0.69+0.4×0.69+0.4×0=0.138
Python代码实现,离散型KL散度可通过SciPy进行计算:
from scipy import statsP = [0.2, 0.4, 0.4]
Q = [0.4, 0.2, 0.4]
stats.entropy(P,Q) # 0.13862943611198905P = [0.2, 0.4, 0.4]
Q = [0.5, 0.1, 0.4]
stats.entropy(P,Q) # 0.3712595980731252P = [0.2, 0.4, 0.4]
Q = [0.3, 0.3, 0.4]
stats.entropy(P,Q) # 0.03397980735907956
KL散度的性质:
1、 D K L ( P ∥ Q ) ≥ 0 D_{KL}(P \parallel Q) \geq 0 DKL(P∥Q)≥0,即非负性。
2、 D K L ( P ∥ Q ) ≠ D K L ( Q ∥ P ) D_{KL}(P \parallel Q) \ne D_{KL}(Q \parallel P) DKL(P∥Q)=DKL(Q∥P),即不对称性。
连续型
D K L ( P ∥ Q ) = ∫ − ∞ + ∞ p ( x ) l o g p ( x ) q ( x ) d x D_{KL}(P \parallel Q) =\int_{-\infty }^{+ \infty} p(x) log \frac{p(x)}{q(x)} dx DKL(P∥Q)=∫−∞+∞p(x)logq(x)p(x)dx
(没怎么用到,后面再补吧)
相对熵(KL散度)计算过程相关推荐
- ML:图像数据、字符串数据等计算相似度常用的十种方法(余弦相似性、皮尔逊、闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离、马氏距离、汉明距离、编辑距离、杰卡德相似系数、相对熵/KL散度、Helli
ML:图像数据.字符串数据等计算相似度常用的十种方法(余弦相似性.皮尔逊.闵可夫斯基距离/曼哈顿距离/欧氏距离/切比雪夫距离.马氏距离.汉明距离.编辑距离.杰卡德相似系数.相对熵/KL散度.Helli ...
- 【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度
1 信息熵 熵 (Entropy),信息熵:常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据. 1.1 信息熵的性质 单调性,发生概率越高的事件,其 ...
- AI理论知识基础(26)-相对熵,KL散度
相对熵(relative entropy),又被称为 KL散度.Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information div ...
- 相对熵/KL散度(Kullback–Leibler divergence,KLD)
相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(in ...
- 信息熵、相对熵(KL散度)、交叉熵、条件熵、互信息、联合熵
信息熵 信息量和信息熵的概念最早是出现在通信理论中的,其概念最早是由信息论鼻祖香农在其经典著作<A Mathematical Theory of Communication>中提出的.如今 ...
- matlab计算kl散度命令,熵,交叉熵,KL散度公式与计算实例
交叉熵(Cross Entropy)和KL散度(Kullback–Leibler Divergence)是机器学习中极其常用的两个指标,用来衡量两个概率分布的相似度,常被作为Loss Function ...
- 数学之美:信息的度量和作用 KL散度 自信息 熵 相对熵 KL divergence entropy
当上述公式中概率相等时会推出,H刚好等于5比特. 自信息: 一条信息的信息量与该信息的不确定性有关.如果想要搞懂一件非常不清楚的事,就需要了解大量的信息,相反如果一件事我们已经了如指掌,那就不需要太多 ...
- 熵,交叉熵,KL散度公式与计算实例 (转载学习)
交叉熵(Cross Entropy)和KL散度(Kullback–Leibler Divergence)是机器学习中极其常用的两个指标,用来衡量两个概率分布的相似度,常被作为Loss Function ...
- 交叉熵和mse_交叉熵 相对熵(KL散度/互熵)
香农熵 熵考察(香农熵)的是单个的信息(分布)的期望:反映了一个系统的无序化(有序化)程度,一个系统越有序,信息熵就越低,反之就越高. 交叉熵 交叉熵考察的是两个的信息(分布)的期望: 交叉熵和熵,相 ...
- 【机器学习】信息论基础(联合熵、条件熵、交叉熵、KL散度等)+ Python代码实现
文章目录 一.基本概念 1.1 联合熵 1.2 条件熵 1.3 交叉熵 1.3.1 Python编程实现交叉熵计算 1.4相对熵(KL散度) 1.4.1 Python编程实现KL散度计算 二.自信息和 ...
最新文章
- 甲骨文落寞、SAP跃进:商用软件巨头的突围与宿命
- android studio visual studio 2015,Visual Studio Emulator for Android
- 移动三国己然鼎立,普​通开发者如何选择开发​平台?
- nginx 配置两个域名
- 合并流程处理及逆向操作
- windows和linux互传文件,用户配置文件和密码配置文件,用户和组管理
- mysql循环队列_数据结构:循环队列
- 【Flink】Flink 1.13 Flink SQL 新特性 性能优化 时区 时间 纠正
- linux mint 安装java_Linux mint 安装步骤
- IE下angularJS页面跳转的bug
- 狂人日记学习 之七 三列浮动中间列宽度自适应
- 路由与交换技术(笔记)
- ORACLE sql 高级查询
- (项目)审计系统(堡垒机)
- codeforces gym 100827A Runes
- snipaste滚动截图方法_如何在电脑上截图?教你3种常用的截图方法,利用快捷键效果最快...
- html分页自动加载,AutoPagerize插件,网页自动翻页插件,自动加载分页网站
- 国外设计公司H5网站模板
- 链表_第10章_基本数据结构_算法导论
- opencv-图像融合拼接