机器学习中的信息熵
-
熵的基本概念
信息量
信息熵
香农公式 -
二项分布(伯努利分布)熵
-
常见熵的概念
互信息 I(X,Y)
条件熵
联合熵
三者之间的关系
熵的基本概念
信息量
公式:I =-log(p( x i x_i xi)) (bit/比特)
借用课本上的例子,信息量的大小就是消除一件事情的不确定程度。也就是说(例如)一句话说阐述的事情发生的可能性越大,那么这句话所包含的信息量就越小。小明告诉小白:“明天太白打东边升起”,其信息量为:I = -log(1) =0,这句话就是句废话,毫无信息量。但是若小明告诉小白:“明天太阳打西边升起”,其信息量为 I = -log(0) = 1,那这句话包含的信息量简直巨大,可以说是闻所未闻,令人感到十分的震惊。
信息熵
公式:H(x) = - ∑ p ( x i ) l o g p ( x i ) \sum p(x_i)logp(x_i) ∑p(xi)logp(xi)
信息熵相当于信息量的期望,信息熵是对事件不确定度的一种度量。信息熵越大,说明事物越具有不稳定因素,越具有不确定性。信息量的大小体现了消除对不确定事件的程度,而信息熵的大小则体现了事件的不确定程度。一个是消除,一个是体现。
香农公式
公式:H(x) = -C ∑ p ( x i ) l o g p ( x i ) \sum p(x_i)logp(x_i) ∑p(xi)logp(xi)
C值取一,则得到了我们信息熵公式
信息熵三大性质
-
单调 :概率越大的事情,携带的信息量越小,越稳定
-
非负 : 信息熵>=0,毕竟是体现不确定度的,最好情况也就是0了,百分百空手接白刃
-
可累加 : 混合事件的信息熵可以转化为单个事件信息熵的累加
二项分布(伯努利分布)熵
二项分布:非0即1 P(X=1)=p ,P(X=0)=1-p
根据信息熵公式可得: H ( p ) = − p ∗ l o g ( p ) − ( 1 − p ) ∗ l o g ( 1 − p ) H(p) = -p*log(p) - (1-p)*log(1-p) H(p)=−p∗log(p)−(1−p)∗log(1−p)
对 H ( p ) H(p) H(p) 求导,可以得出当p=1-p时信息熵最大,最不稳定。(…不会算了,来张图凑凑吧)
import matplotlib.pyplot as plt
import numpy as np
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]
x = np.linspace(0,1,100)
y = (-x)*np.log(x)-(1-x)*np.log(1-x)
# 创建画布
plt.figure(figsize=(10,6),dpi=100)
# 绘制图像
plt.plot(x,y)
# 设置属性
plt.title("Bernoulli 分布熵")
plt.ylabel("熵/bit")
plt.savefig("./bernoulli.png")
plt.show()
常见熵
-
互信息
I ( X , Y ) = ∑ x ∈ X ∑ y ∈ Y p ( x , y ) l o g ( p ( x , y ) / p ( x ) p ( y ) ) I(X,Y) = \sum_{x∈X}\sum_{y∈Y}p(x,y) log{(p(x,y)/{p(x)p(y))}} I(X,Y)=x∈X∑y∈Y∑p(x,y)log(p(x,y)/p(x)p(y))l o g ( p ( x , y ) / p ( x ) p ( y ) ) = l o g ( p ( x . y ) ) − l o g p ( x ) − l o g p ( y ) log{(p(x,y)/{p(x)p(y))}} = log(p(x.y)) - logp(x) - logp(y) log(p(x,y)/p(x)p(y))=log(p(x.y))−logp(x)−logp(y)
I ( X , Y ) = − H ( X , Y ) + H ( X ) + H ( Y ) I(X,Y) = -H(X,Y) + H(X) + H(Y) I(X,Y)=−H(X,Y)+H(X)+H(Y)
= H ( Y ) − H ( Y ∣ X ) = H(Y) - H(Y|X) =H(Y)−H(Y∣X)
= H ( X ) − H ( X ∣ Y ) = H(X) - H(X|Y) =H(X)−H(X∣Y)
= H ( x , y ) − H ( X ∣ Y ) − H ( Y ∣ X ) = H(x,y) - H(X|Y) - H(Y|X) =H(x,y)−H(X∣Y)−H(Y∣X)
维基百科annotation:
在概率论和信息论中,两个随机变量的互信息(mutual Information,MI)度量了两个变量之间相互依赖的程度。具体来说,对于两个随机变量,MI是在获得一个随机变量的信息之后,观察另一个随机变量所获得的“信息量”(单位通常为比特)。互信息的概念与随机变量的熵紧密相关,熵是信息论中的基本概念,它量化的是随机变量中所包含的“信息量”。
(通俗点讲就是两个或多个有联系的变量,其中一个变量发生变化后给另外变量所带来的的信息量)
-
条件熵
H ( X ∣ Y ) = ∑ y ∈ Y p ( y ) H ( X ∣ y ) = ∑ y ∈ Y ∑ x ∈ X p ( y ) − p ( x / y ) l o g ( p ( x / y ) ) H(X|Y) = \sum_{y∈Y}p(y)H(X|y) = \sum_{y∈Y}\sum_{x∈X}p(y){-p(x/y)log(p(x/y))} H(X∣Y)=y∈Y∑p(y)H(X∣y)=y∈Y∑x∈X∑p(y)−p(x/y)log(p(x/y)). . . . . . 省 略 一 万 行 推 导 提 示 : p ( x / y ) = p ( x , y ) / p ( y ) ......省略一万行推导 提示 :p(x/y) = p(x,y)/p(y) ......省略一万行推导提示:p(x/y)=p(x,y)/p(y)
= H ( X , Y ) − H ( Y ) = H(X,Y) - H(Y) =H(X,Y)−H(Y)
给条件概率一个意思。度量在已知其中一个变量情况下另一个变量的信息量变化情况
-
联合熵
H ( X , Y ) = ∑ x ∈ X ∑ y ∈ Y − p ( x , y ) l o g p ( x , y ) H(X,Y) = \sum_{x∈X}\sum_{y∈Y}{-p(x,y)log{p(x,y)}} H(X,Y)=x∈X∑y∈Y∑−p(x,y)logp(x,y)
联合熵用来度量多件事情同时发生的信息量 -
交叉熵/相对熵在DL最大似然估计会用到,稍后再讲
最后盗张图再加上灵魂画手,最直观的展现下联合熵/条件熵/互信息之间的关系
***这张图中间应该是 I(X,Y) ***