数学基础_4——信息论

本篇博客不包含深度学习中所有的数学知识,只是我在学习过程中,对不会或者不熟悉的数学知识的记录,因此部分内容和推导我会省略掉。

自信息

任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是它们承载的信息量会有所不同。

如昨天下雨这个已知事件,因为已经发生,既定事实,那么它的信息量就为0。如明天会下雨这个事件,因为未有发生,那么这个事件的信息量就大。

从上面例子可以看出信息量是一个与事件发生概率相关的概念,而且可以得出,事件发生的概率越小,其信息量越大。

定义事件 X = x X=x X=x 的自信息为
I ( x ) = − log ⁡ 2 P ( x ) I\left(x\right)=-\log_2 P\left(x\right) I(x)=log2P(x)

香农熵(Shannon Entropy)

当一个事件发生的概率为 p ( x ) p\left(x\right) p(x),那么它的信息量是 − log ⁡ p ( x ) -\log{p\left(x\right)} logp(x)

如果把这个事件的所有可能性罗列出来,就可以求得该事件信息量的期望

信息量的期望就是熵,所以熵的公式为
H ( x ) = E x ∼ P [ I ( x ) ] = − E x ∼ P [ log ⁡ P ( x ) ] H\left(\mathrm{x}\right)=\mathbb{E}_{\mathrm{x}\sim P}\left[I\left(x\right)\right]=-\mathbb{E}_{\mathrm{x}\sim P}\left[\log{P\left(x\right)}\right] H(x)=ExP[I(x)]=ExP[logP(x)]
也可以表述为
H ( x ) = − ∑ i = 1 n p ( x i ) log ⁡ p ( x i ) H\left(\mathrm{x}\right)=-\sum_{i=1}^{n}p\left(x_i\right)\log{p\left(x_i\right)} H(x)=i=1np(xi)logp(xi)
对于 0-1 分布问题,熵的计算可以简化为
H ( x ) = − p ( x ) log ⁡ ( p ( x ) ) − ( 1 − p ( x ) ) log ⁡ ( 1 − p ( x ) ) H\left(\mathrm{x}\right)=-p\left(x\right)\log{\left(p\left(x\right)\right)}-\left(1-p\left(x\right)\right)\log\left(1-p\left(x\right)\right) H(x)=p(x)log(p(x))(1p(x))log(1p(x))

相对熵(KL 散度)(Kullback-Leibler divergence)

对于同一个随机变量 x \mathbf{x} x,如果其有两个单独的概率分布 P ( x ) P(\mathbf{x}) P(x) Q ( x ) Q(\mathbf{x}) Q(x),可以使用 KL 散度来衡量这两个分布的差异。KL 散度越小,真实分布与近似分布之间的匹配就越好。
D K L ( P ∥ Q ) = E x ∼ P [ log ⁡ P ( x ) Q ( x ) ] = E x ∼ P [ log ⁡ P ( x ) − log ⁡ Q ( x ) ] D_{\mathrm{KL}}(P \| Q)=\mathbb{E}_{\mathrm{x} \sim P}\left[\log \frac{P(x)}{Q(x)}\right]=\mathbb{E}_{\mathrm{x} \sim P}[\log P(x)-\log Q(x)] DKL(PQ)=ExP[logQ(x)P(x)]=ExP[logP(x)logQ(x)]
在机器学习中, P P P 往往用来表示样本的真实分布, Q Q Q 用来表示模型所预测的分布,那么 KL 散度就可以计算两个分布的差异,也就是 Loss
D K L ( P ∥ Q ) = ∑ i = 1 n P ( x i ) log ⁡ 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)logQ(xi)P(xi)
因为 KL 散度是非负的并且衡量的是两个分布之间的差异,它经常被用作分布之间的某种距离

然而,它并不是真的距离因为它不是对称的:对于某些 P P P Q Q Q D K L ( P ∥ Q ) ≠ D K L ( Q ∥ P ) D_{KL}(P\|Q)\ne D_{KL}(Q\|P) DKL(PQ)=DKL(QP)

