14、KL散度

这篇具有很好参考价值的文章主要介绍了14、KL散度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

KL 散度,是一个用来衡量两个概率分布的相似性的一个度量指标。

现实世界里的任何观察都可以看成表示成信息和数据,一般来说,我们无法获取数据的总体,我们只能拿到数据的部分样本,根据数据的部分样本,我们会对数据的整体做一个近似的估计,而数据整体本身有一个真实的分布(我们可能永远无法知道)。

那么近似估计的概率分布和数据整体真实的概率分布的相似度,或者说差异程度,可以用 KL 散度来表示。

KL 散度,最早是从信息论里演化而来的。所以在介绍 KL 散度之前,先介绍一下信息论里有关熵的概念。

信息论中,某个信息 x i \large x_{i} xi 出现的不确定性的大小定义为 x i \large x_{i} xi 所携带的信息量,用 I ( x i ) I(x_{i}) I(xi) 表示。 I ( x i ) I(x_{i}) I(xi) 与信息 x i \large x_{i} xi 出现的概率 P ( x i ) P(x_{i}) P(xi) 之间的关系为

I ( x i ) = l o g 1 P ( x i ) = − l o g P ( x i ) (1) \begin{aligned} I(x_i) = & log\frac{1}{P(x_i)} = -logP(x_i) \tag{1} \\ \end{aligned} I(xi)=logP(xi)1=logP(xi)(1)

例:掷两枚骰子,求点数和为7的信息量 点数和为7的情况为:(1,6) ; (6,1) ; (2,5) ; (5,2) ; (3,4) ; (4,3) 这6种。总的情况为 6*6 = 36 种。
那么该信息出现的概率为 P x = 7 = 6 36 = 1 6 P_{x=7}=\frac{6}{36}=\frac{1}{6} Px=7=366=61
包含的信息量为 I ( 7 ) = − log ⁡ P ( 7 ) = − log ⁡ 1 6 = log ⁡ 6 I(7)=-\log P(7)=-\log\frac{1}{6}=\log 6 I(7)=logP(7)=log61=log6

以上是求单一信息的信息量。但实际情况中,会要求我们求多个信息的信息量,也就是平均信息量。

假设一共有 n 种信息,每种信息出现的概率情况由以下列出:

X 1 X_1 X1 X 2 X_2 X2 X 3 X_3 X3 X 4 X_4 X4 . . . . . ..... ..... X n X_n Xn
P ( x 1 ) P(x_1) P(x1) P ( x 2 ) P(x_2) P(x2) P ( x 3 ) P(x_3) P(x3) P ( x 4 ) P(x_4) P(x4) P ( x n ) P(x_n) P(xn)

同时满足:
∑ i = 1 n P ( x i ) = 1 (2) \begin{aligned} \sum^n_{i=1} P(x_i) = 1 \tag{2} \\ \end{aligned} i=1nP(xi)=1(2)

