码迷,mamicode.com
首页 > 其他好文 > 详细

KL-Divergence简介

时间:2015-03-12 20:41:22      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:

  我们可以计算两个数值点之间的距离,也可以计算两个概率分布之间的距离。常见方法有卡方检验(Chi-Square)和KL散度(KL-Divergence)。本文主要介绍KL散度。

  先从信息熵说起,假设一篇文章的标题叫做“黑洞到底吃什么”,包含词语分别是{黑洞,到底,吃什么},我们现在要根据一个词语推测这篇文章的类别。哪个词语给予我们的信息最多?很容易就知道是“黑洞”,因为“黑洞”这个词语在所有的文档中出现的概率太低啦,一旦出现,就表明这篇文章很可能是在讲科普知识。而其他两个词语“到底”和“吃什么”出现的概率很高,给予我们的信息反而越少。

  如何用一个函数 $h(x)$ 表示词语给予的信息量呢?

  • 第一,肯定是与 $p(x)$ 相关,并且是负相关。
  • 第二,假设 $x$ 和 $y$ 是独立的(黑洞和宇宙不相互独立,谈到黑洞必然会说宇宙),即 $p(x,y) = p(x)p(y)$, 那么获得的信息也是叠加的,即 $h(x, y) = h(x) + h(y)$。满足这两个条件的函数肯定是负对数形式:

\[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

KL-Divergence简介

标签:

原文地址:http://www.cnblogs.com/ZJUT-jiangnan/p/4333314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!