Mutual Information Neural Estimation梳理

Mutual Information Neural Estimation

原文
参考:https://ruihongqiu.github.io/posts/2020/07/mine/

背景

互信息可以衡量两个随机变量之间的相关性:

I ( X ; Z ) = H ( X ) − H ( X ∣ Z ) = H ( Z ) − H ( Z ∣ X ) = H ( X ) + H ( Z ) − H ( X , Z ) I(X;Z)=H(X)-H(X|Z)=H(Z)-H(Z|X)=H(X)+H(Z)-H(X,Z) I(X;Z)=H(X)H(XZ)=H(Z)H(ZX)=H(X)+H(Z)H(X,Z)

互信息量和KL散度的关系如下:

I ( X ; Z ) = ∑ x ∈ X ∑ z ∈ Z p ( x , z ) l o g p ( x , y ) p ( x ) p ( y ) = D ( p ( x , y ) ∣ ∣ p ( x ) p ( y ) ) I(X;Z)=\sum_{x\in \mathcal{X}}\sum_{z\in \mathcal{Z}}p(x,z)log\frac{p(x,y)}{p(x)p(y)}=D(p(x,y)||p(x)p(y)) I(X;Z)=xXzZp(x,z)logp(x)p(y)p(x,y)=D(p(x,y)p(x)p(y))

但实际计算中,特别是对于高维空间来说,其边缘熵 H ( X ) H(X) H(X) H ( Z ) H(Z) H(Z)和条件熵 H ( X ∣ Z ) H(X|Z) H(XZ)难以计算。f89025089ec5c780a5d7a6df7c0193e

解决方案

作者给出了两种利用梯度下降算法逼近的互信息估计,分别是The Donsker-Varadhan representationThe f-divergence representation

The Donsker-Varadhan representation

D K L ( P ∣ ∣ Q ) = sup ⁡ T : Ω → R E P [ T ] − l o g ( E Q [ e T ] ) D_{KL}(\mathbb{P}||\mathbb{Q})=\sup\limits_{T:\Omega \rightarrow \mathbb{R}}\mathbb{E_{\mathbb{P}}}[T]-log(\mathbb{E_{\mathbb{Q}}}[e^T]) DKL(PQ)=T:ΩRsupEP[T]log(EQ[eT])

其中 P \mathbb{P} P Q \mathbb{Q} Q是两个任意分布, T T T是从样本空间 Ω \Omega Ω映射到实数 R \mathbb{R} R的任意函数。

证明见大佬Ruihong Qiu中2.2节

The f-divergence representation

The f-divergence representation可以看做是The Donsker-Varadhan representation的弱化版本,由2.1和不等式 x e > l o g x \frac{x}{e}> log\mathcal{x} ex>logx易得。

最终形式

I ( X ; Z ) ≥ I Θ ( X , Z ) = sup ⁡ θ ∈ Θ E P X Z [ T θ ] − l o g ( E P X P Z [ e T θ ] ) I(X;Z)\geq I_{\Theta}(X,Z)=\sup\limits_{\theta\in\Theta}\mathbb{E}_{\mathbb{P}_{XZ}}[T_{\theta}]-log(\mathbb{E}_{\mathbb{P}_X\mathbb{P}_Z}[e^{T_{\mathbb{\theta}}}]) I(X;Z)IΘ(X,Z)=θΘsupEPXZ[Tθ]log(EPXPZ[eTθ])

我们希望用一个可以利用梯度更新的神经网络模型来计算上式,则有:

I ( X ; Z ) n ^ = sup ⁡ θ ∈ Θ E P X Z ( n ) [ T θ ] − l o g ( E P X ( n ) P ^ Z ( n ) [ e T θ ] ) \hat{I(X;Z)_n}=\sup\limits_{\theta\in\Theta}\mathbb{E}_{\mathbb{P}^{(n)}_{XZ}}[T_{\theta}]-log(\mathbb{E}_{\mathbb{P}^{(n)}_X\mathbb{\hat{P}}^{(n)}_Z}[e^{T_{\mathbb{\theta}}}]) I(X;Z)n^=θΘsupEPXZ(n)[Tθ]log(EPX(n)P^Z(n)[eTθ])

其中 T T T是一个神经网络; X X X Z Z Z是两个样本集。得到估计的梯度为:

G ^ B = E B [ ∇ θ T θ ] − E B [ ∇ θ T θ e T θ ] E B [ e T θ ] \hat{G}_B=\mathbb{E}_B[\nabla_{\theta}T_{\theta}]-\frac{\mathbb{E}_B[\nabla_{\theta}T_{\theta}e^{T_{\theta}}]}{\mathbb{E}_B[e^{T_{\theta}}]} G^B=EB[θTθ]EB[eTθ]EB[θTθeTθ]

但是这种方式是有偏的。可以通过滑动平均来估计 E B [ e T θ ] \mathbb{E}_B[e^{T_\theta}] EB[eTθ]

完整的过程如下:

image-20210906185214958

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值