小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
今天将探讨一种比较两个概率分布的方法,称为 Kullback-Leibler 散度(通常简称为KL散度)。我们先给出公式
DKL(P∣∣Q)=i∑P(i)logQ(i)P(i)DKL(P∣∣Q)=∫P(x)logQ(x)P(x)dx
上面公式是看 Q(i) 与目标 P(i) 概率的差距。对于KL散度具有非对称性和非负性。
对于投硬币的问题我们假设我们观察到的是在投掷了 N 次中,正面朝上的次数为 NH,而背面朝上的次数为 NT。假设有两个概率分布分别为 P (real coin)和 Q,其中 P 概率分布表示为 p1,p2 这两概率表示在 P 概率分布中正面朝上的概率为 p1 而背面朝上的概率为 p2。而预测概率分布为 Q(coin1),其中 分布中正面朝上的概率为 q1 而背面朝上的概率为 q2
P(Observations∣realcoin)=p1NHp2NTP(Observations∣coin1)=q1NHq2NT
分别用概率分布 P 和概率分布 Q 前提,看到 N 次中,正面朝上的次数为 NH,而背面朝上的次数为 NT观察值,也就是似然。
log(q1NHq2NTp1NHp2NT)N1
上面对其比值进行正则化,也就是取 N1 后取 log
NNHlogp1+NNTlogp2−NNHlogq1−NNTlogq2q1logp1+q1logp2−q1logp1−q2logp2q1q1logq1p1+q2logq2p2=i∑qiqipi
这就是整个推导过程。