首先先强烈推荐一篇外文博客Visual Information Theory这个博客的博主colah是个著名的计算机知识科普达人,以前很是著名的那篇LSTM讲解的文章也是他写的。这篇文章详细讲解了信息论中许多基本概念的前因后果,并且很是的直观用了大量的图片,和形象化的解释。git

信息量

信息量用一个信息所须要的编码长度来定义,而一个信息的编码长度跟其出现的几率呈负相关,由于一个短编码的代价也是巨大的,由于会放弃全部以其为前缀的编码方式,好比字母”a”用单一个0做为编码的话,那么为了不歧义,就不能有其余任何0开头的编码词了.因此一个词出现的越频繁,则其编码方式也就越短,同时付出的代价也大.

github

I=log2(1p(x))=−log2(p(x))

信息熵

而信息熵则表明一个分布的信息量,或者编码的平均长度

web

H(p)=∑xp(x)log2(1p(x))=−∑xp(x)log2(p(x))

即信息量的均值

交叉熵 cross-entropy

交叉熵本质上能够当作,用一个猜想的分布的编码方式去编码其真实的分布,获得的平均编码长度或者信息量

机器学习

Hp(q)=∑xq(x)log2(1p(x))

如上面的式子,用猜的的p分布,去编码本来真是为q的分布,获得的信息量

交叉熵 cross-entropy在机器学习领域的做用

交叉熵cross-entropy在机器学习领域中常常做为最后的损失函数

为何要用cross-entropy呢,他本质上至关于衡量两个编码方式之间的差值,由于只有当猜想的分布约接近于真实分布,则其值越小。

好比根据本身模型获得的A的几率是80%,获得B的几率是20%,真实的分布是应该获得A,则意味着获得A的几率是100%,因此

svg

L=−∑iyilog(p(xi))+(1−yi)log(1−p(xi))

在LR中用cross-entry比平方偏差方法好在:

在LR中,若是用平方损失函数,则损失函数是一个非凸的,而用cross-entropy的话就是一个凸函数

用cross-entropy作LR求导的话,获得的导数公式以下

∂L∂θj=−∑i(yi−p(xi))xij

而用平方损失函数的话,其求导结果为

∂L∂θj=−∑i(yi−p(xi))p′(xi)

平方损失函数中会出现p′(xi)而sigmoid函数的导数会出现梯度消失的问题【一些人称之为饱和现象】

KL散度

KL散度/距离是衡量两个分布的距离,KL距离通常用D(q||p)或者Dq(p)称之为q对p的相对熵函数

Dq(p)=Hq(p)−H(p)=∑xq(x)log2(q(x)p(x))

KL散度与cross-entropy的关系

用图像形象化的表示两者之间的关系能够以下图:

上面是q所含的信息量/平均编码长度H(p)

第二行是cross-entropy,即用q来编码p所含的信息量/平均编码长度|或者称之为q对p的cross-entropy

第三行是上面二者之间的差值即为q对p的KL距离post

非负性证实

根据上图显然其为非负的,可是怎么去证实呢,仍是利用琴生不等式

学习

Dq(p)=∑xq(x)log2(q(x)p(x))

=−∑xq(x)log2(p(x)q(x))

=−E(log2(p(x)q(x)))

≥log2E(p(x)q(x))

=log2∑xq(x)(p(x)q(x))

=log2∑xp(x)

由于

∑xp(x)=1

因此上式

Dq(p)≥0

非负性证实完成

联合信息熵和条件信息熵

下面几条咱们要说的是联合分布中(即同一个分布中)的两个变量相互影响的关系,上面说的KL和cross-entropy是两个不一样分布之间的距离度量【我的理解是KL距离是对于同一个随机事件的不一样分布度量之间的距离,因此是1.同一随机事件*2.不一样分布*】。

编码

联合信息熵:

atom

H(X,Y)=∑x,yp(x,y)log2(1p(x,y))

条件信息熵:

H(X|Y)=∑yp(y)∑xp(x|y)log2(1p(x|y))

=∑x,yp(x,y)log2(1p(x|y))

举个例子,更容易理解一些,好比天气是晴天仍是阴天,和我穿短袖仍是长袖这两个事件其能够组成联合几率分布

H(X,Y)

因此对应着上面的第一条,而对于

H(x)

来讲就是下面第二横行,由于两个时间加起来的信息量确定是大于单一一个事件的信息量的。像

H(x)

对应着今每天气分布的信息量。

而今每天气和我今天穿衣服这两个随机几率事件并非独立分布的,因此若是已知今每天气的状况下,个人穿衣的信息量/不肯定程度是减小了的。

因此当已知

H(x)

这个信息量的时候,联合分布

H(X,Y)

剩余的信息量就是

条件熵:

H(Y|X)=H(X,Y)−H(X)

根据上面那个图,也能够通俗的理解为已知X的状况下,H(X,Y)剩余的信息量

互信息(信息增益)

互信息就是一个联合分布中的两个信息的纠缠程度/或者叫相互影响那部分的信息量

I(X,Y)=H(X)+H(Y)−H(X,Y)

I(X,Y)=H(Y)−H(Y|X)

决策树中的信息增益就是互信息,决策树是采用的上面第二种计算方法,即把分类的不一样结果当作不一样随机事件Y,而后把当前选择的特征当作X,则信息增益就是当前Y的信息熵减去已知X状况下的信息熵。

经过下图的刻画更为直观一些

以上图能够清楚的看到互信息I(X,Y)的不一样求法

这里还有另一个量叫variation of information【不知道中文名叫啥】

V(X,Y)=H(X,Y)−I(X,Y)

Variation of information度量了不一样随机变量之间的差异,若是

V(X,Y)=0

说明这两个变量是彻底一致的,其约大说明两个变量越独立。

