KL散度理解

1. 概念

考虑某个未知的分布 p(x),假定用一个近似的分布 q(x) 对它进行建模。如果我们使用 q(x) 来建立一个编码体系,用来把 x 的值传给接收者,那么由于我们使用了q(x)而不是真实分布p(x),平均编码长度比用真实分布p(x)进行编码增加的信息量(单位是 nat )为:

K L ( p ∣ ∣ q ) = − ∫ p ( x ) l n q ( x ) d x − ( − ∫ p ( x ) l n p ( x ) d x ) = − ∫ p ( x ) l n [ q ( x ) p ( x ) ] d x \begin{aligned} KL(p||q)&=-\int p(x)lnq(x)dx-(-\int p(x)lnp(x)dx)\\ &=-\int p(x)ln[\frac{q(x)}{p(x)}]dx \end{aligned} KL(pq)=p(x)lnq(x)dx(p(x)lnp(x)dx)=p(x)ln[p(x)q(x)]dx

KL散度理解_第1张图片

这被称为分布p(x)和分布q(x)之间的相对熵(relative entropy)或者KL散 度( Kullback-Leibler divergence )。

也就是说,当我们知道真实的概率分布之后,可以给出最有效的编码。如果我们使用了不同于真实分布的概率分布,那么我们一定会损失编码效率,并且在传输时增加的平均额外信息量至少等于两个分布之间的KL散度。

注意,这不是一个对称量,即 K L ( p ∣ ∣ q ) ≠ K L ( q ∣ ∣ p ) KL (p || q) \neq KL (q || p) KL(pq)̸=KL(qp)

2. 为什么KL散度大于等于0

现在要证明的是KL散度满足 K L ( p ∣ ∣ q ) ≥ 0 KL (p || q) \geq 0 KL(pq)0 ,并且当且仅当 p(x) = q(x) 时等号成立。

设实直线上的函数f(x) 是一个非负函数,且:

∫ − ∞ ∞ f ( x )   d x = 1. {\displaystyle \int _{-\infty }^{\infty }f(x)\,dx=1.} f(x)dx=1.

如果 g g g 是任意实可测函数且函数 φ {\textstyle \varphi } φ 是凸的,那么有Jensen不等式如下:

(2) φ ( ∫ − ∞ ∞ g ( x ) f ( x )   d x ) ≤ ∫ − ∞ ∞ φ ( g ( x ) ) f ( x )   d x . {\displaystyle \varphi \left(\int _{-\infty }^{\infty }g(x)f(x)\,dx\right)\leq \int _{-\infty }^{\infty }\varphi (g(x))f(x)\,dx.} \tag{2} φ(g(x)f(x)dx)φ(g(x))f(x)dx.(2)

注意到,-ln x 是严格的凸函数且 ∫ q ( x ) d x = 1 \displaystyle \int q(x) dx = 1 q(x)dx=1

φ ( x ) = − ln ⁡ ( x ) , g ( x ) = q ( x ) p ( x ) , f ( x ) = p ( x ) \varphi(x)=-\ln(x) , g(x)=\frac {q(x)} {p(x)} , f(x)=p(x) φ(x)=ln(x),g(x)=p(x)q(x),f(x)=p(x)

把公式(2)形式的 Jensen 不等式应用于公式(1)给出的 KL散度,直接可得

(3) K L ( p ∣ ∣ q ) = ∫ p ( x ) { − ln ⁡ [ q ( x ) p ( x ) ] } d x ≥ − ln ⁡ [ ∫ q ( x ) d x ] = 0 KL (p || q) = \int p(x) \{-\ln [\frac{q(x)}{p(x)}]\} d x \geq - \ln [\int q(x) dx] = 0 \tag{3} KL(pq)=p(x){ln[p(x)q(x)]}dxln[q(x)dx]=0(3)

只有 q(x) = p(x) 对于所有 x 都成立时,等号才成立,

因此我们可以把 KL 散度看做两个分布 p(x) 和 q(x)之间不相似程度的度量。

3. 最小化 Kullback-Leibler 散度等价于最大化似然函数

假设我们想要对未知分布p(x) 建模,可以试着使用一些参数分布 q ( x ∣ θ ) q(x|\theta) q(xθ) 来近似p(x)。 q ( x ∣ θ ) q(x|\theta) q(xθ) 由可调节的参数 θ \theta θ 控制(例如一个多元高斯分布)。

通过最小化 p(x) 和 q ( x ∣ θ ) q(x|\theta) q(xθ) 之间关于 θ \theta θ 的 KL散度可以确定 θ \theta θ

但是因为不知道 p(x),所以不能直接这么做。

如果已经观察到了服从分布 p(x) 的有限数量的训练点集 { x n } \{x_n\} {xn} ,其中 n = 1 , … , N n = 1,\dots, N n=1,,N ,那么关于 p(x) 的期望就可以通过这些点的有限加和,使用公式 E ( f ) ≃ 1 N ∑ N = 1 N f ( x n ) \displaystyle E(f) \simeq \frac{1}{N} \sum_{N=1}^N f(x_n) E(f)N1N=1Nf(xn) 来近似,即:

K L ( p ∣ ∣ q ) ≃ 1 N ∑ n = 1 N [ − ln ⁡ q ( x n ∣ θ ) + ln ⁡ p ( x n ) ] ( 4 ) KL (p || q) \simeq \frac{1}{N}\sum_{n=1}^N[-\ln q( x_n \mid \theta)+ \ln p( x_n)] (4) KL(pq)N1n=1N[lnq(xnθ)+lnp(xn)](4)

公式(4)右侧的第二项与 θ \theta θ 无关,第一项是使用训练集估计的分布 q ( x ∣ θ ) q(x | \theta) q(xθ) 下的 θ \theta θ 的负对数似然函数。

因此最小化KL散度等价于最大化似然函数。

  1. KL散度的测度论定义

如果 μ \mu μ ν \nu ν 是 集合X上的测度,且 μ ≪ ν \mu \ll \nu μν

由Radon–Nikodym theorem, μ 和 ν \mu 和 \nu μν 的KL散度定义如下:

D KL ( μ ∥ ν ) = ∫ X log ⁡ ( d μ d ν )    d μ . {\displaystyle D_{\text{KL}}(\mu \parallel \nu )=\int _{X}\log \left({\frac {d\mu }{d\nu }}\right)\;d\mu .} DKL(μν)=Xlog(dνdμ)dμ.

参考资料:
[1] PRML

转载自:
博主:清雅的数学笔记
博文地址:https://zhuanlan.zhihu.com/p/39682125
来源:知乎

你可能感兴趣的:(模式识别与机器学习)