机器学习基础知识—KL 散度
今天将探讨一种比较两个概率分布的方法,称为 Kullback-Leibler 散度(通常简称为KL散度)。我们先给出公式
DKL(P∣∣Q)=∑iP(i)logP(i)Q(i)DKL(P∣∣Q)=∫P(x)logP(x)Q(x)dxD_{KL}(P||Q) = \sum_i P(i) \log \frac{P(i)}{Q(i)}\\ D_{KL}(P||Q) = \int P(x) \log \frac{P(x)}{Q(x)} dx\\DKL(P∣∣Q)=i∑P(i)logQ(i)P(i)DKL(P∣∣Q)=∫P(x)logQ(x)P(x)dx
上面公式是看 Q(i)Q(i)Q(i) 与目标 P(i)P(i)P(i) 概率的差距。对于KL散度具有非对称性和非负性。
对于投硬币的问题我们假设我们观察到的是在投掷了 N 次中,正面朝上的次数为 NHN_HNH,而背面朝上的次数为 NTN_TNT。假设有两个概率分布分别为 P (real coin)和 Q,其中 P 概率分布表示为 p1,p2p_1,p_2p1,p2 这两概率表示在 P 概率分布中正面朝上的概率为 p1p_1p1 而背面朝上的概率为 p2p_2p2。而预测概率分布为 Q(coin1),其中 分布中正面朝上的概率为 q1q_1q1 而背面朝上的概率为 q2q_2q2
P(Observations∣real coin)=p1NHp2NTP(Observations∣coin1)=q1NHq2NTP(Observations|real\,coin) = p_1^{N_H}p_2^{N_T}\\ P(Observations|coin1 ) = q_1^{N_H}q_2^{N_T}\\P(Observations∣realcoin)=p1NHp2NTP(Observations∣coin1)=q1NHq2NT
分别用概率分布 P 和概率分布 Q 前提,看到 N 次中,正面朝上的次数为 NHN_HNH,而背面朝上的次数为 NTN_TNT观察值,也就是似然。
log(p1NHp2NTq1NHq2NT)1N\log(\frac{p_1^{N_H}p_2^{N_T}}{q_1^{N_H}q_2^{N_T}})^{\frac{1}{N}}log(q1NHq2NTp1NHp2NT)N1
上面对其比值进行正则化,也就是取 1N\frac{1}{N}N1 后取 log
NHNlogp1+NTNlogp2−NHNlogq1−NTNlogq2q1logp1+q1logp2−q1logp1−q2logp2q1q1logp1q1+q2logp2q2=∑iqipiqi\frac{N_H}{N} \log p_1 + \frac{N_T}{N} \log p_2 - \frac{N_H}{N} \log q_1 -\frac{N_T}{N} \log q_2\\ q_1 \log p_1 + q_1 \log p_2 - q_1 \log p_1 - q_2 \log p_2\\ q_1\\ q_1 \log \frac{p_1}{q_1} + q_2 \log \frac{p_2}{q_2}\\ =\sum_i q_i \frac{p_i}{q_i}NNHlogp1+NNTlogp2−NNHlogq1−NNTlogq2q1logp1+q1logp2−q1logp1−q2logp2q1q1logq1p1+q2logq2p2=i∑qiqipi
这就是整个推导过程。
作者:zidea
链接:https://juejin.cn/post/7024072585063170055