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(p∣∣q)=−∫p(x)lnq(x)dx−(−∫p(x)lnp(x)dx)=−∫p(x)ln[p(x)q(x)]dx
这被称为分布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(p∣∣q)̸=KL(q∣∣p) 。
2. 为什么KL散度大于等于0
现在要证明的是KL散度满足 K L ( p ∣ ∣ q ) ≥ 0 KL (p || q) \geq 0 KL(p∣∣q)≥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(p∣∣q)=∫p(x){−ln[p(x)q(x)]}dx≥−ln[∫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=1∑Nf(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(p∣∣q)≃N1n=1∑N[−lnq(xn∣θ)+lnp(xn)](4)
公式(4)右侧的第二项与 θ \theta θ 无关,第一项是使用训练集估计的分布 q ( x ∣ θ ) q(x | \theta) q(x∣θ) 下的 θ \theta θ 的负对数似然函数。
因此最小化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
来源:知乎