交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)

1. 信息量

任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是他们承载的信息量会有所不同。
信息量是一个与事件发生概率相关的概念,事件发生的概率越小,其信息量越大。

定义:
假设 X X X 是一个离散型变量,其取值集合为 χ \chi χ ,概率分布函数为:

p ( x ) = P r ( X = x ) , x ∈ χ p(x)=Pr(X=x), x\in\chi p(x)=Pr(X=x),xχ

则事件 X = x 0 X=x_0 X=x0 的信息量为:

I ( x 0 ) = − l o g ( p ( x 0 ) ) I(x_0)=-log(p(x_0)) I(x0)=log(p(x0))


2. 熵

熵就是信息量的期望,熵是对于一个概率分布来说的,而信息量是针对一件特定的事件而言的
假设事件 X X X 共有 n n n 种可能,发生 x i x_i xi 的概率为 p ( x i ) p(x_i) p(xi),则该事件的熵 H ( X ) H(X) H(X) 为:

H ( x ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) H(x)=-\sum_{i=1}^{n}p(x_i)log(p(x_i)) H(x)=i=1np(xi)log(p(xi))


3. 相对熵(KL散度)

对于同一个随机变量 x x x 有两个单独的概率分布 p ( x ) p(x) p(x) q ( x ) q(x) q(x) ,可以使用KL散度(Kullback-Leibler(KL) divergence)来衡量这两个分布的差异

在机器学习中, p p p往往用来标识样本的真实分布, q q q用来表示模型所预测的分布,那么KL散度就可以计算这两个分布之间的差异,也就是Loss值

D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p||q)=\sum_{i=1}^n{p(x_i)log(\frac{p(x_i)}{q(x_i)})} DKL(pq)=i=1np(xi)log(q(xi)p(xi))

  • q q q的分布越接近 p p p,散度值越小,即损失值越小

  • 对数函数是凸函数,所以KL散度值为非负数

  • KL散度不是对称的

  • KL散度不满足三角不等式


4. 交叉熵

KL散度公式进行变形

D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) = − H ( p ( x ) ) + [ − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) ] D_{KL}(p||q)=\sum_{i=1}^{n}{p(x_i)log(\frac{p(x_i)}{q(x_i)})}=\sum_{i=1}^{n}{p(x_i)log(p(x_i))}-\sum_{i=1}^{n}{p(x_i)log(q(x_i))}=-H(p(x))+[-\sum_{i=1}^{n}{p(x_i)log(q(x_i))}] DKL(pq)=i=1np(xi)log(q(xi)p(xi))=i=1np(xi)log(p(xi))i=1np(xi)log(q(xi))=H(p(x))+[i=1np(xi)log(q(xi))]

上式的前一部分是 p p p的熵,后一部分就是交叉熵:

H ( p , q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(p,q)=-\sum_{i=1}^{n}{p(x_i)log(q(x_i))} H(p,q)=i=1np(xi)log(q(xi))

在机器学习中,需要评估labelpredicts之间的差距,使用KL散度刚刚好,即 D K L ( y ∣ ∣ y ^ ) D_{KL}(y||\hat{y}) DKL(yy^)

由于KL散度中的前一部分 − H ( y ) -H(y) H(y)是不变的,故在优化过程中,一般直接使用交叉熵做loss评估模型


5. JS散度

JS散度度量两个概率分布的相似性,是基于KL散度的变体,解决了KL散度非对称的问题。

一般地,JS散度是对称的,其取值在01之间,定义为:

J S ( P 1 ∣ ∣ P 2 ) = 1 2 K L ( P 1 ∣ ∣ P 1 + P 2 2 ) + 1 2 K L ( P 2 ∣ ∣ P 1 + P 2 2 ) JS(P_1||P_2)=\frac{1}{2}KL(P_1||\frac{P_1+P_2}{2})+\frac{1}{2}KL(P_2||\frac{P_1+P_2}{2}) JS(P1P2)=21KL(P12P1+P2)+21KL(P22P1+P2)


6. Wasserstein距离

KL散度SL散度度量的问题:
如果两个分布 P P P Q Q Q离得很远,完全没有重叠的部分,那么KL散度值是没有意义的,而JS散度值是一个常数。这意味着这一点的梯度为0

Wasserstein距离:度量两个概率分布之间的距离

W ( P 1 , P 2 ) = inf ⁡ γ ∈ ∏ ( P 1 , P 2 ) E ( x , y ) ∼ γ [ ∣ ∣ x − y ∣ ∣ ] W(P_1,P_2)=\inf\limits_{\gamma\in\prod(P_1,P_2)}\mathbb{E_{(x,y)\sim\gamma}}[||x-y||] W(P1,P2)=γ(P1,P2)infE(x,y)γ[xy]

  • ∏ ( P 1 , P 2 ) \prod(P_1,P_2) (P1,P2) P 1 P_1 P1 P 2 P_2 P2两个分布组合起来的所有可能的联合分布的集合。

  • 对于每一个可能的联合分布 γ \gamma γ,可以从中采样 ( x , y ) ∼ γ (x,y)\sim\gamma (x,y)γ得到一个样本 x x x y y y,并计算出这对样本的距离 ∣ ∣ x − y ∣ ∣ ||x-y|| xy,所以可以计算联合分布 γ \gamma γ下,样本对距离的期望值 E ( x , y ) ∼ γ [ ∣ ∣ x − y ∣ ∣ ] \mathbb{E_{(x,y)\sim\gamma}}[||x-y||] E(x,y)γ[xy]

  • 在所有可能的联合分布中能够对这个期望值取到的下界 inf ⁡ γ ∈ ∏ ( P 1 , P 2 ) E ( x , y ) ∼ γ [ ∣ ∣ x − y ∣ ∣ ] \inf\limits_{\gamma\in\prod(P_1,P_2)}\mathbb{E_{(x,y)\sim\gamma}}[||x-y||] γ(P1,P2)infE(x,y)γ[xy]就是Wasserstein距离

直观上可以把 E ( x , y ) ∼ γ [ ∣ ∣ x − y ∣ ∣ ] \mathbb{E_{(x,y)\sim\gamma}}[||x-y||] E(x,y)γ[xy]理解为在 γ \gamma γ这个路径规划下把土堆 P 1 P_1 P1挪到土堆 P 2 P_2 P2所需要的消耗,而Wasserstein距离就是在最优路径规划下的最小消耗,所以Wasserstein距离又叫Earth-Mover距离(推土机距离)。

Wasserstein距离相比于KL散度SL散度的优势在于:

即使两个分布的支撑集没有重叠或者重叠非常小,Wasserstein距离仍然能够反映两个分布的远近,而在此情况下JS散度是常量,KL散度则可能没有意义。


参考:

https://zhuanlan.zhihu.com/p/74075915

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值