信息熵/交叉熵/KL散度/JS散度/Wasserstein距离

参考:
强推:https://zhuanlan.zhihu.com/p/45131536
https://zhuanlan.zhihu.com/p/372835186
https://zhuanlan.zhihu.com/p/262876724
https://baijiahao.baidu.com/s?id=1666580334381729961&wfr=spider&for=pc

  1. 熵/信息熵: H = − ∑ p ( x ) l o g ( p ( x ) ) H=-\sum p(x)log(p(x)) H=p(x)log(p(x))

注意,信息论中log的底数为2。(以其他底数也无妨,多一个常数倍数而已)

− l o g ( p ( x ) ) -log(p(x)) log(p(x))信息量,传递p(x)需要的最小比特数

H = − ∑ p ( x ) l o g ( p ( x ) ) H=-\sum p(x)log(p(x)) H=p(x)log(p(x))则是期望,编码某个随机变量平均需要的比特数
信息量越大,需要的比特数越大,信息熵越大
信息熵/交叉熵/KL散度/JS散度/Wasserstein距离_第1张图片
2、交叉熵: C E ( p , q ) = − ∑ p ( x ) l o g ( q ( x ) ) CE(p,q) = -\sum p(x)log(q(x)) CE(p,q)=p(x)log(q(x))
现实中以q(x)来近似本来的p(x),即以q(x)来编码传递p(x)需要的比特数

3、KL散度/相对熵 = 交叉熵-信息熵
D K L ( p ∣ ∣ q ) = C E ( p , q ) − H ( p ( x ) ) = − ∑ p ( x ) l o g ( q ( x ) ) − ( − ∑ p ( x ) l o g ( p ( x ) ) ) = − ∑ p ( x ) l o g q ( x ) p ( x ) = ∑ p ( x ) l o g p ( x ) q ( x ) D_{KL}(p||q)=CE(p,q)-H(p(x))= -\sum p(x)log(q(x))-(-\sum p(x)log(p(x)))=-\sum p(x)log\frac{q(x)}{p(x)}=\sum p(x)log\frac{p(x)}{q(x)} DKL(pq)=CE(p,q)H(p(x))=p(x)log(q(x))(p(x)log(p(x)))=p(x)logp(x)q(x)=p(x)logq(x)p(x)

任何事情都有代价;以p(x)近似表达编码q(x)肯定需要付出代价/附加信息,这个代价就是KL散度。(分类loss中,由于第一项信息熵为常数,所以最小化交叉熵等价于最小化KL散度,即最小化real和output分布)

KL散度在一定程度上衡量了两个分布的差异,具有如下性质:
信息熵/交叉熵/KL散度/JS散度/Wasserstein距离_第2张图片
3、JS散度

KL散度不对称,不满足三角不等式,因此不是距离
JS散度满足对称(满不满足三角不等式不清楚):
在这里插入图片描述

4、F散度(最通用)
在这里插入图片描述
信息熵/交叉熵/KL散度/JS散度/Wasserstein距离_第3张图片

5、Wasserstein距离(Earth-Mover推土机距离)
我们回头看看KL散度的公式,就可以发现KL散度和JS散度有一个隐蔽的问题:如果两个分布​ [公式] 离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。

Wasserstein距离可以解决这种问题,Wasserstein距离也叫做Earth-Mover(推土机)距离,之所以叫做推土机距离是因为,它可以形象的使用两个土堆的的移动问题来表达。

我们将两个分布 [公式] 看成两堆土,如下图所示,希望把其中的一堆土移成另一堆土的位置和形状,有很多种可能的方案。推土代价被定义为移动土的量乘以土移动的距离,在所有的方案中,存在一种推土代价最小的方案,这个代价就称为两个分布的 Wasserstein 距离。
信息熵/交叉熵/KL散度/JS散度/Wasserstein距离_第4张图片

你可能感兴趣的:(凸优化,机器学习)