1、问题描述
在读李航的《统计机器学习》第六章最大熵模型时看到一个矛盾的地方:
关于熵的描述:
H ( P ) = − ∑ i n P ( x i ) l o g P ( x i ) H(P)=-\sum_{i}^{n}P(x_i)logP(x_i) H(P)=−i∑nP(xi)logP(xi)
而定义在条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)上的条件熵又写为:
H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) H(P)=-\sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x) H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)
但是按照我的理解应该写为:
H ( P ) = − ∑ x , y P ( y ∣ x ) l o g P ( y ∣ x ) H(P)=-\sum_{x,y}P(y|x)logP(y|x) H(P)=−x,y∑P(y∣x)logP(y∣x)
感觉书本上的公式多了个 P ~ ( x ) \tilde{P}(x) P~(x)项。查阅资料发现我还是太浅薄了哈哈 数学不行,没有真正理解 H ( P ) H(P) H(P)的含义。
2、公式推导
条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X)表示在已知随机变量 X X X的条件下随机变量 Y Y Y的不确定性。条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X)定义为 X X X给定条件下 Y Y Y的条件概率分布的熵对 X X X的数学期望:
H ( Y ∣ X ) = ∑ x p ( x ) H ( Y ∣ X = x ) = − ∑ x p ( x ) ∑ y p ( y ∣ x ) l o g p ( y ∣ x ) = − ∑ x ∑ y p ( x ) p ( y ∣ x ) l o g p ( y ∣ x ) = − ∑ x , y p ( x ) p ( y ∣ x ) l o g p ( y ∣ x ) = − ∑ x , y p ( x , y ) l o g p ( y ∣ x ) H(Y|X)=\sum_{x}p(x)H(Y|X=x) \\=-\sum_{x}p(x)\sum_{y}p(y|x)logp(y|x) \\=-\sum_{x}\sum_{y}p(x)p(y|x)logp(y|x) \\=-\sum_{x,y}p(x)p(y|x)logp(y|x) \\=-\sum_{x,y}p(x,y)logp(y|x) H(Y∣X)=x∑p(x)H(Y∣X=x)=−x∑p(x)y∑p(y∣x)logp(y∣x)=−x∑y∑p(x)p(y∣x)logp(y∣x)=−x,y∑p(x)p(y∣x)logp(y∣x)=−x,y∑p(x,y)logp(y∣x)
其实化简到倒数第二步已经和书本上一样了,最后一步是因为
p
(
y
∣
x
)
p
(
x
)
=
p
(
x
,
y
)
p(y|x)p(x)=p(x,y)
p(y∣x)p(x)=p(x,y).
重要的是要理解
H
(
Y
∣
X
)
=
∑
x
p
(
x
)
H
(
Y
∣
X
=
x
)
H(Y|X)=\sum_{x}p(x)H(Y|X=x)
H(Y∣X)=∑xp(x)H(Y∣X=x)