标签:
我们可以计算两个数值点之间的距离,也可以计算两个概率分布之间的距离。常见方法有卡方检验(Chi-Square)和KL散度(KL-Divergence)。本文主要介绍KL散度。
先从信息熵说起,假设一篇文章的标题叫做“黑洞到底吃什么”,包含词语分别是{黑洞,到底,吃什么},我们现在要根据一个词语推测这篇文章的类别。哪个词语给予我们的信息最多?很容易就知道是“黑洞”,因为“黑洞”这个词语在所有的文档中出现的概率太低啦,一旦出现,就表明这篇文章很可能是在讲科普知识。而其他两个词语“到底”和“吃什么”出现的概率很高,给予我们的信息反而越少。
如何用一个函数 $h(x)$ 表示词语给予的信息量呢?
\[h(x)=-\ln p(x)\]
对假设一个发送者要将随机变量 X 产生的一长串随机值传送给接收者, 接受者获得的平均信息量就是求它的数学期望:
\[\begin{array}{*{20}{l}}
{H[x] = - \sum p (x)\ln p(x)}\\
{H[x] = \mathop \smallint \limits^x p(x)\ln p(x)dx}
\end{array}\]
这就是熵的概念。
另外一个重要特点是,熵的大小与字符平均最短编码长度是一样的。设有一个未知的分布 $p(x)$, 而 $q(x)$ 是我们所获得的一个对 $p(x)$ 的近似,按照 $q(x)$ 对该随机变量的各个值进行编码,平均长度比按照真实分布的 $p(x)$ 进行编码要额外长一些,多出来的长度这就是 KL 散度(之所以不说距离,是因为不满足对称性和三角形法则),即:
\[KL(p||q) =H(P,Q)-H(P)= - \int {p(x)\ln q(x)dx -(-\int{p(x)}\ln p(x)dx)}=-\int{p(x)\ln(\frac{q(x)}{p(x)})dx}\]
其中$H(P,Q)$称为$P$和$Q$的交叉熵,$H(p)$是$P$的熵。KL 散度又叫相对熵(relative entropy)。当两个概率分布完全相同时,即$P(x)=Q(X)$,其相对熵为0。
了解机器学习的童鞋应该都知道,在 Softmax 回归(或者 Logistic 回归),最后的输出节点上的值表示这个样本分到该类的概率,这就是一个概率分布。对于一个带有标签的样本,我们期望的概率分布是:分到标签类的概率是 1, 其他类概率是 0。但是理想很丰满,现实很骨感,我们不可能得到完美的概率输出,能做的就是尽量减小总样本的 KL 散度之和(目标函数)。这就是 Softmax 回归或者 Logistic 回归中 Cost function 的优化过程啦。(PS:因为概率和为 1,一般的 logistic 二分类的图只画了一个输出节点,隐藏了另外一个)。
引自:http://www.cnblogs.com/daniel-D/p/3244718.html
标签:
原文地址:http://www.cnblogs.com/ZJUT-jiangnan/p/4333314.html