这种非对称性意味着选择 D K L ( P ∥ Q ) D_{KL}(P\|Q) DKL(PQ) 还是 D K L ( Q ∥ P ) D_{KL}(Q\|P) DKL(QP) 影响很大。

对于 KL 散度的直观解释可以看这篇文章:初学机器学习:直观解读KL散度的数学概念

如何证明 KL 散度大于等于 0 0 0 (未解决)

交叉熵(Cross Entropy)

两个分布 P P P Q Q Q 之间的交叉熵定义为:
H ( P , Q ) = − E x ∼ P [ log ⁡ Q ( x ) ] H\left(P,Q\right)=-\mathbb{E}_{x\sim P}\left[\log{Q\left(x\right)}\right] H(P,Q)=ExP[logQ(x)]

将 KL 散度公式变形:
D K L ( P ∥ Q ) = E x ∼ P [ log ⁡ P ( x ) − log ⁡ Q ( x ) ] D_{\mathrm{KL}}(P \| Q)=\mathbb{E}_{\mathrm{x} \sim P}[\log P(x)-\log Q(x)] DKL(PQ)=ExP[logP(x)logQ(x)]
D K L ( P ∥ Q ) = E x ∼ P [ log ⁡ P ( x ) ] − E x ∼ P [ log ⁡ Q ( x ) ] D_{\mathrm{KL}}(P \| Q)=\mathbb{E}_{\mathrm{x}\sim{P}}[\log{P(x)}]-\mathbb{E}_{\mathrm{x}\sim{P}}[\log{Q(x)}] DKL(PQ)=ExP[logP(x)]ExP[logQ(x)]
D K L ( P ∥ Q ) = − H ( P ) − E x ∼ P [ log ⁡ Q ( x ) ] D_{\mathrm{KL}}(P \| Q)=-H(P)-\mathbb{E}_{\mathbf{x}\sim P}[\log Q(x)] DKL(PQ)=H(P)ExP[logQ(x)]
D K L ( P ∥ Q ) = − H ( P ) + H ( P , Q ) D_{\mathrm{KL}}(P \| Q)=-H(P)+H(P,Q) DKL(PQ)=H(P)+H(P,Q)

所以可得到交叉熵和 KL 散度的关系:
H ( P , Q ) = H ( P ) + D K L ( P ∥ Q ) H(P,Q)=H(P)+D_{KL}(P\|Q) H(P,Q)=H(P)+DKL(PQ)
在机器学习中,需要评估 label 和 predicts 之间的差距,使用 KL 散度刚刚好,即 D K L ( y ∥ y ^ ) D_{KL}(\mathbf{y}\|\hat{\mathbf{y}}) DKL(yy^)

由于 KL 散度中的前一部分 − H ( y ) −H(y) H(y) 不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用交叉熵做 loss,评估模型。

在信息论中, lim ⁡ x → 0 x log ⁡ x = 0 \lim_{x\to 0}x\log x=0 limx0xlogx=0

JS 散度(Jensen-Shannon divergence)

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

一般地,JS 散度是对称的,其取值是 0 到 1 之间。定义如下:
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)

Wasserstein 距离

KL 散度和 JS 散度的问题

如果两个分布 P , Q P,Q P,Q 离得很远,完全没有重叠的时候,那么 KL 散度值是没有意义的,而 JS 散度值是一个常数。这在学习算法中是比较致命的,这就意味着这一点的梯度为 0 0 0,梯度消失了。

Wasserstein距离 度量两个概率分布之间的距离,定义如下
W ( P 1 , P 2 ) = inf ⁡ γ ∼ ∏ ( P 1 , P 2 ) E ( x , y ) ∼ γ [ ∥ x − y ∥ ] W(P_1,P_2)=\inf_{\gamma\sim\prod(P_1,P_2)}\mathbb{E}_{(x,y)\sim\gamma}[\left\|x-y\right\|] W(P1,P2)=γ(P1,P2)infE(x,y)γ[xy]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值