机器学习常用的熵
熵
关于信息量、信息熵可以参考我的这篇文章https://blog.csdn.net/blank_tj/article/details/82056413
信息量:
I(x)=−log2 p(x)
I
(
x
)
=
−
l
o
g
2
p
(
x
)
<script type="math/tex" id="MathJax-Element-1150">I(x) = - log_2\ p(x)</script>
我们把这个公式叫做信息量的公式,前面的负号确保了信息一定是正数或者是0(低概率事件带来高的信息量)。
底是2的时候,单位为bit。底是e的时候,单位为nat。
联合信息量:
I(xi,yi)=−log p(xi,yi)
I
(
x
i
,
y
i
)
=
−
l
o
g
p
(
x
i
,
y
i
)
<script type="math/tex" id="MathJax-Element-1151">I(x_i,y_i) = -log\ p(x_i,y_i)</script>
条件信息量:
I(yi|xi)=−log p(yi|xi)
I
(
y
i
|
x
i
)
=
−
l
o
g
p
(
y
i
|
x
i
)
<script type="math/tex" id="MathJax-Element-1152">I(y_i|x_i) = - log\ p(y_i|x_i)</script>
信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。
信息熵公式:
H(x)=−∑p(x)log2 p(x)
H
(
x
)
=
−
∑
p
(
x
)
l
o
g
2
p
(
x
)
<script type="math/tex" id="MathJax-Element-1153">H(x) = -\sum p(x)log_2\ p(x)</script>
复合熵(联合熵):
H(x,y)=−∑ni=1∑mj=1p(xi,yj)log p(xi,yj)
H
(
x
,
y
)
=
−
∑
i
=
1
n
∑
j
=
1
m
p
(
x
i
,
y
j
)
l
o
g
p
(
x
i
,
y
j
)
<script type="math/tex" id="MathJax-Element-1154">H(x,y) = -\sum^n_{i=1}\sum^m_{j=1}p(x_i,y_j)log\ p(x_i,y_j)</script>
也可以推广到更多维度,同理。
条件熵:
H(x,y)=−∑ni=1∑mj=1p(yj)p(xi|yj)log p(xi|yj)
H
(
x
,
y
)
=
−
∑
i
=
1
n
∑
j
=
1
m
p
(
y
j
)
p
(
x
i
|
y
j
)
l
o
g
p
(
x
i
|
y
j
)
<script type="math/tex" id="MathJax-Element-1155">H(x,y) = -\sum^n_{i=1}\sum^m_{j=1}p(y_j)p(x_i|y_j)log\ p(x_i|y_j)</script> 离散型
H(x,y)=−∬f(y)f(x|y)log(x|y)dxdy H ( x , y ) = − ∬ f ( y ) f ( x | y ) l o g ( x | y ) d x d y <script type="math/tex" id="MathJax-Element-1156">H(x,y) = -\iint f(y)f(x|y)log(x|y)dxdy</script> 连续型
当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到的时候,所对应的熵与条件熵分别称为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)。
上面的式子表明,只要你能够得到联合分布和y的分布就能够求出条件熵了。事实上,还能够更加简化成为常见的形式:
这里利用上面的公式(以离散型为例子)直接推导,有
H(x|y)=H(x,y)−H(y)
H
(
x
|
y
)
=
H
(
x
,
y
)
−
H
(
y
)
<script type="math/tex" id="MathJax-Element-1157">H(x|y) = H(x,y) - H(y)</script>
同理:
H(y|x)=H(x,y)−H(x)
H
(
y
|
x
)
=
H
(
x
,
y
)
−
H
(
x
)
<script type="math/tex" id="MathJax-Element-1158">H(y|x) = H(x,y) - H(x)</script>
合并上式得:
H(y|x)+H(x)=H(x,y)=H(x|y)+H(y)
H
(
y
|
x
)
+
H
(
x
)
=
H
(
x
,
y
)
=
H
(
x
|
y
)
+
H
(
y
)
<script type="math/tex" id="MathJax-Element-1159">H(y|x) +H(x) = H(x,y) = H(x|y) + H(y)</script>
相对熵
相对熵又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度(即KL散度)等。
设p(x)和q(x)是取值的两个概率分布,则p对q的相对熵为:
D(p||q)=∑xp(x)logp(x)q(x)=Ep(x)(logp(x)q(x))
D
(
p
|
|
q
)
=
∑
x
p
(
x
)
l
o
g
p
(
x
)
q
(
x
)
=
E
p
(
x
)
(
l
o
g
p
(
x
)
q
(
x
)
)
<script type="math/tex" id="MathJax-Element-1261">D(p||q) = \sum_x p(x)log\frac{p(x)}{q(x)} = E_{p(x)}(log\frac{p(x)}{q(x)})</script>
在一定程度上面,相对熵可以度量两个随机变量的距离。当两个随机分布相同的时候,他们的相对熵为0,当两个随机分布的差别增大的时候,他们之间的相对熵也会增大。 但是事实上面,他并不是一个真正的距离。因为相对熵是不具有对称性的,而且都不为负。
D(p||q)≠D(q||p)
D
(
p
|
|
q
)
≠
D
(
q
|
|
p
)
<script type="math/tex" id="MathJax-Element-1262">D(p||q) \neq D(q||p)</script>
D(p||q)≥0,D(q||p)≥0
D
(
p
|
|
q
)
≥
0
,
D
(
q
|
|
p
)
≥
0
<script type="math/tex" id="MathJax-Element-1263">D(p||q) \ge 0, D(q||p) \ge 0</script>
互信息
互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不确定性。
I(X,Y)=D(P(X<Y)||P(X)P(Y)) =∑x,yp(x,y)logp(x,y)p(x)p(y)
I
(
X
,
Y
)
=
D
(
P
(
X
<
Y
)
|
|
P
(
X
)
P
(
Y
)
)
=
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
p
(
x
)
p
(
y
)
<script type="math/tex" id="MathJax-Element-1599">I(X,Y) = D(P(X
H(X)−I(X,Y)=−∑xp(x)log p(x)−∑x,yp(x,y)logp(x,y)p(x)p(y)=−∑x(∑yp(x,y))log p(x)−∑x,yp(x,y)logp(x,y)p(x)p(y)=−∑x,yp(x,y)log p(x)−∑x,yp(x,y)logp(x,y)p(x)p(y)=−∑x,y(log p(x)∗p(x,y)p(x)p(y))=−∑x,yp(x,y)logp(x,y)p(y)=−∑x,yp(x,y)log p(x|y)=H(X|Y)
H
(
X
)
−
I
(
X
,
Y
)
=
−
∑
x
p
(
x
)
l
o
g
p
(
x
)
−
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
p
(
x
)
p
(
y
)
=
−
∑
x
(
∑
y
p
(
x
,
y
)
)
l
o
g
p
(
x
)
−
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
p
(
x
)
p
(
y
)
=
−
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
)
−
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
p
(
x
)
p
(
y
)
=
−
∑
x
,
y
(
l
o
g
p
(
x
)
∗
p
(
x
,
y
)
p
(
x
)
p
(
y
)
)
=
−
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
p
(
y
)
=
−
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
|
y
)
=
H
(
X
|
Y
)
<script type="math/tex" id="MathJax-Element-1600">H(X) - I(X,Y)\\=-\sum_x p(x)log\ p(x) - \sum_{x,y}p(x,y)log\frac{p(x,y)}{p(x)p(y)}\\=-\sum_x(\sum_yp(x,y))log\ p(x)-\sum_{x,y}p(x,y)log\frac{p(x,y)}{p(x)p(y)}\\=-\sum_{x,y}p(x,y)log\ p(x) - \sum_{x,y} p(x,y)log\frac {p(x,y)}{p(x)p(y)}\\=-\sum_{x,y}(log\ p(x)*\frac{p(x,y)}{p(x)p(y)}) \\= -\sum_{x,y}p(x,y)log\frac{p(x,y)}{p(y)}\\=-\sum_{x,y} p(x,y)log\ p(x|y)\\=H(X|Y)</script> 从这个公式可以知道,X的熵减去X和Y的互信息之后,可以得到在Y给定的情况下X的熵。
所以:
H(X|Y)=H(X)−I(X,Y)I(X,Y)=H(X)−H(X|Y)
H
(
X
|
Y
)
=
H
(
X
)
−
I
(
X
,
Y
)
I
(
X
,
Y
)
=
H
(
X
)
−
H
(
X
|
Y
)
<script type="math/tex" id="MathJax-Element-1601">H(X|Y) = H(X)-I(X,Y)\\I(X,Y) = H(X)-H(X|Y)</script>
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)