烟台网站开发技术,建设网站物业经理上岗证陈俊华,稀奇古怪好玩有用的网站,介绍一学一做视频网站吗本文用一种浅显易懂的方式说明KL散度。 参考资料
KL散度本质上是比较两个分布的相似程度。
现在给出2个简单的离散分布#xff0c;称为分布1和分布2.
分布1有3个样本#xff0c; 其中A的概率为50%, B的概率为40%#xff0c;C的概率为10%
分布2也有3个样本#xff1a; 其…本文用一种浅显易懂的方式说明KL散度。 参考资料
KL散度本质上是比较两个分布的相似程度。
现在给出2个简单的离散分布称为分布1和分布2.
分布1有3个样本 其中A的概率为50%, B的概率为40%C的概率为10%
分布2也有3个样本 其中A的概率为50%B的概率为10%C的概率为40%。
现在想比较分布1和分布2的相似程度。
直观看上去分布1和分布2中样本A的概率是一样的仅仅B和C的概率换了一下。 分布应该是相似的但是如何量化来看呢。
可以这样做用分布1的各个样本的概率和分布2样本概率做比值相加再求平均。
现假设分布1的概率分布为P分布2的概率分布为Q 那么P(A) 0.5, P(B)0.4, P( C) 0.1 Q(A) 0.5, Q(B) 0.1, Q( C) 0.4,
各样本概率做比值之后为 P(A)/Q(A) P(B)/Q(B) P( C)/Q( C) 141/4 再对3个样本取平均 (141/4) / 3 1.75 这就是我们想要的分布1和分布2的相似度。
不过有一个问题 可以看到P(B)和Q(B), P( C)和Q( C)仅仅概率做了交换它们的相似度大小应该是一样的仅仅方向不一样 也就是说P(B)/Q(B), P( C)/Q( C)的绝对值应该是一样的符号不一样。 但是现在哪个分子大哪个结果就大这是不应该的
想要这样一个函数来解决这个问题 f(4) y f(1/4) -y, 这里的4为P(B)/Q(B), 1/4为P( C)/Q( C), 经过f(x)后得到的应该是同样的相似度大小只是方向不一样一个是变大的方向一个是变小的方向用负号表示方向的不同。
那么什么样的函数能满足f(x)呢 可以取几个值画一下你会发现这个f(x)就是log(x)。
那么现在把刚才的相似度修改一下 把简单的P(x)/Q(x)换成log(P(x) / Q(x)). 于是变为 ∑ 1 n l o g P ( x ) Q ( x ) / n \sum_{1}^{n} log\frac{P(x)}{Q(x)} / n 1∑nlogQ(x)P(x)/n
对样本取平均值表示每个样本的weight都是1/n, 不要取这么平均把weight改为P(x),
那么就得到 ∑ 1 n P ( x ) l o g P ( x ) Q ( x ) \sum_{1}^{n} P(x) log\frac{P(x)}{Q(x)} 1∑nP(x)logQ(x)P(x)
这就是我们熟悉的KL散度它比较的是分布P和分布Q的相似度。 “||”右边的Q表示是reference分布。 K L ( P ∣ ∣ Q ) ∑ 1 n P ( x ) l o g P ( x ) Q ( x ) KL(P||Q) \sum_{1}^{n} P(x) log\frac{P(x)}{Q(x)} KL(P∣∣Q)1∑nP(x)logQ(x)P(x)