x 1 , x 2 , . . . . . , x n x_1,x_2,.....,x_n x1,x2,.....,xn 所包含的信息量分别是 KaTeX parse error: Undefined control sequence: \logP at position 2: -\̲l̲o̲g̲P̲(x_1),-\logP(x_…平均信息量为
KaTeX parse error: Undefined control sequence: \logP at position 49: …^n_{i=1} P(x_i)\̲l̲o̲g̲P̲(x_i) \tag{3} \…

H 与热力学中的熵的定义类似,故这又被称为信息熵。

与热力学中的熵的定义类似,故这又被称为信息熵。
H ( x ) = − ( 1 8 log ⁡ ( 1 8 ) + 1 8 log ⁡ ( 1 8 ) + 1 4 log ⁡ ( 1 4 ) + 1 2 log ⁡ ( 1 2 ) ) = 1.75 \begin{aligned}H(x) = -(\frac{1}{8}\log(\frac{1}{8}) + \frac{1}{8}\log(\frac{1}{8}) + \frac{1}{4}\log(\frac{1}{4}) + \frac{1}{2}\log(\frac{1}{2}) ) = 1.75 \end{aligned} H(x)=(81log(81)+81log(81)+41log(41)+21log(21))=1.75

连续信息的平均信息量可定义为

H ( x ) = − ∫ f ( x ) log ⁡ f ( x ) d x (3) \begin{aligned} H(x) = -\int f(x)\log f(x)dx \tag{3} \end{aligned} H(x)=f(x)logf(x)dx(3)

这里的 f ( x ) f(x) f(x) 是信息的概率密度。

上述我们提到了信息论中的信息熵
H ( x ) = − ∑ i = 1 n P ( x i ) log ⁡ P ( x i ) = ∑ i = 1 n P ( x i ) log ⁡ 1 P ( x i ) = H ( P ) (4) \begin{aligned} H(x) = -\sum^n_{i=1}P(x_i) \log P(x_i) = \sum^n_{i=1} P(x_i) \log \frac{1}{P(x_i)} = H(P) \tag{4} \end{aligned} H(x)=i=1nP(xi)logP(xi)=i=1nP(xi)logP(xi)1=H(P)(4)

这是一个平均信息量,又可以解释为:用基于P的编码去编码来自P的样本,其最优编码平均所需要的比特个数

接下来我们再提一个概念:交叉熵

H ( P , Q ) = − ∑ i = 1 n P ( x i ) log ⁡ Q ( x i ) = ∑ i = 1 n P ( x i ) log ⁡ 1 Q ( x i ) (6) \begin{aligned} H(P,Q) = -\sum^n_{i=1}P(x_i) \log Q(x_i) = \sum^n_{i=1} P(x_i) \log \frac{1}{Q(x_i)} \tag{6} \end{aligned} H(P,Q)=i=1nP(xi)logQ(xi)=i=1nP(xi)logQ(xi)1(6)

这就解释为:用基于P的编码去编码来自Q的样本,所需要的比特个数

【注】 P ( x ) P(x) P(x) 为各字符出现的频率, log ⁡ 1 P ( x ) \log \frac{1}{P(x)} logP(x)1 为该字符相应的编码长度, log ⁡ 1 Q ( x ) \log \frac{1}{Q(x)} logQ(x)1 为对应于Q 的分布各字符编码长度。

KL 散度

让我们从一个问题开始我们的探索。假设我们是太空科学家,正在访问一个遥远的新行星,我们发现了一种咬人的蠕虫,我们想研究它。我们发现这些蠕虫有10颗牙齿,但由于它们不停地咀嚼,很多最后都掉了牙。在收集了许多样本后,我们得出了每条蠕虫牙齿数量的经验概率分布:
14、KL散度
虽然这些数据很好,但我们有一个小问题。我们离地球很远,把数据寄回家很贵。我们要做的是将这些数据简化为一个只有一两个参数的简单模型。一种选择是将蠕虫牙齿的分布表示为均匀分布。我们知道有11个可能的值,我们可以指定1/11的均匀概率
14、KL散度
显然,我们的数据不是均匀分布的,但是看起来也不像我们所知道的任何常见分布。我们可以尝试的另一种选择是使用二项分布对数据进行建模。在这种情况下,我们要做的就是估计二项分布的概率参数。我们知道如果我们有n次试验,概率是p,那么期望就是E[x]= np。在本例中n = 10,期望值是我们数据的平均值,计算得到5.7,因此我们对p的最佳估计为0.57。这将使我们得到一个二项分布,如下所示:

14、KL散度
将我们的两个模型与原始数据进行比较,我们可以看出,两个都没有完美匹配原始分布,但是哪个更好?
14、KL散度
现如今有许多错误度量标准,但是我们主要关注的是必须使发送的信息量最少。这两个模型都将我们的问题所需的参数量减少。最好的方法是计算分布哪个保留了我们原始数据源中最多的信息。这就是Kullback-Leibler散度的作用。

KL散度又可称为相对熵,描述两个概率分布 P 和 Q 的差异或相似性,用 D K L ( P ∣ ∣ Q ) D_{KL}(P\left | \right |Q) DKL(PQ) 表示

D K L ( P ∣ ∣ Q ) = H ( P , Q ) − H ( P ) = ∑ i P ( x i ) log ⁡ 1 Q ( x i ) − ∑ i P ( x i ) log ⁡ 1 P ( x i ) = ∑ i P ( x i ) log ⁡ P ( x i ) Q ( x i ) (7) \begin{aligned} D_{KL}(P || Q) & = H(P,Q) - H(P) \\ & = \sum_i P(x_i) \log \frac{1}{Q(x_i)} - \sum_i P(x_i) \log \frac{1}{P(x_i)} \\ & = \sum_i P(x_i) \log \frac{P(x_i)}{Q(x_i)} \tag{7} \\ \end{aligned} DKL(P∣∣Q)=H(P,Q)H(P)=iP(xi)logQ(xi)1iP(xi)logP(xi)1=iP(xi)logQ(xi)P(xi)(7)

很显然,散度越小,说明概率 Q 与概率 P 之间越接近,那么估计的概率分布与真实的概率分布也就越接近。

KL散度的性质:

  1. 非对称性: D K L ( P ∣ ∣ Q ) ≠ D K L ( Q ∣ ∣ P ) D_{KL}(P || Q) \neq D_{KL}(Q || P) DKL(P∣∣Q)=DKL(Q∣∣P)
  2. D K L ( P ∣ ∣ Q ) ≥ 0 D_{KL}(P || Q) \geq 0 DKL(P∣∣Q)0,仅在 P=Q时等于0

性质2是很重要的,可以用 Jensen 不等式证明。

Jensen 不等式与凸函数是密切相关的。可以说 Jensen 不等式是凸函数的推广,而凸函数是 Jensen 不等式的特例。

其中:对于两个单一变量的高斯分布 p 和 q而言,KL散度为 K L ( p , q ) = log ⁡ σ 2 σ 1 + σ 1 2 + ( μ 1 − μ 2 ) 2 2 σ 2 2 − 1 2 KL(p,q) = \log \frac{\sigma_2}{\sigma_1} + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2\sigma_2^2} - \frac{1}{2} KL(p,q)=logσ1σ2+2σ22σ12+(μ1μ2)221文章来源地址https://www.toymoban.com/news/detail-417085.html

到了这里,关于14、KL散度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包