黑马程序员技术交流社区
标题:
【上海校区】KL散度理解
[打印本页]
作者:
不二晨
时间:
2018-7-26 09:53
标题:
【上海校区】KL散度理解
概念
考虑
某个未知的分布 p(x)
,假定用一个
近似的分布 q(x)
对它进行建模。如果我们使用 q(x) 来建立一个编码体系,用来把 x 的值传给接收者,那么由于我们使用了q(x)而不是真实分布p(x),平均编码长度比用真实分布p(x)进行编码增加的信息量(单位是 nat )为:
这被称为分布p(x)和分布q(x)之间的
相对熵(relative entropy ) 或 者 KL散 度( Kullback-Leibler divergence)
。
也就是说,当我们知道真实的概率分布之后,可以给出最有效的编码。如果我们使用了不同于真实分布的概率分布,那么我们一定会损失编码效率,并且在传输时增加的平均额外信息量至少等于两个分布之间的KL散度。
注意,
这不是一个对称量
,即
。
为什么KL散度大于等于0
现在要证明的是KL散度满足
,并且当且仅当 p(x) = q(x) 时等号成立。
对于连续变量, Jensen 不等式的形式为:
注意到,-ln x 是严格的凸函数且
。
把公式(2)形式的 Jensen 不等式应用于公式(1)给出的 Kullback-Leibler散度,直接可得
只有 q(x) = p(x) 对于所有 x 都成立时,等号才成立,
因此我们可以把 KL 散度看做两个分布 p(x) 和 q(x)之间
不相似程度的度量
。
最小化 Kullback-Leibler 散度等价于最大化似然函数
假设我们想要对未知分布p(x) 建模,可以试着使用一些参数分布
来近似p(x)。
由可调节的参数
控制(例如一个多元高斯分布)。
通过最小化 p(x) 和
之间关于
的 Kullback-Leibler 散度可以确定
。
但是因为不知道 p(x),所以不能直接这么做
。
如果已经观察到了服从分布 p(x) 的有限数量的训练点集
,其中
,那么关于 p(x) 的期望就可以通过这些点的有限加和,使用公式
来近似,即:
公式(4)右侧的第二项与
无关,第一项是使用训练集估计的分布
下的
的负对数似然函数。
因此最小化KL散度等价于最大化似然函数。
作者:清雅白露记
链接:
https://juejin.im/post/5b558ee3f265da0fa759d28d
作者:
不二晨
时间:
2018-7-26 11:33
奈斯,很赞
作者:
wuqiong
时间:
2018-7-26 11:37
作者:
吴琼老师
时间:
2018-7-26 15:57
作者:
梦缠绕的时候
时间:
2018-7-31 12:02
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2