- 散度
- 信息的编码
- "编码"分布
- 编码分布
- KL散度
这里的散度是用来描述分布之间的距离,并非高数中的散度对应的物理意义。
信息的编码一串数字可以通过二进制编码或者十进制编码,最终以有限的位数进行表示,同样的小数也可以进行这一表示,于是这一编码的具体形式体现在其表示的位数上,显然这是一个对数表示,比如1000以内的数需要三位十进制 l o g 10 1000 = 3 log_{10}1000=3 log101000=3,1024内的数字可以通过10位二进制表示, l o g 2 1024 = 10 log_{2}1024=10 log21024=10。
对应到小数中,可以类比为:一个小数float,其对应的进制位数为 l o g ( f l o a t ) log(float) log(float)
"编码"分布显然一个分布式由多个小数表示的,每一个概率 p ( x ) p(x) p(x)都是一个小数。于是表示一个分布所需要的位数为: ∑ p ( x ) ( l o g ( p ( x ) ) ) sum p(x) (log(p(x))) ∑p(x)(log(p(x))),描述为小数出现的概率乘以其所需的编码。
显然这玩意是叫信息熵。小数的对数为负值,所以常常为 − ∑ p ( x ) ( l o g ( p ( x ) ) ) -sum p(x) (log(p(x))) −∑p(x)(log(p(x)))
编码分布上面是用编码来表示分布,现在是用编码后的分布去表示另一个分布。
显然这两个分布有相同的定义域,但是显然这两个分布不可能完全一致,于是对应在概率上的编码长度就会产生偏差,最简单的方式通过差值描述偏差
l
o
g
(
p
(
x
)
)
−
l
o
g
(
q
(
x
)
)
log(p(x))-log(q(x))
log(p(x))−log(q(x))。
由于是使用 p p p去描述 q q q,于是最终差值的累加是以 p p p的概率为基准 − ∑ p ( x ) ( l o g ( p ( x ) ) − l o g ( q ( x ) ) ) -sum p(x) (log(p(x))-log(q(x))) −∑p(x)(log(p(x))−log(q(x)))。
显然这不仅描述了编码上的差距,这也描述了分布之间的差距。
KL散度两个分布之间的KL散度有如下形式:
∑ p ( x ) ( l o g ( p ( x ) ) − l o g ( q ( x ) ) ) sum p(x) (log(p(x))-log(q(x))) ∑p(x)(log(p(x))−log(q(x)))
上面是离散的形式,连续概率则将求和变为积分:
∫ p ( x ) ( l o g ( p ( x ) ) − l o g ( q ( x ) ) ) int p(x) (log(p(x))-log(q(x))) ∫p(x)(log(p(x))−log(q(x)))



