在机器学习中,我们会和各种分布打交道, 如何比较模型输出的分布与真实分布的差距呢? 我们可以使用信息论中的 KL Divergence (Kullback–Leibler divergence) 。
简介
在统计学中, KL散度 (KL Divergence) 用来表示两个分布之间的距离, 也被成为 相对熵 (relative entropy) 。 注意,这里是统计距离, 它不符合我们常用的欧式距离的一些性质,比如:
- 不满足对称性:
- 不满足三角形法则:
当 意味着分布 P 和分布 Q 完全相等。
定义
KL Divergence也可以写成为:
image.png一个限制
注意, 这里对 有一个要求, 当 必须 , 这主要为了解决 没有定义的问题。当 时 , 因为 :
连续分布
当 P 和 Q 是连续分布的时候, 公式变为:
KL 在连续分布上的形式例子
假设, P 和 Q 分布如下:
分布那么对应的 KL Divergence 为 :
KL Divergence注意:
解释
源于 可以从不同的角度去解释:
机器学习
被称为: 用P替代Q以后, 获得的信息增益 (information gain)。
信息论
被称为P对Q的相对熵 (relative entropy)。
贝叶斯
代表, 当一个人的信念从先验分布 转变成 后验分布 时, 这个人获得的信息增益。 反过来说, 如果真实分布是 , 而你用 去拟合 , 那么你的信息损失就是 。
约定俗成:
在实际中, 对P和Q , 有些常用的约定
- 往往代表 真实分布,观测到的分布, 依据理论计算出来的分布
- 往往代表 模型预测的分布,理论分布
在机器学习中, 代表答案, 代表模型输出, 训练的过程, 就是让模型的 减小的过程。
网友评论