KL散度&互信息
KL散度(KL divergence)
假设我们是一组正在广袤无垠的太空中进行研究的科学家。我们发现了一些太空蠕虫,这些太空蠕虫的牙齿数量各不相同。现在我们需要将这些信息发回地球。但从太空向地球发送信息的成本很高,所以我们需要用尽量少的数据表达这些信息。我们有个好方法:我们不发送单个数值,而是绘制一张图表,其中 X 轴表示所观察到的不同牙齿数量(0,1,2…),Y 轴是看到的太空蠕虫具有 x 颗牙齿的概率(即具有 x 颗牙齿的蠕虫数量/蠕虫总数量)。这样,我们就将观察结果转换成了分布。
发送分布比发送每只蠕虫的信息更高效。但我们还能进一步压缩数据大小。我们可以用一个已知的分布来表示这个分布(比如均匀分布、二项分布、正态分布)。举个例子,假如我们用均匀分布来表示真实分布,我们只需要发送两段数据就能恢复真实数据;均匀概率和蠕虫数量。但我们怎样才能知道哪种分布能更好地解释真实分布呢?这就是 KL 散度的用武之地。
直观解释:KL 散度是一种衡量两个分布(比如两条线)之间的匹配程度的方法。
对于某个未知的分布\(p(x)\),我们用\(q(x)\)进行建模并且传递信息,为了衡量这两个分布是否匹配,我们用附加信息量的期望表示。附加信息量在这里结尾处有介绍。
\[
\begin{align}
KL(p||q)&= -\int p(x)\ln q(x)\, dx-\left (-\int p(x)\ln p(x)\,dx\right)\nonumber \&= -\int p(x)\ln \left(\frac{q(x)}{p(x)}\right)\nonumber
\end{align}
\]
KL散度又称相对熵,表示用\(q(x)\)去表示\(p(x)\)时需要的附加信息量。
KL散度的性质
KL散度不是一个对称量,即:\(KL(p||q) \neq KL(q||p)\)。
并且\(KL(p||q) \geq 0\),并且只在两个分布相同时值可以取0。证明:
对于凸函数\(f(x)\),有Jensen不等式:
\[
f(\sum_{i=1}^M\lambda_i x_i) \leq \sum_{i=1}^M\lambda_if(x_i), \mathrm{ s.t.}\lambda_i \geq 0\, and \sum_i\lambda_i =1
\]
若把\(\lambda_i\)看作取值\(x_i\)的概率,那么我们可以写成:
\[
f(E(x)) \leq E(f(x))
\]
对于连续变量:
\[
f\left(\int xp(x)\, dx\right)\leq \int f(x)p(x)\,dx
\]
延伸一下:
\[
f(E[\xi(x)]) \leq E[f(\xi(x))]
\]
那么由于\(-\ln x\)是凸函数,\(\xi(x)=\frac{q(x)}{p(x)}\):
\[
\begin{align}
KL&=-\int p(x)\ln \left(\frac{q(x)}{p(x)}\right)\nonumber \& \geq -\ln \left( \int \xi(x) q(x)\,dx \right)\nonumber \&=-\ln \left( \int q(x)\,dx \right) = 0\nonumber
\end{align}
\]
并且由于\(-\ln x\)是严格凸函数,只有在\(q(x)=p(x)\)时等号成立。
数据压缩和密度估计有某种隐含的关系。对于某一分布\(p(x)\),如果我们知道真实的分布,那么我们可以给出最有效率的数据压缩并进行传输。若我们使用了其他的分布进行信息传输,那么一定会损失编码效率,传输效率降低,并且要额外传输的信息量至少为两者之间的KL散度。
在实际训练中,我们并不能得知真实的分布,所以只能用有限的数据加和得到其期望,此时KL散度近似为:
\[
KL(p||q) \simeq \frac{1}{N} \sum_{n=1}^N (-\ln q(x_n|\theta) +\ln p(x_n))
\]
公式右侧第二项与\(\theta\)无关,第一项为其负对数似然函数。由此可见最小化KL散度就是最大化似然函数。
互信息(mutual information)
对于\(p(x,y)\),给出两个变量组成的数据集。若两变量相互独立,那么\(p(x,y)=p(x)p(y)\)。若两变量不独立,那么我们要考察联合概率分布和边缘概率分布的KL散度,以判断两者是否接近独立。
我们称之为互信息:
\[
\begin{align}
I(x,y) &= KL[p(x,y)||p(x)p(y)] \nonumber \&= -\iint p(x,y)\frac{p(x)p(y)}{p(x,y)}\,dx\,dy \geq 0
\nonumber
\end{align}
\]
当两分布互相独立时等号成立。
根据条件熵的公式:
\[
H(y|x) = -\iint p(x,y)\ln p(y|x)\,dy\,dx
\]
可以得到:
\[
I(x,y)=H(x)-H(x|y)
\]
即:互信息可以表示知道\(y\)后,\(x\)的不确定行的减小程度。也可以理解成为了表示\(x\),如果我们已经传输了\(y\),那么我们已经传输的信息量为\(I(x,y)\)。
参考
原文地址:https://www.cnblogs.com/LvBaiYang/p/12199218.html