CaptainChen

信息熵,相对熵,交叉熵的理解

2017-05-02 918 words (about 5 min read) Views
Math

1. 香农信息量

信息量可以理解为不确定性的多少。

香农信息量 =log1p=logp=log \frac{1}{p}=-logp (以 2 为底)

上式中,p 越小,则不确定性越大,包含的信息量就越多。比如 32 支球队,在无任何先验信息的前提下,用二分法猜冠军队伍,最多猜 5 次,也就是 log132=5log {1\over32}=5

香农信息量的单位是比特 (bit)。

2. 信息熵 (Entropy)

信息熵:香农信息量的期望

H(X)=xXp(x)logp(x)H(X) = -\sum_{x\in X}p(x)log p(x )

信息熵的一种解释是,它表示的是最短的平均编码长度。

同样的,不确定性越大,熵就越大。

3. 相对熵(Relative Enrtopy)

又叫 KL 散度(Kullback-Leibler Divergence)

KL(f(x)g(X))=xXf(x)logf(x)g(x)KL(f(x)||g(X))=\sum_{x \in X}f(x)\cdot log{f(x) \over g(x)}

它用来衡量两个数值为正数的函数的相似性。

很容易证明,有三个结论:

(1) 两函数完全相同时,KL=0
(2) KL越大,差异越大
(3) 对概率分布或者概率密度函数 (>0), KL 可用来衡量两个随机变量分布的差异性

注意,KL 散度是不对称的,因此琴生和香农提出以下计算方法:

JS(f(x)g(x))=12[KL(f(x)g(x)+KL(g(x)f(x)))]JS(f(x)||g(x))=\frac{1}{2}[KL(f(x)||g(x)+KL(g(x)||f(x)))]

4. 交叉熵 (Cross-Entropy)

对一随机事件,其真实概率分布为 p(i)p(i),从数据中得到的概率分布为 q(i)q(i),则我们定义,交叉熵为:

H(p,q)=_ip(i)1logq(i)=ip(i)logq(i)H(p,q)= \sum\_{i}p(i)\frac{1}{logq(i)}=-\sum_{i}p(i)log{q(i)}

理解:

我们用 p 来衡量识别一个样本的信息量,也就是最小编码长度:H(p)=plog1pH(p)=\sum p log{1 \over p}

我们用 q 来估计真实分布为p的样本的信息量:H(p,q)=plog1qH(p,q)=\sum p log \frac{1}{q}

则估算多出来的冗余信息量D(pq)=H(p,q)H(p)=plogpqD(p||q)=H(p,q)-H(p)=\sum p log{p \over q}(正好就是KL散度啊)

在机器学习中,p 通常设定为真实标记的分布,q 设定为训练后模型预测标记的分布。

很容易发现:

H(p,q)=H(p)+DKL(pq)H(p,q)=H(p)+D_{KL}(p||q)

即:交叉熵=信息熵+KL散度(相对熵)

由于信息熵 H(p)H(p) 是固定不变的,因此我们在机器学习中就用交叉熵作为损失函数。常见的做法是先用 Softmax 函数将神经网络的结果转换为概率分布,然后用交叉熵刻画估算的概率分布与真实的概率分布的“距离”。

显然,H(p,q)H(p)H(p,q) \ge H(p)

可由吉布斯不等式证明得到:

x>0时,有lnxx1lnx \le x-1
因此,plogpq=plogqpp(qp1)=0\sum p log {p \over q}=-\sum p log{q \over p} \ge -\sum p({q \over p} -1)=0
等号当且仅当在 p 和 q 分布完全一致时成立 (pi=qip_i=q_i)


参考资料:

《数学之美--吴军》

Wikipedia: Information theory

Wikipedia: Cross entropy

Wikipedia: Gibbs's inequality

如果你这里看到有广告,不妨点击一下,就是对本站最大的支持~



本文由 CaptainChen 创作
该文章采用 知识共享署名-非商业性使用 4.0 国际许可协议进行许可。转载请注明出处!
CopyRight © 2017 - 2020
本站已稳定运行 天 总访问量