参考资料:
《信息论基础与应用》
如何通俗的解释交叉熵与相对熵?
通俗理解信息熵
Note
信息: 对事物运动状态或存在方式不确定性的描述
数学语言中,不确定性就是随机性,具有不确定性的事件就是随机事件
消息用随机事件表示,发出这些消息的信源用随机变量表示。
自信息和互信息
1、自信息 (self-information)
I
(
x
i
)
=
−
log
p
(
x
i
)
=
log
1
p
(
x
i
)
I(x_{i} )=-\log p(x_{i})=\log\frac{1}{p(x_{i} )}
I(xi)=−logp(xi)=logp(xi)1
其中
I
(
x
i
)
I(x_{i} )
I(xi)有两种含义:
- 事件 x i x_{i} xi发生前,等于事件 x i x_{i} xi发生的不确定性的大小
- 事件 x i x_{i} xi发生后,表示事件 x i x_{i} xi包含或所能提供的信息量
自信息量的单位与所用对数的底有关:
- 对数的底为 2 2 2,信息量的单位为比特(bit, binary unit)
- 对数的底为 e e e,信息量的单位为奈特(nat, natural unit)
- 对数的底为 10 10 10,信息量的单位为哈特莱(Hartly)
- 如果取以 r r r为底的对数 ( r > 1 ) (r>1) (r>1),则 I ( x i ) = − log 2 p ( x i ) I(x_{i} )=-\log_{2}{p(x_{i})} I(xi)=−log2p(xi)( r r r进制单位)。
2、互信息 (Mutual Information)
定义: 一个事件
y
j
y_{j}
yj所给出的关于另一个事件
x
i
x_{i}
xi的信息,用
I
(
x
i
;
y
j
)
I(x_{i};y_{j})
I(xi;yj)表示。
I
(
x
i
;
y
j
)
=
I
(
x
i
)
−
I
(
x
i
∣
y
j
)
=
log
p
(
x
i
∣
y
j
)
p
(
x
i
)
I(x_{i};y_{j}) = I(x_{i} ) - I(x_{i} | y_{j})= \log\frac{p(x_{i} | y_{j})}{p(x_{i} )}
I(xi;yj)=I(xi)−I(xi∣yj)=logp(xi)p(xi∣yj)
互信息表示的是,已知事件
y
j
y_{j}
yj后消除的关于
x
i
x_{i}
xi的不确定性。
平均自信息
- 用来表示整个信源的不确定度,又称为信息熵、信源熵,简称熵。
- 信息熵只会减少不会增加
- 信息熵衡量了系统的不确定性,而我们要消除这个不确定性,所要付出的最小努力(猜题次数、编码长度等)的大小就是信息熵。
H ( x ) = − ∑ i = 1 q p ( x i ) log x i H(x)=-\sum_{i=1}^{q} p(x_{i}) \log{x_{i}} H(x)=−i=1∑qp(xi)logxi
信息熵为什么采取负对数( − log p k ) -\log{p_{k}}) −logpk)形式?
由以下条件可推导:
- 越小概率的事情发生了产生的信息量越大
- 越大概率的事情发生了产生的信息量越小
- 具体事件的信息量应该是随着其发生概率而递减的,且不能为负
- 两个事件同时发生时获得的信息应该等于观察到的事件各自发生时获得的信息之和
联合熵
- 联合自信息的数学期望
- 二维随机变量 X Y XY XY的不确定性的度量
公式化描述:
H
(
X
Y
)
=
∑
i
=
1
n
∑
j
=
1
m
p
(
x
i
y
j
)
I
(
x
i
y
j
)
=
−
∑
i
=
1
n
∑
j
=
1
m
p
(
x
i
y
j
)
log
(
x
i
y
j
)
\begin{aligned} H(XY)&=\sum_{i=1}^{n} \sum_{j=1}^{m} p(x_{i}y_{j})I(x_{i}y_{j}) \\ &=-\sum_{i=1}^{n} \sum_{j=1}^{m} p(x_{i}y_{j})\log{(x_{i}y_{j})} \end{aligned}
H(XY)=i=1∑nj=1∑mp(xiyj)I(xiyj)=−i=1∑nj=1∑mp(xiyj)log(xiyj)
条件熵
- 不同的 x i x_{i} xi对应的 H ( Y ∣ x i ) H(Y|x_{i}) H(Y∣xi)是变化的。对 H ( Y ∣ x i ) H(Y|x_{i}) H(Y∣xi)的所有可能值进行统计平均 ,就可以得出给定 X X X时 Y Y Y的条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X)
公式化描述:
H ( Y ∣ X ) = ∑ i p ( x i ) H ( Y ∣ x i ) = − ∑ i ∑ j p ( x i ) p ( y j ∣ x i ) log p ( y j ∣ x i ) = − ∑ i ∑ j p ( x i y j ) log p ( y j ∣ x i ) \begin{aligned} H(Y|X)&=\sum_{i}p(x_{i})H(Y|x_{i}) \\&= -\sum_{i} \sum_{j} p(x_{i})p(y_{j}|x_{i})\log{p(y_{j}|x_{i})} \\&= -\sum_{i} \sum_{j} p(x_{i}y_{j})\log{p(y_{j}|x_{i})} \end{aligned} H(Y∣X)=i∑p(xi)H(Y∣xi)=−i∑j∑p(xi)p(yj∣xi)logp(yj∣xi)=−i∑j∑p(xiyj)logp(yj∣xi)
其中, H ( Y ∣ X ) H(Y|X) H(Y∣X)表示已知X时,Y的条件熵
注: H ( Y ∣ x i ) = p ( y j ∣ x i ) log p ( y j ∣ x i ) H(Y|x_{i}) =p(y_{j}|x_{i})\log{p(y_{j}|x_{i})} H(Y∣xi)=p(yj∣xi)logp(yj∣xi)
交叉熵
- 其用来衡量在给定的真实分布下,使用 非真实分布所指定的策略 消除系统的不确定性所需要付出的努力的大小。
公式:
∑
k
=
1
N
p
k
log
2
1
q
k
\sum_{k=1}^{N}p_{k} \log_{2}{\frac{1}{q_{k} } }
k=1∑Npklog2qk1
其中 p k p_{k} pk为真实分布, q k q_{k} qk表示非真实分布。
交叉熵越低,算法产生的策略越接近最优策略,这个算法就越好。
(个人认为这是损失函数多使用交叉熵的原因)
相对熵(KL散度)
- 用来衡量两个取值为正的函数或概率分布之间的差异
- 相对熵 = 某个策略的交叉熵 - 根据系统真实分布计算而得的信息熵(即最优策略)
∑ k = 1 N p k log 2 p k q k \sum_{k=1}^{N}p_{k} \log_{2}{\frac{p_{k}}{q_{k} } } k=1∑Npklog2qkpk