Kullback-Leibler (KL) 散度的计算简化推导

在这里插入图片描述

Kullback-Leibler (KL) 散度是衡量两个概率分布之间差异的一种度量方法。具体来说,对于两个概率密度函数 ( p ( x ) p(x) p(x) ) 和 ( q ( x ) q(x) q(x) ),从 ( p p p ) 到 ( q q q ) 的 KL 散度定义为:

D ( p ∥ q ) = ∫ p ( x ) ln ⁡ p ( x ) q ( x )   d x D(p \| q) = \int p(x) \ln \frac{p(x)}{q(x)} \, dx D(pq)=p(x)lnq(x)p(x)dx

在我们的例子中,我们需要计算两个复高斯分布 ( p 0 ( y w ) p_0(y_w) p0(yw) ) 和 ( p 1 ( y w ) p_1(y_w) p1(yw) ) 的 KL 散度。首先,我们回顾一下这两个分布的形式:

p 0 ( y w ) = 1 π λ 0 exp ⁡ ( − ∣ y w ∣ 2 λ 0 ) p_0(y_w) = \frac{1}{\pi \lambda_0} \exp\left(-\frac{|y_w|^2}{\lambda_0}\right) p0(yw)=πλ01exp(λ0yw2)

p 1 ( y w ) = 1 π λ 1 exp ⁡ ( − ∣ y w ∣ 2 λ 1 ) p_1(y_w) = \frac{1}{\pi \lambda_1} \exp\left(-\frac{|y_w|^2}{\lambda_1}\right) p1(yw)=πλ11exp(λ1yw2)

为了计算 ( D(p_0 | p_1) ),我们需要把 ( p_0(y_w) ) 和 ( p_1(y_w) ) 带入 KL 散度的定义中:

D ( p 0 ∥ p 1 ) = ∫ − ∞ + ∞ p 0 ( y w ) ln ⁡ p 0 ( y w ) p 1 ( y w )   d y w D(p_0 \| p_1) = \int_{-\infty}^{+\infty} p_0(y_w) \ln \frac{p_0(y_w)}{p_1(y_w)} \, dy_w D(p0p1)=+p0(yw)lnp1(yw)p0(yw)dyw

首先,计算 ( ln ⁡ p 0 ( y w ) p 1 ( y w ) \ln \frac{p_0(y_w)}{p_1(y_w)} lnp1(yw)p0(yw)):

ln ⁡ p 0 ( y w ) p 1 ( y w ) = ln ⁡ ( 1 π λ 0 exp ⁡ ( − ∣ y w ∣ 2 λ 0 ) 1 π λ 1 exp ⁡ ( − ∣ y w ∣ 2 λ 1 ) ) \ln \frac{p_0(y_w)}{p_1(y_w)} = \ln \left( \frac{\frac{1}{\pi \lambda_0} \exp\left(-\frac{|y_w|^2}{\lambda_0}\right)}{\frac{1}{\pi \lambda_1} \exp\left(-\frac{|y_w|^2}{\lambda_1}\right)} \right) lnp1(yw)p0(yw)=ln πλ11exp(λ1yw2)πλ01exp(λ0yw2)

将分子分母展开:

= ln ⁡ ( 1 π λ 0 exp ⁡ ( − ∣ y w ∣ 2 λ 0 ) ⋅ π λ 1 exp ⁡ ( − ∣ y w ∣ 2 λ 1 ) ) = \ln \left( \frac{1}{\pi \lambda_0} \exp\left(-\frac{|y_w|^2}{\lambda_0}\right) \cdot \frac{\pi \lambda_1}{\exp\left(-\frac{|y_w|^2}{\lambda_1}\right)} \right) =ln πλ01exp(λ0yw2)exp(λ1yw2)πλ1

分开对数函数的乘法和指数:

= ln ⁡ ( λ 1 λ 0 ) + ln ⁡ ( exp ⁡ ( − ∣ y w ∣ 2 ( 1 λ 0 − 1 λ 1 ) ) ) = \ln \left( \frac{\lambda_1}{\lambda_0} \right) + \ln \left( \exp \left( -|y_w|^2 \left(\frac{1}{\lambda_0} - \frac{1}{\lambda_1}\right) \right) \right) =ln(λ0λ1)+ln(exp(yw2(λ01λ11)))

= ln ⁡ ( λ 1 λ 0 ) + ( − ∣ y w ∣ 2 ( 1 λ 0 − 1 λ 1 ) ) = \ln \left( \frac{\lambda_1}{\lambda_0} \right) + \left( -|y_w|^2 \left(\frac{1}{\lambda_0} - \frac{1}{\lambda_1}\right) \right) =ln(λ0λ1)+(yw2(λ01λ11))

现在,将这个结果代入 KL 散度的定义中:

D ( p 0 ∥ p 1 ) = ∫ − ∞ + ∞ p 0 ( y w ) [ ln ⁡ ( λ 1 λ 0 ) − ∣ y w ∣ 2 ( 1 λ 0 − 1 λ 1 ) ] d y w D(p_0 \| p_1) = \int_{-\infty}^{+\infty} p_0(y_w) \left[ \ln \left( \frac{\lambda_1}{\lambda_0} \right) - |y_w|^2 \left( \frac{1}{\lambda_0} - \frac{1}{\lambda_1} \right) \right] dy_w D(p0p1)=+p0(yw)[ln(λ0λ1)yw2(λ01λ11)]dyw

