一个简单的理解
熵
随机事件的不确定性度量,也是衡量分布内样本x所需要的信息编码长度,熵越大,不确定性越大。
H ( P ) = Σ P ( x ) l o g 1 P ( x ) H(P) = ΣP(x)log\frac{1}{P(x)} H(P)=ΣP(x)logP(x)1
交叉熵
用其他分布Q衡量分布P内样本所需要的信息编码长度。H(P,Q) >= H§
H
(
P
,
Q
)
=
Σ
P
(
x
)
l
o
g
1
Q
(
x
)
H(P,Q) = ΣP(x)log\frac{1}{Q(x)}
H(P,Q)=ΣP(x)logQ(x)1
相对熵 A.K.A. KL散度
用其他分布Q衡量分布P内样本所需要信息编码长度 与 用分布P衡量分布P内样本所需要信息编码长度的 差值。
这个值越大意味着分布越相似,但是D(P,Q)和D(Q,P)未必相等(非对称),D总是大于0(H(P,Q) >= H(P ) , 用Q描述P肯定不可能比用P自己描述自己好)。
D
(
P
∣
∣
Q
)
=
H
(
P
,
Q
)
−
H
(
P
)
=
Σ
P
(
x
)
l
o
g
P
(
x
)
Q
(
x
)
D(P || Q) = H(P,Q) - H(P) \\ = Σ P(x) log \frac{P(x)}{Q(x)}
D(P∣∣Q)=H(P,Q)−H(P)=ΣP(x)logQ(x)P(x)
也存在一个问题,就是只有P(x)大的时候P和Q分布差异大对KL值的影响比较明显,当P(x)值本身就小的情况,Q(x)的影响就很小了。
JS散度
解决了KL散度不对称的问题,一定程度也解决了只有P(x)大的时候P和Q分布差异大对KL值的影响比较明显问题。
取值范围在[0,log2],P和Q相同时取值为0,相反时取值为1。
J S ( P ∣ ∣ Q ) = J S ( Q ∣ ∣ P ) = 1 2 K L ( P ( X ) ∣ ∣ P ( X ) + Q ( X ) 2 ) + 1 2 K L ( Q ( X ) ∣ ∣ P ( X ) + Q ( X ) 2 ) JS(P || Q) = JS(Q || P) = \\ \frac{1}{2} KL(P(X) || \frac{P(X) + Q(X)}{2}) + \frac{1}{2} KL(Q(X) || \frac{P(X) + Q(X)}{2}) JS(P∣∣Q)=JS(Q∣∣P)=21KL(P(X)∣∣2P(X)+Q(X))+21KL(Q(X)∣∣2P(X)+Q(X))
** 分布P和Q距离非常远时候,KL=0, JS=常数 ==> 梯度为0 **
互信息
I ( X ; Y ) = D K L ( P ( X , Y ) ∣ ∣ P ( X ) P ( Y ) ) I(X;Y) = D_{KL}(P(X,Y) || P(X)P(Y)) I(X;Y)=DKL(P(X,Y)∣∣P(X)P(Y))