test

机器学习里面,经常会看到各种熵,特意在此简单总结下。

前言

信息熵是由香农1948年提出的用来定量描述信息量大小的概念。在机器学习中用来表示随机变量分布的混乱程度,分布越混乱,熵越大。

1.自信息

自信息表示某单一事件发生时所包含的信息量多少,大小和事件发生的概率有关,概率越大,自信息越小,计算公式如下: 

I(pi)=−log(pi)I(pi)=−log(pi)


pipi表示事件发生的概率。

 

2.信息熵

自信息表示的是单一事件发生时包含的信息量,而信息熵表示的是整个随机分布平均信息量。由香农提出,所以也叫香农熵,计算公式如下: 

H(x)=Ex∼p[I(x)]=−Ex∼p[log p(x)=−∑i=1np(xi)log p(xi)=−∫xp(x)log p(x)dxH(x)=Ex∼p[I(x)]=−Ex∼p[log p(x)=−∑i=1np(xi)log p(xi)=−∫xp(x)log p(x)dx


这个公式实际计算的就是随机分布中每个自信息的加权和,表示的是随机分布的混乱程度,信息熵越大,分布越混乱。机器学习里面很多Loss的基于熵提出的。

 

3.条件熵

条件熵的定义是:在X给定条件下,Y的条件概率分布的熵对X的数学期望。计算公式如下: 

H(Y|X)=Ex∼p[H|X=x]=∑i=1np(x)H(Y|X=x)=−∑i=1np(x)∑j=1mp(x|y)log p(y|x)H(Y|X)=Ex∼p[H|X=x]=∑i=1np(x)H(Y|X=x)=−∑i=1np(x)∑j=1mp(x|y)log p(y|x)


条件熵可以这样理解:Y在条件X=xX=x下概率分布的熵

H(Y|X=x)=∑j=1mp(y|x)log p(y|x)H(Y|X=x)=∑j=1mp(y|x)log p(y|x)


然后对X求数学期望

Ex∼p[H|X=x]=∑i=1np(x)H(Y|X=x)Ex∼p[H|X=x]=∑i=1np(x)H(Y|X=x)


如果对上面的条件熵公式进一步推导,可以得到:

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


即Y对X的条件熵等于X,Y的联合信息熵减去X的熵。

 

4.交叉熵

交叉熵的定义是:假如有随机分布p,q,p对q的交叉熵表示q分布的自信息对p分布的期望,计算公式如下: 

H(p,q)=Ex∼p[−log q(x)]=−∑i=1np(x)log q(x)H(p,q)=Ex∼p[−log q(x)]=−∑i=1np(x)log q(x)


其中,p表示真实分布,q表示预测分布,交叉熵在逻辑回归中有广泛的应用,下面给出二分类Sigmoid的损失函数: 

J(θ)=−1m∑i=1m(yilog hθ(xi)+(1−yi)log (1−hθ(xi)))J(θ)=−1m∑i=1m(yilog hθ(xi)+(1−yi)log (1−hθ(xi)))


另外,如果观察多分类Softmax逻辑回归的损失函数,会发现,Softmax就是Sigmoid在多分类上的推广

 

5.相对熵

相对熵又称KL散度,用来表示两个概率分布的差异性,差异性越大,相对熵越大,当两者相等时熵为0,计算公式如下:

DKL(p||q)=Ex∼p[log p(x)q(x)]=Ex∼p[log p(x)q(x)]=−∑i=1np(x)log p(x)q(x)=H(p,q)−H(P)DKL(p||q)=Ex∼p[log p(x)q(x)]=Ex∼p[log p(x)q(x)]=−∑i=1np(x)log p(x)q(x)=H(p,q)−H(P)


需要注意的是KL散度是非对称的,即DKL(p||q)≠DKL(q||p)DKL(p||q)≠DKL(q||p)。对比相对熵和交叉熵会发现两者仅差一个H(p)H(p),所以当p是固定分布,H(P)H(P)为确定值的时候,KL散度和交叉熵并没有什么区别。

 

6.JS散度

JS散度用来度量两个概率分布的相似度,是KL散度的一个变体,育KL散度的主要区别在于JS散度是对称的,取值为0到1。计算公式如下: 

JS(P1||P2)=12KL(P1||P1+P22+12KL(P2||P1+P22)JS(P1||P2)=12KL(P1||P1+P22+12KL(P2||P1+P22)


KL散度和JS散度有一个共同的问题:当两个分布p,q相距很远时,KL散度是没有意义的,而JS散度是一个常数,这时梯度为0,这在机器学习算法中是一个很致命的缺点。

 

7.互信息

互信息用来度量两个分布之间的距离,定义是:一个随机变量由于已知另一随机变量而减少的不确定性。计算公式如下: 

I(X,Y)=∑i=1n∑j=1mP(X,Y)log P(X,Y)P(X)P(Y)=∑i=1n∑j=1mP(X,Y)logP(X,Y)P(X)−∑i=1n∑j=1mP(X,Y)logP(Y)=∑i=1n∑j=1mP(X)P(Y|X)logP(Y|X)−∑j=1mlog P(Y)∑i=1nP(X,Y)=∑i=1nP(X)∑j=1mP(Y|X)log P(Y|X)−∑j=1mlog P(Y)P(Y)=−∑i=1nP(X)H(Y|X=x)+H(Y)=H(Y)−H(Y|X)I(X,Y)=∑i=1n∑j=1mP(X,Y)log P(X,Y)P(X)P(Y)=∑i=1n∑j=1mP(X,Y)logP(X,Y)P(X)−∑i=1n∑j=1mP(X,Y)logP(Y)=∑i=1n∑j=1mP(X)P(Y|X)logP(Y|X)−∑j=1mlog P(Y)∑i=1nP(X,Y)=∑i=1nP(X)∑j=1mP(Y|X)log P(Y|X)−∑j=1mlog P(Y)P(Y)=−∑i=1nP(X)H(Y|X=x)+H(Y)=H(Y)−H(Y|X)

 

这里只是列出一些常见的熵,在机器学习中还会经常看到为了满足特殊的要求,经常会提出一些奇奇怪怪的熵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值