企业建设网站的价值/百度seo搜索引擎优化
香农信息量
信息量表示不确定性的大小。 信息量的单位是比特(bit)。
香农信息量=log1p=−logp(以2为底)香农信息量=\log\frac{1}{p}=-\log p\quad(以2为底)香农信息量=logp1=−logp(以2为底)
上式中,p越小,则不确定性越大,包含的信息量就越多。比如32支球队,在无任何先验信息的前提下,用二分法猜冠军队伍,最多猜5次,那么信息量就是log132=5\log \frac{1}{32}=5log321=5。
信息熵(Entropy)
用于衡量信息量和变量的不确定度。熵越大,所涵盖的信息量越大,变量的不确定度越大。对于任意一个随机变量X,它的熵定义如下:
H(X)=−∑x∈XP(x)logP(x)H(X)=-\sum_{x\in X}P(x)\log P(x) H(X)=−x∈X∑P(x)logP(x)
当X中每个x的概率P(x)相等时,X的不确定度最大,熵最大,也就是其涵盖的信息量最大。
熵的概念来源于热力学中的熵,代表系统中的混乱程度(也就是不确定度)。熵越大,系统越混乱,越接近与均匀分布。(很容易想象,如果系统的分布很不均匀,也就是有某种规律在里面,那么系统的混乱程度就低)
条件熵(Conditional Entropy)
条件熵的含义是:假定X和Y是两个随机变量。现在我们知道X和Y同时出现的概率(联合分布),以及在Y取不同值的前提下X的概率分布(条件概率分布)。那么定义X在Y的条件下的条件熵为:
H(X∣Y)=−∑x∈X,y∈YP(x,y)logP(x∣y)H(X|Y)=-\sum_{x\in X,y\in Y}P(x,y)logP(x|y) H(X∣Y)=−x∈X,y∈Y∑P(x,y)logP(x∣y)
可以证明,H(X)>=H(X|Y)。也就是说多了Y的信息后,关于X的不确定性下降了。在统计语言模型中,如果把Y看成是前一个字,那么在数学上就证明了二元模型的不确定性小于一元模型。
当Y与X完全无关(独立)时,H(X|Y)=H(X)
同理,可以定义有两个条件的条件熵
H(X∣Y,Z)=−∑x∈X,y∈Y,z∈ZP(x,y,z)logP(x∣y,z)H(X|Y,Z)=-\sum_{x\in X,y\in Y,z\in Z}P(x,y,z)logP(x|y,z) H(X∣Y,Z)=−x∈X,y∈Y,z∈Z∑P(x,y,z)logP(x∣y,z)
还可以证明H(X|Y)>=H(X|Y,Z)。也就是说,三元模型应该比二元的好。
互信息(Mutual Information)
互信息用来表示事件X和Y的相关性。互信息是一个取值在0到min(H(X),H(Y))之间的函数。当X和Y完全相关时,它的取值是H(X),同时H(X)=H(Y);当X和Y完全不相关时,X与Y的互信息为0。互信息的公式如下:
I(X;Y)=∑x∈X,y∈YP(x,y)logP(x,y)P(x)P(y)=H(X)−H(X∣Y)I(X;Y)=\sum_{x\in X,y\in Y}P(x,y)log\frac{P(x,y)}{P(x)P(y)}=H(X)-H(X|Y) I(X;Y)=x∈X,y∈Y∑P(x,y)logP(x)P(y)P(x,y)=H(X)−H(X∣Y)
相对熵(Relative Enrtopy)
又叫KL散度(Kullback-Leibler Divergence)
KL(f(x)∣∣g(x))=∑x∈Xf(x)⋅logf(x)g(x)KL(f(x)||g(x))=\sum_{x\in X}f(x)\cdot \log\frac{f(x)}{g(x)} KL(f(x)∣∣g(x))=x∈X∑f(x)⋅logg(x)f(x)
相对熵也用来衡量相关性,但和变量的互信息不同,它用来衡量两个取值为正数的函数的相似性。
不必关心公式本身,只要记住下面三条结论就好:
- 如果两个函数完全相同,那么它们的相对熵为0
- 相对熵越大,两个函数的差异越大;相对熵越小,两个函数的差异越小
- 对于概率分布或者概率密度函数(>0),如果取值都大于0,那么相对熵可以度量两个随机分布的差异性
需要注意,相对熵是不对称的,即:
KL(f(x)∣∣g(x))≠KL(g(x)∣∣f(x))KL(f(x)||g(x)) \ne KL(g(x)||f(x)) KL(f(x)∣∣g(x))=KL(g(x)∣∣f(x))
因此为了方便,詹森和香农剔除一种新的相对熵计算方法,将不等式两边取平均,即:
JS(f(x)∣∣g(x))=12[KL(f(x)∣∣g(x))+KL(g(x)∣∣f(x))]JS(f(x)||g(x))=\frac{1}{2}[KL(f(x)||g(x))+KL(g(x)||f(x))] JS(f(x)∣∣g(x))=21[KL(f(x)∣∣g(x))+KL(g(x)∣∣f(x))]
交叉熵(Cross-Entropy)
对于一个随机事件,其真实概率分布为p(x),从数据中得到的概率分布为q(x),则我们定义,交叉熵为:
H(p,q)=∑ip(x)log1q(x)=−∑ip(x)logq(x)H(p,q)=\sum_ip(x)\log\frac{1}{q(x)}=-\sum_ip(x)\log q(x) H(p,q)=i∑p(x)logq(x)1=−i∑p(x)logq(x)
理解:
用p的熵来衡量识别一个真实分布的信息量:H(p)=∑plog1pH(p)=\sum p\log \frac{1}{p}H(p)=∑plogp1
用q来估计真实分布为p的样本的信息量:H(p,q)=∑plog1qH(p,q)=\sum p\log \frac{1}{q}H(p,q)=∑plogq1
则估计多出来的冗余信息量D(p∣∣q)=H(p,q)−H(p)=∑plogpqD(p||q)=H(p,q)-H(p)=\sum p\log\frac{p}{q}D(p∣∣q)=H(p,q)−H(p)=∑plogqp (就是KL散度)
在机器学习中,通常设定p为真实标记的分布,q为训练后模型预测标记的分布。很容易发现:
H(p,q)=H(p)+DKL(p∣∣q)H(p,q)=H(p)+D_{KL}(p||q) H(p,q)=H(p)+DKL(p∣∣q)
即:pq的交叉熵=p的信息熵+pq的KL散度(相对熵)
由于真实分布的信息熵H§是固定不变的,因此我们在机器学习中就用交叉熵作为损失函数。
显然,H(p,q)≥H(p)H(p,q)\ge H(p)H(p,q)≥H(p)