搞清概念是学习的重点工作,其实知识就是由一个又一个宝贵的概念堆叠出来的。
概率公式
- 条件概率: P ( A ∣ B ) = P ( A , B ) P ( B ) P(A|B)=\frac{P(A,B)}{P(B)} P(A∣B)=P(B)P(A,B)
- 全概率公式: P ( A ) = ∑ B i P ( A , B i ) = ∑ B i P ( A ∣ B i ) P ( B i ) P(A)=\sum_{B_i}P(A,B_i)=\sum_{B_i}P(A|B_i)P(B_i) P(A)=Bi∑P(A,Bi)=Bi∑P(A∣Bi)P(Bi)仔细体会其中的构成关系,对于固定 A A A事件的所有 P ( A , B i ) P(A,B_i) P(A,Bi)构成了 P ( A ) P(A) P(A)。你可能会说:那也许有可能存在 P ( A , C i ) P(A,C_i) P(A,Ci)。这么想不奇怪,但是这里的 B i B_i Bi 包含了除 A A A 以外的任何事件,包括所谓的 C i 、 D i C_i、D_i Ci、Di等情况。
- 贝叶斯(Bayes)公式: P ( B i ∣ A ) = P ( A ∣ B i ) P ( B i ) ∑ B j P ( A ∣ B j ) P ( B j ) P(B_i|A)=\frac{P(A|B_i)P(B_i)}{\sum_{B_j}P(A|B_j)P(B_j)} P(Bi∣A)=∑BjP(A∣Bj)P(Bj)P(A∣Bi)P(Bi)
熵之 [一.信息熵、二.条件熵、三.交叉熵、四.相对熵(KL散度)、五.互信息]
一.信息熵
声明:详情还需细看一篇精彩的博客: https://blog.youkuaiyun.com/Hearthougan/article/details/76192381。
尊重原创好文,下面是我取一瓢饮进行的记录。
-
信息量
欲谈信息熵,那必须从信息量说起。何为“信息量”?
简言之,狭义来说,信息量是在随机事件 X X X中表达某一个具体事件 x i x_i xi需要花费的信息的多少,单位是比特。 -
信息熵
对信息量求期望,我们给这个期望一个名字,就是信息熵。 -
如何抽象成数学模型呢?
1)信息量:随机变量取某个值时,其概率倒数的对数就是信息量 I i = log 2 1 p i = − log 2 ( p i ) I_i=\log_2\frac{1}{p_i}=-\log_2\left(p_i\right) Ii=log2pi1=−log2(pi)其中底数可以是2,单位是比特,底数也可以是其他,单位也相应不同。
2)信息熵:信息量的期望 H ( X ) = − ∑ i = 1 n p i log 2 p i H(X)=-\sum^n_{i=1}p_i\log_2p_i H(X)=−i=1∑npilog2pi
二. 条件熵
定义:条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)表示在随机变量
X
X
X 已知的条件下,随机变量
Y
Y
Y 的不确定性,数学公式为:
(2.1)
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
(
x
i
)
H
(
Y
∣
X
=
x
i
)
H(Y|X)=\sum^n_{i=1}p(x_i)H(Y|X=x_i)\tag{2.1}
H(Y∣X)=i=1∑np(xi)H(Y∣X=xi)(2.1),可以从集合的角度辅助理解。
下面进行条件熵公式的推导
H
(
Y
∣
X
)
=
H
(
X
,
Y
)
−
H
(
X
)
=
−
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
+
∑
x
p
(
x
)
log
p
(
x
)
=
−
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
+
∑
x
(
∑
y
p
(
x
,
y
)
)
log
p
(
x
)
=
−
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
+
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
)
=
−
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
=
−
∑
x
,
y
p
(
x
,
y
)
log
p
(
y
∣
x
)
=
H
(
Y
∣
X
)
\begin{aligned} H(Y|X)&=H(X,Y)-H(X)\\ &=-\sum_{x,\ y}p(x,y)\log p(x,y)+\sum_x p(x)\log p(x)\\ &=-\sum_{x,\ y}p(x,y)\log p(x,y)+\sum_x\left(\sum_y p(x,y)\right)\log p(x)\\ &=-\sum_{x,\ y}p(x,y)\log p(x,y)+\sum_{x,\ y}p(x,y)\log p(x)\\ &=-\sum_{x,\ y}p(x,y)\log \frac{p(x,y)}{p(x)}\\ &=-\sum_{x,\ y}p(x,y)\log p(y|x)\\ &=H(Y|X) \end{aligned}
H(Y∣X)=H(X,Y)−H(X)=−x, y∑p(x,y)logp(x,y)+x∑p(x)logp(x)=−x, y∑p(x,y)logp(x,y)+x∑(y∑p(x,y))logp(x)=−x, y∑p(x,y)logp(x,y)+x, y∑p(x,y)logp(x)=−x, y∑p(x,y)logp(x)p(x,y)=−x, y∑p(x,y)logp(y∣x)=H(Y∣X)如果继续化简就可以得到我们式(2.1)定义的条件熵公式
H
(
Y
∣
X
)
=
−
∑
x
,
y
p
(
x
,
y
)
log
p
(
y
∣
x
)
=
−
∑
x
∑
y
p
(
y
∣
x
)
p
(
x
)
log
p
(
y
∣
x
)
=
−
∑
x
p
(
x
)
∑
y
p
(
y
∣
x
)
log
p
(
y
∣
x
)
=
∑
x
p
(
x
)
H
(
Y
∣
X
=
x
)
\begin{aligned} H(Y|X)&=-\sum_{x,\ y}p(x,y)\log p(y|x)\\ &=-\sum_x\sum_yp(y|x)p(x)\log p(y|x)\\ &=-\sum_x p(x)\sum_y p(y|x)\log p(y|x)\\ &=\sum_x p(x)H(Y|X=x) \end{aligned}
H(Y∣X)=−x, y∑p(x,y)logp(y∣x)=−x∑y∑p(y∣x)p(x)logp(y∣x)=−x∑p(x)y∑p(y∣x)logp(y∣x)=x∑p(x)H(Y∣X=x)证毕。
为什么要证明呢,主要目的是要熟练掌握概率公式、深入理解概率公式。
三. 交叉熵
详细请参考:https://blog.youkuaiyun.com/Hearthougan/article/details/77879784
假设有这样一个样本集,
p
p
p为它的真实分布,
q
q
q为它的估计分布。
- 如果按照真实分布 p p p 来度量表达一个样本的信息量,所需要的平均编码长度的期望为:(如果对编码长度不了解的,请看优秀博主的博文(我只是搬运工):http://blog.youkuaiyun.com/hearthougan/article/details/77774948) H ( p ) = − ∑ i p i log p i H(p)=-\sum_i p_i\log p_i H(p)=−i∑pilogpi这里是假设编码采用二叉树进行的。
- 如果使用估计的分布 q q q 计算来自真实分布 p p p 的平均编码长度,则每一个随机变量的信息量为 − log q i -\log q_i −logqi,而我们编码的样本的真实的分布是 p p p,因此花费的平均编码长度: H ( p , q ) = − ∑ i p i log q i H(p,q)=-\sum_i p_i\log q_i H(p,q)=−i∑pilogqi这就是交叉熵的定义,有 p p p有 q q q,所以是交叉。交叉熵可以这么理解:用估计的分布对来自真实分布的样本进行编码所需要的平均长度。
根据吉布斯不等式,交叉熵要大于等于真实分布的信息熵(最优编码),集体描述为:对于样本服从分布 P = { p 1 , p 2 , ⋯   , p n } P=\{p_1,p_2,\cdots,p_n\} P={p1,p2,⋯,pn},其他任何一个概率分布 Q = { q 1 , q 2 , ⋯   , q n } Q=\{q_1,q_2,\cdots,q_n\} Q={q1,q2,⋯,qn},都有 − ∑ i p i log p i ≤ − ∑ i p i log q i -\sum_i p_i\log p_i\leq -\sum_i p_i\log q_i −i∑pilogpi≤−i∑pilogqi,当且仅当 p i = q i , i = 1 , 2 , ⋯   , n p_i=q_i,i=1,2,\cdots,n pi=qi,i=1,2,⋯,n时,等号成立。
下面进行证明:
-
方法一:泰勒展开证明。我们知道, log a x \log_ax logax是凹函数,因为其二阶导函数 − 1 x 2 ln a < 0 -\frac{1}{x^2\ln a}<0 −x2lna1<0,因此其上每一点的切线都是全局上估计,即切线上的每一点的函数值都要大于等于该对数函数值,当且仅当在切点出函数值相等。因此对 log a x \log_ax logax在 x = 1 x=1 x=1点进行泰勒展开,就会有 log a x ≤ 1 ln a ( x − 1 ) \log_ax\leq\frac{1}{\ln a}(x-1) logax≤lna1(x−1)构造函数 F ( p , q ) F(p,q) F(p,q) F ( p , q ) = ∑ i p i log a ( p i q i ) = − ∑ i p i log a ( q i p i ) ≥ − 1 ln a ∑ i p i ( q i p i − 1 ) = 1 ln a ∑ i ( p i − q i ) = 1 ln a ( ∑ i p i − ∑ i q i ) = 0 \begin{aligned} F(p,q)&=\sum_i p_i\log_a\left(\frac{p_i}{q_i}\right)\\ &=-\sum_i p_i\log_a\left(\frac{q_i}{p_i}\right)\\ &\geq -\frac{1}{\ln a}\sum_i p_i\left(\frac{q_i}{p_i}-1\right)\\ &=\frac{1}{\ln a}\sum_i(p_i-q_i)\\ &=\frac{1}{\ln a}\left(\sum_i p_i-\sum_i q_i\right)\\ &=0 \end{aligned} F(p,q)=i∑piloga(qipi)=−i∑piloga(piqi)≥−lna1i∑pi(piqi−1)=lna1i∑(pi−qi)=lna1(i∑pi−i∑qi)=0故有 ∑ i p i log p i − ∑ i p i log q i ≥ 0 \sum_i p_i\log p_i-\sum_i p_i\log q_i\geq0 i∑pilogpi−i∑pilogqi≥0所以吉布斯不等式成立。
-
方法二:Jensen不等式。Jensen不等式是说,如果在凸集定义域内,如果 f ( x ) f(x) f(x)是凸函数,则有 E f ( x ) ≥ f ( E ( x ) ) {\rm E}f(x)\geq f\left({\rm E}(x)\right) Ef(x)≥f(E(x))这里我们不妨把 − log a x -\log_a x −logax看成是 x > 0 x>0 x>0时的凸函数。则有: E f ( q i p i ) = − ∑ i p i log a ( q i p i ) ≥ f ( E ( q i p i ) ) = − log a ( ∑ i p i ( q i p i ) ) = − log a ( ∑ i q i ) = 0 \begin{aligned}{\rm E}f\left(\frac{q_i}{p_i}\right)&=-\sum_i p_i \log_a\left(\frac{q_i}{p_i}\right)\\ &\geq f\left({\rm E}\left(\frac{q_i}{p_i}\right)\right)\\ &=-\log_a\left(\sum_i p_i\left(\frac{q_i}{p_i}\right)\right)\\ &=-\log_a\left(\sum_i q_i\right)\\ &=0 \end{aligned} Ef(piqi)=−i∑piloga(piqi)≥f(E(piqi))=−loga(i∑pi(piqi))=−loga(i∑qi)=0同样证明了吉布斯不等式的成立。
五. 相对熵(KL散度)
由交叉熵可知,用估计的概率分布所计算的交叉熵产生的编码长度,比基于真实分布所计算的信息熵的编码长,但是长多少呢?这个就需要另一个度量,相对熵,也称KL散度。
D
(
p
∣
∣
q
)
=
H
(
p
,
q
)
−
H
(
p
)
=
−
∑
i
=
1
n
p
i
log
(
q
i
)
−
(
−
∑
i
=
1
n
p
i
log
(
p
i
)
)
=
∑
i
=
1
n
p
i
log
p
i
q
i
D(p||q)=H(p,q)-H(p)=-\sum^n_{i=1}p_i\log(q_i)-\left(-\sum^n_{i=1}p_i\log(p_i)\right)=\sum^n_{i=1}p_i\log\frac{p_i}{q_i}
D(p∣∣q)=H(p,q)−H(p)=−i=1∑npilog(qi)−(−i=1∑npilog(pi))=i=1∑npilogqipi相对熵:用估计的概率分布
q
q
q 计算的交叉熵减去真实分布
p
p
p 的信息熵,含义为:用估计分布计算的平均编码长度比最短平均编码长度长多少。因此有:
交
叉
熵
=
信
息
熵
+
相
对
熵
交叉熵=信息熵+相对熵
交叉熵=信息熵+相对熵前面已经证明
D
(
p
∣
∣
q
)
=
∑
i
=
1
n
p
i
log
p
i
q
i
≥
0
D(p||q)=\sum^n_{i=1}p_i\log\frac{p_i}{q_i}\geq0
D(p∣∣q)=i=1∑npilogqipi≥0因此,相对熵始终是大于等于0的。
六. 互信息
两个随机变量
X
,
Y
X,Y
X,Y的互信息,定义为:
X
,
Y
X,Y
X,Y的联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)与边缘分布的乘积
P
(
X
)
P
(
Y
)
P(X)P(Y)
P(X)P(Y)的相对熵:
I
(
X
,
Y
)
=
D
(
P
(
X
,
Y
)
∣
∣
P
(
X
)
P
(
Y
)
)
=
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
p
(
y
)
\begin{aligned}I(X,Y)&=D\left(P(X,Y)||P(X)P(Y)\right)\\ &=\sum_{x,\ y}p(x,y)\log\frac{p(x,y)}{p(x)p(y)} \end{aligned}
I(X,Y)=D(P(X,Y)∣∣P(X)P(Y))=x, y∑p(x,y)logp(x)p(y)p(x,y)怎么看待呢?也就是用边缘分布乘积
P
(
X
)
P
(
Y
)
P(X)P(Y)
P(X)P(Y)的交叉熵,减去联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)的信息熵,就是互信息。
另外一种定义:
I
(
X
,
Y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
I(X,Y)=H(X)-H(X|Y)
I(X,Y)=H(X)−H(X∣Y)
下面证明两种定义等价:
I
(
X
,
Y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
=
H
(
X
)
+
H
(
Y
)
−
H
(
X
,
Y
)
=
∑
x
p
(
x
)
log
1
p
(
x
)
+
∑
y
p
(
y
)
log
1
p
(
y
)
+
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
=
∑
x
(
∑
y
p
(
x
,
y
)
)
log
1
p
(
x
)
+
∑
y
(
∑
x
p
(
x
,
y
)
)
log
1
p
(
y
)
+
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
=
∑
x
,
y
p
(
x
,
y
)
log
1
p
(
x
)
+
∑
x
,
y
p
(
x
,
y
)
log
1
p
(
y
)
+
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
=
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
p
(
y
)
\begin{aligned} I(X,Y)&=H(X)-H(X|Y)\\ &=H(X)+H(Y)-H(X,Y)\\ &=\sum_x p(x)\log\frac{1}{p(x)}+\sum_y p(y)\log\frac{1}{p(y)}+\sum_{x,\ y}p(x,y)\log p(x,y)\\ &=\sum_x\left(\sum_y p(x,y)\right)\log\frac{1}{p(x)}+\sum_y\left(\sum_x p(x,y)\right)\log\frac{1}{p(y)}+\sum_{x,\ y}p(x,y)\log p(x,y)\\ &=\sum_{x,\ y}p(x,y)\log\frac{1}{p(x)}+\sum_{x,\ y}p(x,y)\log\frac{1}{p(y)}+\sum_{x,\ y}p(x,y)\log p(x,y)\\ &=\sum_{x,\ y}p(x,y)\log\frac{p(x,y)}{p(x)p(y)} \end{aligned}
I(X,Y)=H(X)−H(X∣Y)=H(X)+H(Y)−H(X,Y)=x∑p(x)logp(x)1+y∑p(y)logp(y)1+x, y∑p(x,y)logp(x,y)=x∑(y∑p(x,y))logp(x)1+y∑(x∑p(x,y))logp(y)1+x, y∑p(x,y)logp(x,y)=x, y∑p(x,y)logp(x)1+x, y∑p(x,y)logp(y)1+x, y∑p(x,y)logp(x,y)=x, y∑p(x,y)logp(x)p(y)p(x,y)