ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

信息熵 交叉熵 KL散度

2022-02-15 01:03:24  阅读:187  来源: 互联网

标签:编码 log sum 散度 KL 信息熵 && rightarrow


信息量

事件A发生的信息量:

\[I(A) = -\log_2(P(A)) \]

这样定义有以下好处:

  • 概率越小的事件发生,带来的信息量就越大

  • 相互独立的事件A,B同时发生,信息量为A、B单独发生时信息量的和:

\[\begin{align} I(AB) =&& -\log_2(P(AB)) \\ =&& -\log_2(P(A)P(B)) \\ =&& -\log_2 P(A) -\log_2 P(B) \\ =&&I(A) + I(B) \end{align} \]

信息熵

信息熵就是信息量的期望。

设离散型随机变量X,则X的信息熵为:

\[H(X) = -E_X[log_2 p_i] = - \sum_i p_i \log_2 p_i \]

其中, \(p_i\) 是 \(X=x_i\)的概率。

可见,如果X的各种取值概率相近,则信息熵大,系统较为混乱。如果X基本只会取某一个值,则信息熵小,系统较为稳定。

交叉熵

假设有离散随机变量\(X \in \{x_1, x_2 ,\cdots, x_n\}\)。\(X\)满足分布\(p\)。

假设要对\(X\)的各种取值进行2进制编码。如可以这样编码:\(x_1 \rightarrow 0\), \(x_2 \rightarrow 10\), \(x_3 \rightarrow 11\) , 也可以这样编码 \(x_1 \rightarrow 11\), \(x_2 \rightarrow 00\), \(x_3 \rightarrow 01\) (但不允许编码重复或有歧义,例如,\(x_1 \rightarrow 0\), \(x_2 \rightarrow 1\), \(x_3 \rightarrow 01\) 是不允许的,因为不能区分 \(x_3\) 和 \(x_1 x_2\)),

交叉熵就是某一编码需要的平均比特数。

\[H(p, q) = \sum_i p_i l_i \]

其中,\(l_i\)是取值\(x_i\)的编码长度(比特数)(例如,编码\(x_1 \rightarrow 0\), \(x_2 \rightarrow 10\), \(x_3 \rightarrow 11\) 对应 \(l_1 = 1, l_2 = 2, l_3 = 2\))。

其实,每个编码都对应一个最优分布\(q\),分布\(q\)使用该编码是最省比特的。可以证明,这个分布是:

\[q(x_i) = (1/2)^{l_i} \]

例如,编码\(x_1 \rightarrow 0\), \(x_2 \rightarrow 10\), \(x_3 \rightarrow 11\)对应的最优分布是:

\[p_1=1/2 \\ p_2=1/4 \\ p_3=1/4 \]

这样算出来的交叉熵:

\[H_1 = 1/2 + 1/4 * 2 + 1/4 * 2 = 1.5 \]

和信息熵:

\[H_2 = - \frac{1}{2} \log_2 \frac{1}{2} - \frac{1}{4} \log_2 \frac{1}{4} - \frac{1}{4} \log_2 \frac{1}{4} = 1.5 \]

恰好相等。事实上,信息熵是交叉熵的下界。不论用什么编码方法(作弊除外),永远无法将平均编码长度降低到信息熵以下,最优情况就是相等。而交叉熵超过信息熵的部分,称为KL散度

由于每个编码都对应一个分布q,我们也可以将交叉熵定义为真实分布\(p\)和编码分布\(q\)之间的关系:

\[\begin{align} H(p, q) =&& \sum_i p_i l_i \\ =&& \sum_i p_i \log_{\frac{1}{2}} q_i \\ =&& - \sum_i p_i \log_{2} q_i \end{align} \]

表示用q分布对应的编码编码p分布时所需的平均比特数。

KL散度

如前所述,KL散度等于交叉熵减信息熵:

\[\begin{align} D_{KL} (p || q) =&& - \sum_i p_i \log_{2} q_i -(- \sum_i p_i \log_2 p_i) \\ =&& \sum_i p_i \log_{2} \frac{p_i} {q_i} \end{align} \]

也就是实际编码相对于理论最优编码多用的比特数。也可以用来衡量p分布和q分布的相似程度。注意KL散度是不满足交换律的。

标签:编码,log,sum,散度,KL,信息熵,&&,rightarrow
来源: https://www.cnblogs.com/BinarySong/p/15894805.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有