KL散度的简单理解

什么是KL散度§

KL散度,也叫作相对熵,全称是Kullback-Leibler divergence,是由Kullback和Leibler在1951年提出的。

KL散度用于衡量两个概率分布之间的相似程度,如对于随机变量Q的概率分布,相对于随机变量P的概率分布的KL散度定义为: DKL(PQ)=H(P,Q)H(P) D_{KL}(P||Q) = H(P,Q)-H(P) 其中H(P)H(P)表示随机变量PP的熵,离散形式为H(P)=ip(i)logp(i)H(P) = -\sum_{i}p(i)log{p(i)},类似的H(P,Q)=ip(i)logq(i)H(P,Q) = -\sum_{i}p(i){logq(i)}p(i)p(i)为P的概率分布,q(i)q(i)为Q的概率分布。(其实也就是交叉熵公式)计算过程有: DKL(PQ)=H(P,Q)H(P) =ip(i)logq(i)(ip(i)logp(i)) =ip(i)logp(i)q(i) \begin{align} D_{KL}(P||Q) &= H(P,Q)-H(P) \ &= -\sum_{i}p(i)log{q(i)}- \left(-\sum_{i}p(i)log{p(i)} \right) \ &= \sum_{i}p(i)log{\frac{p(i)}{q(i)}} \end{align} 上面的是离散形式,相对的,还有连续形式: DKL(PQ)=p(x)logp(x)q(x)dx D_{KL}(P||Q) = \int p(x)log{\frac{p(x)}{q(x)}} dx

KL散度的两个特点§

1. 非对称性§

对于概率分布p和概率分布q而言,DKL(PQ)DKL(QP)D_{KL}(P||Q)\neq D_{KL}(Q||P),其中DKL(PQ)D_{KL}(P||Q)指的是Q相当于P的KL散度。

为了解决KL散度非对称性的问题,因此,有提出JS散度,它的定义如下: DJS=DKL(PM)+DKL(QM)2 D_{JS} = \frac{D_{KL}(P||M)+D_{KL}(Q||M)}{2} 其中M=P+Q2M = \frac{P+Q}{2},是两个概率分布的平均值。

2. 非负性§

PPQQ分布是一样时,此时DKLD_{KL}等于0,当分布不同时,可以证明DKLD_{KL}是大于0的。

因为logxx1logx\le x-1

所以, DKL=ip(i)logp(i)q(i)= ip(i)logq(i)p(i) ip(i)(q(i)p(i)1)=0 -D_{KL} = -\sum_{i}p(i)log\frac{p(i)}{q(i)} = \ \sum_{i}p(i)log\frac{q(i)}{p(i)} \le \ \sum_{i}p(i) \left( \frac{q(i)}{p(i)} -1 \right) = 0 即有,DKL0D_{KL} \ge 0