首先先强烈推荐一篇外文博客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