各种形式的熵函数,KL距离
自信息量I(x)=-log(p(x)),其他依次类推。
离散变量x的熵H(x)=E(I(x))=-$\sum\limits_{x}{p(x)lnp(x)}$
连续变量x的微分熵H(x)=E(I(x))=-$\int{p(x)lnp(x)dx} $
条件熵H(y|x)=-$\int\int{p(x,y)lnp(y|x)dydx}$
两个变量X和 Y 的联合熵定义为:
H(X,Y)=-$\int\int{p(x,y)lnp(x,y)dxdy}$
H(x,y)=H(y|x)+H(x)
若x,y独立,H(x,y)=H(x)+H(y),此时对x的了解不能增进对y的了解。
交叉熵Cross Entropy
H(p;q)=-$\int{p(x)lnq(x)dx}$
很少见,通常使用KL距离
Kullback-Leibler divergence:KL(p||q)=-$\int{p(x)lnq(x)dx}-(-\int{p(x)lnp(x)dx})$=H(p)+H(p;q)=-$\int{p(x)ln{\frac{q(x)}{p(x)}}dx}$
p=q时,KL(p||q)=0,H(p;q)=H(p)
交叉熵与kl距离相差一个H(p)
当p未知而q已知时,通过改变KL中的p、q的位置,可以减少未知量,便于计算相似度。
交叉熵是一种万能的Monte-Carlo技术,常用于稀有事件的仿真建模、多峰函数的最优化问题。交叉熵技术已用于解决经典的旅行商问题、背包问题、最短路问题、最大割问题等。这里给一个文章链接:A Tutorial on the Cross-Entropy Method
交叉熵算法的推导过程中又牵扯出来一个问题:如何求一个数学期望?常用的方法有这么几种:
概率方法,比如Crude Monte-Carlo
测度变换法change of measure
偏微分方程的变量代换法
Green函数法
Fourier变换法
在实际中变量X服从的概率分布h往往是不知道的,我们会用g来近似地代替h----这本质上是一种函数估计。有一种度量g和h相近程度的方法叫 Kullback-Leibler距离,又叫交叉熵,通常选取g和h具有相同的概率分布类型(比如已知h是指数分布,那么就选g也是指数分布)----参数估计,只是pdf参数不一样(实际上h中的参数根本就是未知的)。
基于期望交叉熵的特征项选择
CE(w)=$\sum\limits_{i}p(c_{i}|w)log\frac{p(c_{i}|w}{p(c_{i}}$
p(ci|w)表示在出现词条w时文档属于类别ci的概率。
交叉熵反应了文本类别的概率分布与在出现了某个词条的情况下文本类别的概率分布之间的距离。词条的交叉熵越大,对文本类别分布影响也就越大。所以选CE最大的K个词条作为最终的特征项。
互信息Mutual Informantion
yj对xi的互信息定义为后验概率与先验概率比值的对数。
I(x,y)=log$\frac{p(x|y)}{p(x)}=I(x)-I(x|y)$
互信息越大,表明y对于确定x的取值的贡献度越大。
系统的平均互信息
I(X,Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)
可见平均互信息就是信息增益!
I(X,Y)=KL(p(x,y)||p(x)p(y))=-$\int\int{p(x,y)ln(\frac{p(x)p(y)}{p(x,y)})dxdy}$
互信息在特征选择中的应用
词条w与类别ci的互信息为
MI(w,c)=log$\frac{p(w|c)}{p(w)}$
p(w)表示出现w的文档点总文档数目的比例,p(w|ci)表示在类别ci中出现w的文档点总文档数目的比例。
对整个系统来说,词条w的互信息为
$MI_{avg}(w,c)=\sum\limits_{i}p(c)log\frac{p(w|c)}{p(w)}$
最后选互信息最大的前K个词条作为特征项。
各种形式的熵函数,KL距离的更多相关文章
- (转载)KL距离,Kullback-Leibler Divergence
转自:KL距离,Kullback-Leibler Divergence KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对 ...
- [NLP自然语言处理]计算熵和KL距离,java实现汉字和英文单词的识别,UTF8变长字符读取
算法任务: 1. 给定一个文件,统计这个文件中所有字符的相对频率(相对频率就是这些字符出现的概率——该字符出现次数除以字符总个数,并计算该文件的熵). 2. 给定另外一个文件,按上述同样的方法计算字符 ...
- 最大熵与最大似然,以及KL距离。
DNN中最常使用的离散数值优化目标,莫过于交差熵.两个分布p,q的交差熵,与KL距离实际上是同一回事. $-\sum plog(q)=D_{KL}(p\shortparallel q)-\sum pl ...
- KL距离,Kullback-Leibler Divergence
http://www.cnblogs.com/ywl925/p/3554502.html http://www.cnblogs.com/hxsyl/p/4910218.html http://blog ...
- 【转载】 KL距离(相对熵)
原文地址: https://www.cnblogs.com/nlpowen/p/3620470.html ----------------------------------------------- ...
- KL距离(相对熵)
KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy).它衡量的是相同事件空间里的两个概率分 ...
- KL散度、JS散度、Wasserstein距离
1. KL散度 KL散度又称为相对熵,信息散度,信息增益.KL散度是是两个概率分布 $P$ 和 $Q$ 之间差别的非对称性的度量. KL散度是用来 度量使用基于 $Q$ 的编码来编码来自 $P$ 的 ...
- PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...
- 信息论相关概念:熵 交叉熵 KL散度 JS散度
目录 机器学习基础--信息论相关概念总结以及理解 1. 信息量(熵) 2. KL散度 3. 交叉熵 4. JS散度 机器学习基础--信息论相关概念总结以及理解 摘要: 熵(entropy).KL 散度 ...
随机推荐
- python中那些双下划线开头得函数和变量
Python中下划线---完全解读 Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __x ...
- django特殊的标签和过滤器
国际化标签和过滤器 Django还提供了一些模板标签和过滤器,用以控制模板中国际化的每个方面.它们允许对翻译,格式化和时区转换进行粒度控制. 1. i18n 此标签允许在模板中指定可翻译文本.要启用它 ...
- vue.js环境配置步骤及npm run dev报错解决方案
安装完成后,使用npm run dev 运行,成功后,就可以在浏览器中看到vue的欢迎画面了 最后一步可能报错,我就遇到这样的问题了, 个人问题仅供参考: ERROR Failed to compil ...
- Redis持久化AOF和RDB对比
RDB持久化 AOF持久化 全量备份,一次保存整个数据库 增量备份,一次保存一个修改数据库的命令 保存的间隔较长 保存的间隔默认一秒 数据还原速度快 数据还原速度一般 save会阻塞,但bgsave或 ...
- jquery如何获取checkbox的值
jquery如何获取checkbox的值 一.总结 一句话总结:就是通过jquery获取哪些对应name的checkbox,然后找出:check(被选中的),然后通过jquery的each遍历获取这些 ...
- Redisson实现分布式锁(二)
本次基于注解+AOP实现分布式锁(招式与前文基于注解切换多数据源相同),话不多说,直接上样例: 首先自定义注解:设计时需要考虑锁的一般属性:keys,最大等待时间,超时时间,时间单位. package ...
- 七种常见的核酸序列蛋白编码能力预测工具 | ncRNAs | lncRNA
注:这些工具的应用都是受限的,有些本来就是只能用于预测动物,在使用之前务必用ground truth数据来测试一些.我想预测某一个植物的转录本,所以可以拿已经注释得比较好的拟南芥来测试一下.(测试的结 ...
- Learning by doing——百日“扇贝打卡” 历程&展望
Java结课了.如果说这学期学习这门课后最明显的成果,那就是写了那么多的博客吧.而如果说本学期最有里程碑的事,那就是背了100多天单词,其中还获得了徽章! 这次想说说从中学以来一直喜欢的一门课--英语 ...
- Jenkins与Gitlab集成
一.安装jenkinshttps://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/ #清华yum源 yum -y install java-1.8. ...
- source code spark
http://blog.csdn.net/pelick/article/category/1556747 http://www.cnblogs.com/hseagle/