1. 信息量
相关概念:
对于一个事件:
- 小概率 – > 大的信息量
- 大概率 – > 小的信息量
- 多个独立事件的信息量计算可以直接相加
表达公式:
信息量的计算公式:
I ( x ) = l o g 2 ( 1 p ( x ) ) = − l o g 2 ( p ( x ) ) \begin{aligned} &I(x)=log_2(\frac{1}{p(x)})=-log_2(p(x)) \end{aligned} I(x)=log2(p(x)1)=−log2(p(x))
举例:
①均匀的硬币
事件 | 概率 | 信息量 |
---|---|---|
正面 | p ( h ) = 0.5 p(h)=0.5 p(h)=0.5 | I p ( h ) = l o g 2 ( 1 0.5 ) = 1 I_p(h)=log_2(\frac{1}{0.5})=1 Ip(h)=log2(0.51)=1 |
反面 | p ( t ) = 0.5 p(t)=0.5 p(t)=0.5 | I p ( t ) = l o g 2 ( 1 0.5 ) = 1 I_p(t)=log_2(\frac{1}{0.5})=1 Ip(t)=log2(0.51)=1 |
②不均匀的硬币
事件 | 概率 | 信息量 |
---|---|---|
正面 | q ( h ) = 0.2 q(h)=0.2 q(h)=0.2 | I q ( h ) = l o g 2 ( 1 0.2 ) = 2.32 I_q(h)=log_2(\frac{1}{0.2})=2.32 Iq(h)=log2(0.21)=2.32 |
反面 | q ( t ) = 0.8 q(t)=0.8 q(t)=0.8 | I q ( t ) = l o g 2 ( 1 0.8 ) = 0.32 I_q(t)=log_2(\frac{1}{0.8})=0.32 Iq(t)=log2(0.81)=0.32 |
2. 香农熵
熵的概念
:服从某一概率分布的平均信息量(期望),也是一种不确定度的计算方式。
香农熵的计算公式:
H ( p ) = ∑ p i I i p = ∑ p i l o g 2 ( 1 p i ) = − ∑ p i l o g 2 ( p i ) \begin{aligned} &H(p)=\sum{p_iI_i^p}=\sum {p_ilog_2(\frac{1}{p_i})=-\sum {p_ilog_2(p_i)}} \end{aligned} H(p)=∑piIip=∑pilog2(pi1)=−∑pilog2(pi)
举例:
①均匀的硬币 p ( h ) = 0.5 p(h)=0.5 p(h)=0.5, p ( t ) = 0.5 p(t)=0.5 p(t)=0.5
H ( p ) = p ( h ) l o g 2 1 p ( h ) + p ( t ) l o g 2 1 p ( t ) = 0.5 × 1 + 0.5 × 1 = 1 H(p)=p(h)log_2{\frac{1}{p(h)}}+p(t)log_2{\frac{1}{p(t)}} = 0.5×1+0.5×1=1 H(p)=p(h)log2p(h)1+p(t)log2p(t)1=0.5×1+0.5×1=1
②不均匀的硬币 q ( h ) = 0.2 q(h)=0.2 q(h)=0.2, q ( t ) = 0.8 q(t)=0.8 q(t)=0.8
H ( p ) = q ( h ) l o g 2 1 q ( h ) + q ( t ) l o g 2 1 q ( t ) = 0.2 × 2.32 + 0.8 × 0.32 = 0.72 H(p)=q(h)log_2{\frac{1}{q(h)}}+q(t)log_2{\frac{1}{q(t)}} = 0.2×2.32+0.8×0.32=0.72 H(p)=q(h)log2q(h)1+q(t)log2q(t)1=0.2×2.32+0.8×0.32=0.72
- -总结- -
对于一个概率分布:
- 概率分布越平均 – > 越随机 – > 熵越大
- 概率分布越聚拢 – > 越确定 – > 熵越小
3. 交叉熵
还是用上面的例子
一个均匀硬币:
真实概率(ground truth probability):
p
(
h
)
=
0.5
,
p
(
t
)
=
0.5
p(h)=0.5,\ p(t)=0.5
p(h)=0.5, p(t)=0.5
估计概率(estimated probability):
q
(
h
)
=
0.2
,
q
(
t
)
=
0.8
\ \ q(h)=0.2,\ q(t)=0.8
q(h)=0.2, q(t)=0.8
给定估计概率分布 q q q,其真实概率分布 p p p的信息量的均值(期望)的估算如下:
H ( p , q ) = ∑ p i I i q = ∑ p i l o g 2 ( 1 q i ) = − ∑ p i l o g 2 ( q i ) \begin{aligned} &H(p,q)=\sum{p_iI_i^q}=\sum {p_ilog_2(\frac{1}{q_i})=-\sum {p_ilog_2(q_i)}} \end{aligned} H(p,q)=∑piIiq=∑pilog2(qi1)=−∑pilog2(qi)
- 使用期望 H ( p , q ) H(p,q) H(p,q)代替真实概率分布 p p p,因为数据根据真实概率分布出现
- 使用估计的概率分布 q q q来量化信息量 H ( p , q ) H(p,q) H(p,q)
解释:
在数据分布总是符合真实概率分布的情况下,期望值取代真实概率分布意味着我们在使用期望值来进行预测或计算,而不是直接使用真实的概率分布。这种情况在许多实际应用中非常常见,因为真实概率分布通常是未知的,我们只能基于观测数据进行估计。
根据交叉熵的计算公式,我通过举例两种情况来说明交叉熵的意义:
假如 q ( h ) = 0.2 , q ( t ) = 0.8 \ q(h)=0.2,\ q(t)=0.8 q(h)=0.2, q(t)=0.8,它与真实概率分布 p ( h ) = 0.5 , p ( t ) = 0.5 p(h)=0.5,\ p(t)=0.5 p(h)=0.5, p(t)=0.5,相差较大。计算交叉熵:
H ( p , q ) = p ( h ) l o g 2 1 q ( h ) + p ( t ) l o g 2 1 q ( t ) = 0.5 × 2.32 + 0.5 × 0.32 = 1.32 \begin{aligned} H(p,q)=p(h)log_2{\frac{1}{q(h)}}+p(t)log_2{\frac{1}{q(t)}} = 0.5×2.32+0.5×0.32=1.32 \end{aligned} H(p,q)=p(h)log2q(h)1+p(t)log2q(t)1=0.5×2.32+0.5×0.32=1.32
假如 q ( h ) = 0.4 , q ( t ) = 0.6 \ q(h)=0.4,\ q(t)=0.6 q(h)=0.4, q(t)=0.6,它与真实概率分布 p ( h ) = 0.5 , p ( t ) = 0.5 p(h)=0.5,\ p(t)=0.5 p(h)=0.5, p(t)=0.5,相差较小。计算交叉熵:
H ( p , q ) = p ( h ) l o g 2 1 q ( h ) + p ( t ) l o g 2 1 q ( t ) = 0.5 × 1.32 + 0.5 × 0.74 = 1.03 \begin{aligned} H(p,q)=p(h)log_2{\frac{1}{q(h)}}+p(t)log_2{\frac{1}{q(t)}} = 0.5×1.32+0.5×0.74=1.03 \end{aligned} H(p,q)=p(h)log2q(h)1+p(t)log2q(t)1=0.5×1.32+0.5×0.74=1.03
其中,1.03相比于1.32更接近1。从上面两种情况可以得出,估计概率与真实概率相差越大,其交叉熵越偏离真实的 H ( p ) ( = 1 ) H(p)(=1) H(p)(=1)
4. KL散度(Kullback-Leibler Divergence(Relative Entropy))
概念:一种计算两种不同概率分布的差距的量化方式,比如交叉熵和熵。
D ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) = ∑ p i I i q − ∑ p i I i p = ∑ p i l o g 2 ( 1 q i ) − ∑ p i l o g 2 ( 1 p i ) = ∑ p i l o g 2 ( p i q i ) \begin{aligned} D(p||q)&=H(p,q)-H(p) \\ &=\sum{p_iI_i^q}-\sum{p_iI_i^p} \\ &=\sum{p_ilog_2{(\frac{1}{q_i}})} - \sum{p_ilog_2{(\frac{1}{p_i}})} \\ & =\sum{p_ilog_2{(\frac{p_i}{q_i}})} \\ \end{aligned} D(p∣∣q)=H(p,q)−H(p)=∑piIiq−∑piIip=∑pilog2(qi1)−∑pilog2(pi1)=∑pilog2(qipi)
-
D ( p ∣ ∣ q ) ≥ 0 D(p||q)≥0 D(p∣∣q)≥0,当且仅当两个分布相同时, D ( p ∣ ∣ q ) = 0 D(p||q)=0 D(p∣∣q)=0;
-
D ( p ∣ ∣ q ) ≠ D ( q ∣ ∣ p ) D(p||q)≠D(q||p) D(p∣∣q)=D(q∣∣p),即不是一种距离度量;
-
有时,最小化KL散度等价于最小化交叉熵 ,例如, ∇ θ D ( p ∣ ∣ q θ ) = ∇ θ H ( p , q θ ) − ∇ θ H ( p ) = ∇ θ H ( p , q θ ) \nabla_\theta D(p||q_\theta)=\nabla_\theta H(p,q_\theta)-\nabla_\theta H(p)=\nabla_\theta H(p,q_\theta) ∇θD(p∣∣qθ)=∇θH(p,qθ)−∇θH(p)=∇θH(p,qθ)