交叉熵和散度 交叉熵 对于分布为p(x)的随机变量,熵H(p)表示其最优编码长度。交叉熵(Cross Entropy)是按照概率分布q的最优编码对真实分布为p的信息进行编码的长度,定义为: $$ \begin{aligned} H(p, q) &=\mathbb{E}{p}[-\log q(x)] \\ &=-\sum{x} p(x) \log q(x) \end{aligned} $$ 在给定p的情况下,如果q和p越接近,交叉熵越小;如果q和p越远,交叉熵就越大。 KL散度 KL 散度(Kullback-Leibler Divergence),也叫KL 距离或相对熵(Relative Entropy),是用概率分布q来近似p时所造成的信息损失量。
对于分布为p(x)的随机变量,熵H(p)表示其最优编码长度。交叉熵(Cross Entropy)是按照概率分布q的最优编码对真实分布为p的信息进行编码的长度,定义为:
在给定p的情况下,如果q和p越接近,交叉熵越小;如果q和p越远,交叉熵就越大。
KL 散度(Kullback-Leibler Divergence),也叫KL 距离或相对熵(Relative Entropy),是用概率分布q来近似p时所造成的信息损失量。KL散度是按照概率分布q的最优编码对真实分布为p的信息进行编码,其平均编码长度(即交叉熵)H(p, q)和p的最优平均编码长度(即熵)H(p)之间的差异。 对于离散概率分布p 和q,从q到p的KL散度定义为:
其中为了保证连续性,定义
KL 散度总是非负的,KL(, ) ≥ 0,可以衡量两个概率分布之间的距离。KL散度只有当p = q时,KL(, ) = 0。如果两个分布越接近,KL散度越小;如果两个分布越远,KL散度就越大。 但KL散度并不是一个真正的度量或距离。
仔细观察(3)式,p(x)是已知的真实分布,要求使上式最小的q(x)。
考虑当 p(x)=0 时,这时q(x)取任何值都可以,因为log \frac{p(x)}{q(x)}这一项对整体的KL散度没有影响。当p(x)>0时,这一项对log \frac{p(x)}{q(x)}整体的KL散度就会产生影响,为了使(3)式最小,q(x)又处于log \frac{p(x)}{q(x)}中分母的位置,所以尽量大一些才好q(x)。
总体而言,对于正向 KL 散度,在p(x)大的地方,想让 KL 散度小,就需要q(x)的值也尽量大;在p(x)小的地方,q(x)对整体 KL 影响并不大(因为 log 项本身分子很小,又乘了一个非常小的p(x))。换一种说法,要想使正向 KL 散度最小,则要求在 p 不为 0 的地方,q 也尽量不为 0,所以正向 KL 散度被称为是 zero avoiding。此时得到的分布 q 是一个比较 “宽” 的分布。
仔细观察(4)式,p(x)是已知的真实分布,要求使上式最小的q(x)。
考虑当 p(x)=0 时,这时为了使(4)式变小,q(x)取0值才可以,否则(4)式就会变成无穷大。当p(x)>0时,为了使(4)式变小,必须在p(x)小的地方,q(x)也小。在p(x)大的地方可以适当忽略。换一种说法,要想使反向 KL 散度最小,则要求在 p 为 0 的地方,q 也尽量为 0,所以反向 KL 散度被称为是 zero forcing。此时得到分布 q 是一个比较 “窄” 的分布。
假如p(x)是两个高斯分布的混合,q(x)是单个高斯,用q(x)去近似p(x),两种KL散度该如何选择?

对于正向KL散度来说,q(x)的分布图像更符合第二行,正向KL散度更在意中p(x)的常见事件,也就是首先要保证p(x)峰值附近的x,在q(x)中的概率密度值不能为0。当 p 具有多个峰时,q 选择将这些峰模糊到一起,以便将高概率质量放到所有峰上。
对于反向KL散度来说,q(x)的分布图像更符合第一行。反向KL散度更在意中p(x)的罕见事件,也就是首先要保证p(x)低谷附件的x,在q(x)中的概率密度值也较小。当 p 具有多个峰并且这些峰间隔很宽时,如该图所示,最小化 KL 散度会选择单个峰,以避免将概率密度放置在 p 的多个峰之间的低概率区域中。
JS 散度(Jensen-Shannon Divergence)是一种对称的衡量两个分布相似度
的度量方式,定义为:
其中m=\frac{1}{2} (p+q) 。
JS 散度是 KL 散度一种改进。但两种散度都存在一个问题,即如果两个分布p, q没有重叠或者重叠非常少时,KL散度和JS散度都很难衡量两个分布的距离。
Wasserstein距离(Wasserstein Distance)也用于衡量两个分布之间的距离。对于两个分布q_1 , q_2,p^{th}-Wasserstein距离定义为:
其中\Gamma\left(q_{1}, q_{2}\right)是边际分布为q_1 , q_2 的所有可能的联合分布集合,(, )为x和y的距离,比如
如果将两个分布看作是两个土堆,联合分布 \gamma(x, y) 看作是从土堆 q1 的位置x到土堆q2 的位置y的搬运土的数量,并有
\mathbb{E}_{(x, y) \sim \gamma(x, y)}\left[d(x, y)^{p}\right]
可以理解为在联合分布\gamma(x, y)下把形状为q_1的土堆搬运到形状为q_2 的土堆所需的工作量:
其中从土堆q_1中的点 x 到土堆 q_2中的点 y 的移动土的数量和距离分别为(, )和d(x, y)^{p} 。因此,Wasserstein 距离可以理解为搬运土堆的最小工作量,也称为推土机距离(Earth-Mover’s Distance,EMD)。
Wasserstein 距离相比 KL 散度和 JS 散度的优势在于:即使两个分布没有重叠或者重叠非常少,Wasserstein距离仍然能反映两个分布的远近。
对于 \mathbb{R}^{N} 空间中的两个高斯分布 p=\mathcal{N}\left(\mu_{1}, \Sigma_{1}\right) 和 q=\mathcal{N}\left(\mu_{2}, \Sigma_{2}\right), 它们的2^{\text {nd }} Wasserstein 距离为
当两个分布的方差为 0 时,2^{nd}-Wasserstein 距离等价于欧氏距离。