信息
自信息
如果一句话发生的概率很大,那么它蕴含的信息就越少。例如:A知道B很有可能来,然后C对A说了一句:B很有可能来,这个是没有多大的意义的。但是,如果C对A说,不知道B会不会来,则这句话带来的信息量是比较高的。如果要用数学公式来衡量信息,它需要满足一下的条件:
- 非负性
- 这个函数得是单调递减函数:事情发生的概率越大,则蕴含的不确定性就越小,则信息量就越小。
- 当事情发生的概率是1时,信息量为0,当事情发生的概率是0时,信息量为无穷大。
- 两个独立事件的信息量之和应该可以表示为他们分别的信息量相加。
于是有了信息量公式:
I ( x ) = − log 2 p ( x ) I(x) = -\log_2{p(x)} I(x)=−log2p(x)
如果觉得不好理解:想想概率为1时,自信息为0的例子。
联合自信息
如果有联合事件,则他们的联合自信息可以表示为:
I
(
x
y
)
=
−
log
p
(
x
y
)
I(xy) = -\log p(xy)
I(xy)=−logp(xy)
条件信息
I ( x ∣ y ) = − log p ( x ∣ y ) I(x|y) = -\log p(x|y) I(x∣y)=−logp(x∣y)
I ( x y ) = I ( x ) + I ( y ∣ x ) = I ( y ) + I ( x ∣ y ) I(xy) = I(x) + I(y|x) = I(y) + I(x|y) I(xy)=I(x)+I(y∣x)=I(y)+I(x∣y)
联合自信息 = 条件自信息+自信息
互信息
I ( x ; y ) = l o g p ( x ∣ y ) p ( x ) = I ( x ) − I ( x ∣ y ) I(x;y) = log{\frac{p(x|y)}{p(x)}} = I(x) - I(x|y) I(x;y)=logp(x)p(x∣y)=I(x)−I(x∣y)
I(X):表示X事件发生的不确定性
I(X|y) : 表示在y事件发生下,X事件发生的不确定性
I(x ; y) : 表示y发生后,X事件发生的不确定性的**变化量**
两个不确定度的差,是不确定度消除的部分,代表已确定的东西:即在y事件发生后,获得的关于X的信息量。
-
互易息:x对于y的互信息和y对于x的互信息是一样的。
-
当两个事件独立时,互信息为0,即I(x;y) = 0
-
互信息可正可负,若y的发生有利于x发生,提供了正值,反之为负值。比如一个题目有4个答案,告诉你其中A错了,那么提供了正信息。若告诉你其实是个多选题,那么提供了复信息。
-
任何两个事件的自信息不可能大于其中任一事情的自信息
熵
信息熵
离散信源X的熵定义为自信息的平均值,记为H(x)
通俗理解:某人对某件事情的不确定性叫熵。
H ( h ) = − ∑ x p ( x ) log p ( x ) H(h) = -\sum_xp(x)\log p(x) H(h)=−x∑p(x)logp(x)
所以提供的信息越多,则熵越小。信息是用来消除事物的不确定性的。
当一个事件中,所有的可能情况等概率发生时,熵达到了最大值。
条件熵
条件熵:联合集XY上,条件自信息I(y|x)的平均值
H
(
y
∣
x
)
=
E
p
(
x
y
)
[
I
(
y
∣
x
)
]
=
−
∑
x
∑
y
p
(
x
y
)
log
p
(
y
∣
x
)
=
∑
x
p
(
x
)
[
−
∑
y
p
(
y
∣
x
)
log
p
(
y
∣
x
)
]
=
∑
x
p
(
x
)
H
(
y
∣
x
)
H
(
y
∣
x
)
=
−
∑
y
p
(
y
∣
x
)
log
p
(
y
∣
x
)
:
为
x
取
特
定
值
时
Y
的
熵
\begin{aligned} H(y|x) &= \underset{p(xy)}{E}[I(y|x)] \\ &=-\sum_x\sum_yp(xy)\log p(y|x)\\ &=\sum_x p(x)[-\sum_yp(y|x)\log p(y|x)]\\ &=\sum_xp(x)H(y|x)\\ \end{aligned} \\ H(y|x) = -\sum_yp(y|x)\log p(y|x):为x取特定值时Y的熵
H(y∣x)=p(xy)E[I(y∣x)]=−x∑y∑p(xy)logp(y∣x)=x∑p(x)[−y∑p(y∣x)logp(y∣x)]=x∑p(x)H(y∣x)H(y∣x)=−y∑p(y∣x)logp(y∣x):为x取特定值时Y的熵
可以先求出在某个特定值时,Y的熵,再加权求和。
联合熵
联合熵:联合集XY上,对联合自信息I(xy)的平均值
H
(
x
y
)
=
E
p
(
x
y
)
[
I
(
x
y
)
]
=
−
∑
x
∑
y
p
(
x
y
)
log
p
(
x
y
)
\begin{aligned} H(xy) &=\underset{p(xy)}{E}[I(xy)] \\ &=-\sum_x\sum_y p(xy)\log p(xy) \end{aligned}
H(xy)=p(xy)E[I(xy)]=−x∑y∑p(xy)logp(xy)
交叉熵
H ( p , q ) = − ∑ x p ( x ) log 2 q ( x ) H(p,q) = -\sum_xp(x)\log_2q(x) H(p,q)=−x∑p(x)log2q(x)
KL散度/相对熵
D ( p / / q ) = = ∑ x p ( x ) log p ( x ) q ( x ) = ∑ x p ( x ) log [ p ( x ) − q ( x ) ] = − ∑ x p ( x ) log q ( x ) + ∑ x p ( x ) log p ( x ) = H ( p , q ) − H ( p ) = 交 叉 熵 − 熵 \begin{aligned} D(p //q) = &=\sum_xp(x)\log\frac{p(x)}{q(x)} \\ &=\sum_xp(x)\log[p(x)-q(x)]\\ &=-\sum_xp(x)\log q(x)+\sum_xp(x)\log p(x) \\ &= H(p,q) - H(p)=交叉熵-熵 \end{aligned} D(p//q)==x∑p(x)logq(x)p(x)=x∑p(x)log[p(x)−q(x)]=−x∑p(x)logq(x)+x∑p(x)logp(x)=H(p,q)−H(p)=交叉熵−熵
定理:如果在一个共同的有限字母表的概率空间上给定的两个概率测度P(X)和Q(X),则有:
D
(
P
/
/
Q
)
≥
0
D(P // Q) \ge 0
D(P//Q)≥0
当且仅当对所有X,P(X)=Q(X)等号成立。
−
D
(
P
/
/
Q
)
=
∑
x
P
(
x
)
log
Q
(
x
)
P
(
x
)
≤
log
[
∑
x
P
(
x
)
Q
(
x
)
P
(
x
)
]
≤
log
[
∑
x
Q
(
x
)
]
=
0
-D(P // Q) = \sum_x P(x)\log \frac {Q(x)}{P(x)} \le \log[\sum_x P(x) \frac{Q(x)}{P(x)}] \le \log[\sum_xQ(x)] =0
−D(P//Q)=x∑P(x)logP(x)Q(x)≤log[x∑P(x)P(x)Q(x)]≤log[x∑Q(x)]=0
这里用到了Jesen不等式,由此结论可以证明。
在机器学习中,虽然说相对熵更适合用来衡量预测分布与真实分布的差异,但往往真实分布是我们所不知道的,但可以确定这个真实分布与训练无关,即认为训练数据是从真实分布中独立同分布采样得到的,这时最小化相对熵等价于最小化交叉熵。因此机器学习往往用交叉熵作为损失函数,而不是用相对熵