KL散度(Divergence)
一、信息量
首先我们要懂信息量的概念,任何一个事件都会承载一个信息量。当一件事情发生的概率很高时,他承载的信息量就越少,例如“1+1=2”这个事情我们是已知的,所以当别人告诉我们这件事时我们不能获取任何信息,即信息量为0,但是”中国足球世界杯夺冠”这件事给我们的信息量是巨大的,我们将离散型随机变量 X X X包含的信息量如下表示:
设 X X X是一个离散型随机变量,概率分布 P = p ( X = x i ) P=p(X=x_i) P=p(X=xi),则定义事件 X = x i X=x_i X=xi的信息量为: I ( x i ) = − l o g ( p ( x i ) ) I(x_i)=-log(p(x_i)) I(xi)=−log(p(xi))
二、信息熵
信息量是单个事件发生的情况下我们所获得的信息量,当然一个离散型随机变量 X X X包含不止一个事件,我们将其全部列出,得到所有可能发生的事件的信息量的期望,这个期望就是信息熵。数学表达如下所是:
假设 X X X是一个离散型随机变量,且有 n n n种可能性,发生 x i x_i xi事件的概率为 p ( x i ) p(x_i) p(xi),则 X X X的信息熵为: H ( X ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) H(X)=-\sum_{i=1}^{n}p(x_i)log(p(x_i)) H(X)=−∑i=1np(xi)log(p(xi))
特别的,对于二项分布的问题(0-1分布),信息熵的计算如下:
H ( X ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) = − p ( x ) l o g ( p ( x ) ) − ( 1 − p ( x ) ) l o g ( 1 − p ( x ) ) H(X)=-\sum_{i=1}^{n}p(x_i)log(p(x_i))=-p(x)log(p(x))-(1-p(x))log(1-p(x)) H(X)=−i=1∑np(xi)log(p(xi))=−p(x)log(p(x))−(1−p(x))log(1−p(x))
三、KL散度(相对熵)
D K L ( p ∣ ∣ q ) = ∑ i = 1 N [ p ( x i ) l o g p ( x i ) − p ( x i ) l o g q ( x i ) ] D_{KL}(p||q)=\sum_{i=1}^{N}[p(x_i)log{p(x_i)}-p(x_i)log{q(x_i)}] DKL(p∣∣q)=i=1∑N[p(xi)logp(xi)−p(xi)logq(xi)]
对于同一个随机变量 X X X,有两个单独的概率分布 P ( x ) a n d Q ( x ) P(x) ~and ~Q(x) P(x) and Q(x),用KL散度来衡量这两个分布的差异。
通常情况下: P ( x ) P(x) P(x)表示真实分布, Q ( x ) Q(x) Q(x)表示模型所预测的分布,KL散度用来计算两个分布的差异,即 D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p||q)=\sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)}) DKL(p∣∣q)=∑i=1np(xi)log(q(xi)p(xi)),公式表示当 Q Q Q的分布越来越接近 P P P(即 Q Q Q的分布拟合 P P P)时,散度越小,损失值越小
KL散度不具有对称性,即分布 P P P到分布 Q Q Q的距离不等于分布 Q Q Q到分布 P P P的距离 D K L ( P ∣ ∣ Q ) ≠ D K L ( Q ∣ ∣ P ) D_{KL}(P||Q)\neq D_{KL}(Q||P) DKL(P∣∣Q)=DKL(Q∣∣P)KL散度非负
KL非负证明:
要证: D K L ( p ∣ ∣ q ) = ∑ i = 1 N [ p ( x i ) l o g p ( x i ) − p ( x i ) l o g q ( x i ) ] ⩾ 0 D_{KL}(p||q)=\sum_{i=1}^{N}[p(x_i)log{p(x_i)}-p(x_i)log{q(x_i)}]\geqslant 0 DKL(p∣∣q)=∑i=1N[p(xi)logp(xi)−p(xi)logq(xi)]⩾0
即证: ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) ⩽ 0 \sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)})\leqslant 0 ∑i=1np(xi)log(q(xi)p(xi))⩽0
又: l n ( x ) ⩽ x − 1 ln(x)\leqslant x-1 ln(x)⩽x−1,当且仅当 x = 1 x=1 x=1时等号成立
故: ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) ⩽ ∑ i = 1 n p ( x i ) ( p ( x i ) q ( x i ) − 1 ) = ∑ i = 1 n [ p ( x i ) − q ( x i ) ] = 0 \sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)})\leqslant \sum_{i=1}^{n}p(x_i)(\frac{p(x_i)}{q(x_i)}-1)=\sum_{i=1}^{n}[p(x_i)-q(x_i)]=0 ∑i=1np(xi)log(q(xi)p(xi))⩽∑i=1np(xi)(q(xi)p(xi)−1)=∑i=1n[p(xi)−q(xi)]=0
四、交叉熵
H ( p , q ) = H ( p ) + D K L ( p ∣ ∣ q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(p,q)=H(p)+D_{KL}(p||q)=-\sum_{i=1}^{n}p(x_i)log(q(x_i)) H(p,q)=H(p)+DKL(p∣∣q)=−i=1∑np(xi)log(q(xi))
由于交叉熵和相对熵之间仅差了一个信息熵,而信息熵又是一个确定的值,因此可以直接用交叉熵作为Loss进行反向传播
KL散度(Divergence)相关推荐
- 人工智能学习笔记——KL散度
身为一个菜鸡,我经常在数据处理过程中,遇到比较两个样本是否符合同一分布,以及两个模型之间是否相似之类的问题.也是在这个过程中,我才逐渐知道有个东西叫KL散度(divergence),在这里记录一下. ...
- 相对熵/KL散度(Kullback–Leibler divergence,KLD)
相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence),信息增益(in ...
- Kullback–Leibler divergence(相对熵,KL距离,KL散度)
1 前言 注意两个名词的区别: 相对熵:Kullback–Leibler divergence 交叉熵:cross entropy KL距离的几个用途: ① 衡量两个概率分布的差异. ② 衡量利用概率 ...
- 损失函数——KL散度(Kullback-Leibler Divergence,KL Divergence)
KL散度(Kullback-Leibler Divergence,简称KL散度)是一种度量两个概率分布之间差异的指标,也被称为相对熵(Relative Entropy).KL散度被广泛应用于信息论.统 ...
- KL Divergence KL散度
在概率论或信息论中,KL散度( Kullback–Leibler divergence),又称相对熵(relative entropy),是描述两个概率分布P和Q差异的一种方法.它是非对称的,这意味着 ...
- 机器学习中的数学——距离定义(二十):相对熵(Relative Entropy)/KL散度(Kullback-Leibler Divergence)
分类目录:<机器学习中的数学>总目录 相关文章: · 距离定义:基础知识 · 距离定义(一):欧几里得距离(Euclidean Distance) · 距离定义(二):曼哈顿距离(Manh ...
- KL距离,Kullback-Leibler Divergence 浅谈KL散度
KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy).它衡量的是相同事件空间里的两个概率分 ...
- python计算矩阵的散度_python 3计算KL散度(KL Divergence)
KL Divergence KL( Kullback–Leibler) Divergence中文译作KL散度,从信息论角度来讲,这个指标就是信息增益(Information Gain)或相对熵(Rel ...
- 数学之美:信息的度量和作用 KL散度 自信息 熵 相对熵 KL divergence entropy
当上述公式中概率相等时会推出,H刚好等于5比特. 自信息: 一条信息的信息量与该信息的不确定性有关.如果想要搞懂一件非常不清楚的事,就需要了解大量的信息,相反如果一件事我们已经了如指掌,那就不需要太多 ...
最新文章
- Boosting(提升方法)之XGBoost
- 我的centos上安装 jdk+apache+tomcat+tomcatconnector+myql 安装道路
- 权限管理说明-以Linux为例
- OpenCV交互式相机校准应用
- 03_TF2 Guide、文档清单(数据输入、估计器、保存模型、加速器、性能调优等)、TF2库和扩展库(TensorBoard、数据集、TensorFlow Hub、概率和统计分析库、图像处理库)
- c++primer 4th edithon 第324页的一个练习题(9.43和9.44)
- 随记:Linux中一个修改活动卷组名所引发的血案
- mysql 服务器初始面膜_安全初始化MySql服务器
- 数据结构单向不循环链表实现多项式合并
- php mysql 排名算法_MySQL PHP:优化排名查询和计数子查询
- go 单元测试 testing 打印输出_2020,你需掌握go 单元测试进阶篇
- 【kafka】利用 InfoSphere Data Replication CDC for Kafka 实现高效数据复制
- ajax servlet怎么接收_【百战程序员从开始到植发】之AJAX
- CVPR学习(三):CVPR2019-各个方向
- PIC温控器c语言程序,PIC CCS C语言程序范例.doc
- 如何迈出客户拜访的第一步
- 医院信息化建设(2)---医疗业务
- 王小九用计算机弹桥边姑娘,抖音最火歌曲是哪首?QQ音乐开放平台《桥边姑娘》让“野狼”靠边站...
- 微商城、小程序商城、APP商城对比
- 首次曝光:大厂都是这样过1024的,看的我酸了
热门文章
- [破解] DRM-内容数据版权加密保护技术学习(上):视频文件打包实现
- imagenet2012数据集||迅雷下载
- 《白夜行》——我的雪穗
- 易地推拓客团队一次错误的招生外包浪费的不仅仅是金钱
- Boson 6.0 试验笔记一
- ImageView图片不显示
- 什么是Linux操作系统
- [4]Carbondata integration-presto查询carbondata
- 从工地实习月薪3K到一线企业年薪30W,我追上了那个曾经被赋予厚望的自己
- [学院]_[我的课程]