机器学习笔记(7)

学习Datawhale对《李宏毅机器学习》决策树章节补充的内容:Additional References(熵的理解)

学习目标:

*  信息量计算,原理

*  信息熵

*  证明0⩽H(p)⩽logn

*  联合概率,边缘概率

*  联合熵,条件熵,条件熵公式推导

*  互信息,互信息公式推导

*  相对熵,交叉熵

*  回顾LR中的交叉熵

*  计算给定数据集中的香农熵



1、什么是熵(entropy)

熵是热力学中的名词,是指自然世界中事物的混乱程度,在自然条件下,都是朝着熵增加的方向发展。1948年,克劳德·爱尔伍德·香农将热力学中的熵引入信息论,所以也被称为香农熵 (Shannon entropy),信息熵 (information entropy)。

假设一个事件有n个可能的类别,每个类别发生的概率为p(xi),那么

1)如果每个类别发生的可能性相同且类别之间相互独立,即p(x1)=p(x2)=...=p(xn),那么这个事件的信息量为:

H = log_{2}n

2)如果每个类别发生的可能性不相同时,那么这个事件的信息量即为信息熵:

H(X) =-\sum_{x\in X} p(x)log(p(x))

2、证明0⩽H(p)⩽logn

即证明,当事件中每个可能的类别发生的概率相等时,这个事件的信息熵最大。

首先,从公式上就可以看出,H(X)>0,原因是0<p(x)<1,logp(x)<0,所以-p(x)*log(p(x))>0;

然后证明H(p)<logn:

使用拉格朗日算子:

L(p(1),p(2),...p(n),λ)=−p(1)logp(1)−...−p(n)logp(n)+λ(p(1)+...p(n)−1)

分别对p(1),p(2),...,p(n)以及λ求偏导,并令偏导等于0,可以得到:

-logp(1)+λ=0

-logp(2)+λ=0

...

-logp(n)+λ=0

p(1)+p(2)+...p(n)−1=0

以上式子联立求得:

p(1) = p(2) = ... = p(n)

p(1) + p(2) +...+ p(n) = 1

进一步得到: p(1) = p(2) = ... = p(n) = 1/n

即当 p(1) = p(2) = ... = p(n) = 1/n时,H(p)最大,最大值为:

H(p)max = -(1/n*log(1/n)+1/n*log(1/n)*...*1/nlog(1/n))=-log(1/n)=logn

完成证明。

3、联合概率、边缘概率

参考链接:https://blog.csdn.net/tick_tock97/article/details/79885868

联合概率:联合概率指的是包含多个条件且所有条件同时成立的概率,记作P(X=a,Y=b)或P(a,b)

边缘概率:边缘概率是与联合概率对应的,P(X=a)或P(Y=b),这类仅与单个随机变量有关的概率称为边缘概率

4、联合熵,条件熵,条件熵公式推导

联合熵:对服从联合分布为P(x,y)的一对离散随机变量(X,Y),其联合熵H(X,Y)可表示为:

H(X,Y)=-\sum_{x\in X}\sum_{y\in Y}P(x,y)logP(x,y)

按照熵的定义,只与可能类别发生的概率有关,联合熵所对应的概率为联合概率,即同时发生的概率。

条件熵:设有随机变量(X,Y),其联合概率分布为P(X=x_i,Y=y_j)=p_{ij},i=1...n,j=1...m

条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵(conditional entropy)H(Y|X),定义为X给定条件下Y的条件概率分布的熵对X的数学期望“相关的”信息能够消除不确定性:

H(Y|X)=\sum_{I=1}^{m}p_iH(Y|X=x_i)

这里:p_i=P(X=x_i),i=1,2,..n​

条件熵公式推导:

H(X,Y)-H(X)= -\sum_{x,y}P(x,y)log(x,y)+\sum_xP(x)logP(x)\

=-\sum_{x,y}P(x,y)log(x,y)+\sum_x(\sum_yP(x,y))logP(x)

=-\sum_{x,y}P(x,y)log(x,y)+\sum_{x,y}P(x,y)logP(x)

=-\sum_{x,y}P(x,y)log\frac{P(x,y)}{P(x)}\

=-\sum_{x,y}P(x,y)logP(y|x)

=-\sum_xP(x)(\sum_yP(y|x)logP(y|x))\

=\sum_xP(x)H(Y|X=x)

 5、互信息,互信息公式推导

互信息:两个随机变量X,Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵;

度量两个随机变量的“相关性”;

互信息就是随机事件X的不确定性或者说熵H(X),以及在知道随机事件Y条件下的不确定性(条件熵)的差异。

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

 I(X,Y)=\sum_{x,y}P(x,y)log\frac{P(x,y)}{P(x)P(y)}\

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

互信息公式推导:

后面补上。

6、相对熵,交叉熵

相对熵:相对熵又称交叉熵,KL散度等;

如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异

P(X),Q(X)的比值取对数之后,在P(X)的概率分布上求期望

D(P||Q)=\sum_{x}P(x)log\frac{P(x)}{Q(x)}=E_plog\frac{P(x)}{Q(x)}

交叉熵:交叉熵在上一个机器学习课程中有学到,是计算Logistic Regression的Loss Function时用到了交叉熵。

D(P||Q)=\sum_xP(x)log\frac{P(x)}{Q(x)}

=\sum_xP(x)logP(x)-\sum_xP(x)logQ(x)\

=-H(P)+(-\sum_xP(x)logQ(x))

等式的后半部分即为交叉熵,即:

H(P,Q)=-\sum_xP(x)logQ(x)

7、回顾LR中的交叉熵

L(\theta)=\sum_{i=1}^{m}[-y^ilogh_{\theta}(x^i)+(1-y^i)log(1-h_{\theta}(x^i))]

上式中的y^i 是真实数据,h_{\theta}(x^i)是预测出来的数据分布(模型),LR损失函数最小,即使得实际数据和预测结果的交叉熵越小越好,即预测的数据分布模型和真实的数据模型越接近,损失函数越小。

8、计算给定数据的信息熵

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容