这里再注意一下Variation of information和KL距离的差异:

Variation of information是联合分布中(即

同一个分布中)的两个变量相互影响的关系

KL和cross-entropy是

两个不一样分布之间的距离度量

非负性证实

I(X,Y)=H(X)+H(Y)−H(X,Y)

=−∑x,yp(x,y)(log(p(x))+log(p(y))−log(p(x,y)))

=−∑x,yp(x,y)(log(p(x)p(y)p(x,y)))

=D(P(X,Y)||P(X)P(Y))

即互信息能够转化成两个分布

P(X,Y)

P(X)P(Y)

之间的KL距离,而KL距离的非负性在上面已经被证实过了,因此

I(X,Y)≥0

matlab图像信息熵交叉熵,【机器学习】信息量,信息熵,交叉熵,KL散度和互信息(信息增益)...相关推荐

  1. 交叉熵损失函数原理详解,KL散度

    https://blog.csdn.net/b1055077005/article/details/100152102 https://blog.csdn.net/tsyccnh/article/de ...

  2. 机器学习经典损失函数复习:交叉熵(Cross Entropy)和KL散度

    目录 1 交叉熵 2 KL散度 时间一长就忘记了,今天看见缩写CE,突然有点陌生,写个图文并茂的博客加深一下印象. 1 交叉熵 交叉熵,在机器学习中广泛用于衡量两个分布的相似度: 交叉熵一般跟在sof ...

  3. 机器学习:Kullback-Leibler Divergence (KL 散度)

    今天,我们介绍机器学习里非常常用的一个概念,KL 散度,这是一个用来衡量两个概率分布的相似性的一个度量指标.我们知道,现实世界里的任何观察都可以看成表示成信息和数据,一般来说,我们无法获取数据的总体, ...

  4. 信息量-log2P(莫斯编码使用频繁P大的字符编码段信息量少)、信息熵:期望E=-Plog2P、两点分布交叉熵=KL散度=相对熵=-plnp-(1-p)ln(1-p)不对称、JS散度对称

    信息熵为什么要定义成-Σp*log§? 信息熵为什么要定义成-Σp*log(p)? 在解释信息熵之前,需要先来说说什么是信息量. 信息量是对信息的度量,单位一般用bit. 信息论之父克劳德·艾尔伍德· ...

  5. 信息量、信息熵、KL散度、交叉熵

    一.信息量 定义: 香农(C. E. Shannon)信息论应用概率来描述不确定性.信息是用不确定性的量度定义的.一个消息的可能性愈小,其信息愈多:而消息的可能性愈大,则其信息量愈少:事件出现的概率小 ...

  6. 信息量、信息熵、交叉熵、KL散度、JS散度、Wasserstein距离

    前两篇介绍了目标检测中的回归损失函数,本来这篇打算介绍目标检测中的分类损失函数.但是介绍classification loss function自然绕不过交叉熵,所以还是简单的把信息论中的一些概念在这 ...

  7. GANs之信息量、信息熵、交叉熵、KL散度、JS散度、Wasserstein距离

    信息量也叫做香农信息量,常用于刻画消除随机变量X在x处的不确定性所需的信息量大小.假设只考虑连续型随机变量的情况,设p为随机变量X的概率分布,即p(x)为随机变量X在X=x处的概率密度函数值,随机变量 ...

  8. 信息熵、交叉熵、KL散度公式的简单理解

    整理:我不爱机器学习 1 信息量 信息量是对信息的度量,就跟时间的度量是秒一样,考虑一个离散的随机变量 x 的时候,当观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢? 例如听到太阳从东方升 ...

  9. 信息量、熵、相对熵与交叉熵的理解

    一.信息量 信息奠基人香农(Shannon)认为"信息是用来消除随机不确定性的东西".也就是说衡量信息量大小就看这个信息消除不确定性的程度. "太阳从东方升起了" ...

最新文章

  1. 打造专属BGM,​Python 深度学习教你
  2. crontab执行脚本中文乱码,手动执行没有问题
  3. Python 技术篇-用base64库对音频、图片等文件进行base64编码和解码实例演示
  4. 【三维激光扫描】实验02:StonexSiScan新建项目、加载点云数据
  5. 《UNIX网络编程 卷2》读书笔记(一)
  6. Java 持有对象简要笔记
  7. AndroidStuido连接不上手机的解决方法
  8. Javascript特效:tab标签
  9. 一个项目的流程和前期的准备工作
  10. saiku安装方法总结
  11. 一套系统要不要这样贵,5亿美元
  12. 计算机win7内容已满,Win7电脑C盘满了如何清理?
  13. 基于工业5G路由器的智慧公厕无线联网解决方案
  14. c语言实现lower_bound和upper_bound
  15. 南加大计算机专业本科sat要求,南加州大学申请条件有哪些?
  16. AH463全极高灵敏低功耗霍尔开关
  17. java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession
  18. 计算机专业研究生平均月薪,研究生刚毕业工资一般多少
  19. Oracle数据库官方权威内部培训教材
  20. rufus-scheduler 定时任务示例

热门文章

  1. JAVA输出菱形并使用绝对值,案例用绝对值的方法打印出菱形
  2. php文件夹下所有视频播放,PHP使用glob方法遍历文件夹下所有文件
  3. oracle12c 删除pdb用户,oracle 12c pdb测试:创建、开关、删除
  4. yum mysql 版本低_mysql小版本升级(yum方式)
  5. 多元线性回归模型-数学建模类-matlab详解
  6. 数学建模学习笔记(一)——层次分析模型
  7. swift面向对象之方法
  8. 孕妇能长期在计算机屏幕前工作吗,怀孕了在电脑前工作怎么办
  9. Python正则表达式re.sub使用
  10. C++基础06-类与对象之new和malloc