我们将积分分成两部分:

D ( p 0 ∥ p 1 ) = ln ⁡ ( λ 1 λ 0 ) ∫ − ∞ + ∞ p 0 ( y w )   d y w − ( 1 λ 0 − 1 λ 1 ) ∫ − ∞ + ∞ ∣ y w ∣ 2 p 0 ( y w )   d y w D(p_0 \| p_1) = \ln \left( \frac{\lambda_1}{\lambda_0} \right) \int_{-\infty}^{+\infty} p_0(y_w) \, dy_w - \left( \frac{1}{\lambda_0} - \frac{1}{\lambda_1} \right) \int_{-\infty}^{+\infty} |y_w|^2 p_0(y_w) \, dy_w D(p0p1)=ln(λ0λ1)+p0(yw)dyw(λ01λ11)+yw2p0(yw)dyw

第一个积分部分是 PDF 的归一化条件,因此其值为 1:

∫ − ∞ + ∞ p 0 ( y w )   d y w = 1 \int_{-\infty}^{+\infty} p_0(y_w) \, dy_w = 1 +p0(yw)dyw=1

第二个积分部分可以用复高斯分布的方差来表示。对于复高斯分布 ( p_0(y_w) ),其方差 (\lambda_0) 满足:

∫ − ∞ + ∞ ∣ y w ∣ 2 p 0 ( y w )   d y w = λ 0 \int_{-\infty}^{+\infty} |y_w|^2 p_0(y_w) \, dy_w = \lambda_0 +yw2p0(yw)dyw=λ0

因此,KL 散度的公式变为:

D ( p 0 ∥ p 1 ) = ln ⁡ ( λ 1 λ 0 ) − ( 1 λ 0 − 1 λ 1 ) λ 0 D(p_0 \| p_1) = \ln \left( \frac{\lambda_1}{\lambda_0} \right) - \left( \frac{1}{\lambda_0} - \frac{1}{\lambda_1} \right) \lambda_0 D(p0p1)=ln(λ0λ1)(λ01λ11)λ0

简化这个表达式:

D ( p 0 ∥ p 1 ) = ln ⁡ ( λ 1 λ 0 ) − ( 1 − λ 0 λ 1 ) D(p_0 \| p_1) = \ln \left( \frac{\lambda_1}{\lambda_0} \right) - \left( 1 - \frac{\lambda_0}{\lambda_1} \right) D(p0p1)=ln(λ0λ1)(1λ1λ0)

这是我们所需的 KL 散度公式:

D ( p 0 ∥ p 1 ) = ln ⁡ ( λ 1 λ 0 ) + λ 0 λ 1 − 1 D(p_0 \| p_1) = \ln \left( \frac{\lambda_1}{\lambda_0} \right) + \frac{\lambda_0}{\lambda_1} - 1 D(p0p1)=ln(λ0λ1)+λ1λ01

这个公式表明,从 ( p 0 p_0 p0 ) 到 ( p 1 p_1 p1 ) 的 KL 散度不仅取决于这两个分布的比例关系,还考虑了它们的方差比率对整体散度的影响。

相关推荐

  1. 【深度学习】pytorch计算KL、kl_div

    2024-07-22 05:12:06       47 阅读
  2. ptorch中nn.KLDivLoss:KL损失

    2024-07-22 05:12:06       39 阅读
  3. KL、CrossEntropy详解

    2024-07-22 05:12:06       61 阅读
  4. 数据相似计算

    2024-07-22 05:12:06       57 阅读
  5. NLP中几个简单,字符串相似计算方法

    2024-07-22 05:12:06       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 05:12:06       142 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 05:12:06       156 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 05:12:06       129 阅读
  4. Python语言-面向对象

    2024-07-22 05:12:06       141 阅读

热门阅读

  1. FlowUs横向对比几款笔记应用的优势所在

    2024-07-22 05:12:06       34 阅读
  2. 公式推导类

    2024-07-22 05:12:06       30 阅读
  3. 【C++】C++内存泄漏介绍及解决方案

    2024-07-22 05:12:06       26 阅读
  4. 后台接口的配置

    2024-07-22 05:12:06       29 阅读
  5. Optional 中 map 和 flatMap 区别是啥?

    2024-07-22 05:12:06       26 阅读
  6. 实习手计(4):月末碎碎念!

    2024-07-22 05:12:06       19 阅读
  7. Nginx详细配置(最佳实践)

    2024-07-22 05:12:06       31 阅读
  8. 信息系统安全保护等级调整的流程

    2024-07-22 05:12:06       27 阅读
  9. Netty SSL/TLS

    2024-07-22 05:12:06       30 阅读
  10. C语言排序算法

    2024-07-22 05:12:06       20 阅读
  11. 如何使用Python进行数据分析

    2024-07-22 05:12:06       28 阅读
  12. filebeat把日志文件上传到Es中配置(ES8版本)

    2024-07-22 05:12:06       22 阅读