MINE:Mutual Information Neural Estimation

Mutual Information Neural Estimation

Paper:https://arxiv.org/pdf/1801.04062v4.pdf
Code:https://github.com/mzgubic/MINE
Tips:ICML2018的一篇paper。
(阅读笔记)

1.Main idea

  • 高维连续随机变量的互信息的估计可以被神经网络通过梯度下降实现。the estimation of mutual information between high dimensional continuous random variables can be achieved by gradient descent over neural networks.
  • We present a Mutual Information Neural Estimator (MINE).
  • 实验提出了一些应用。

2.Intro

  • 提出了MINE,which is scalable, flexible, and completely trainable via back-prop, as well as provide a thorough theoretical analysis.
  • 互信息比GAN的一些目标函数表现出更优秀的结果。
  • We use MINE to apply the Information Bottleneck method.可用于信息瓶颈。(平衡准确度和复杂度的一种方法 It is designed for finding the best tradeoff between accuracy and complexity)
  • Mutual Information, f f f-divergence都较为熟悉。对于KL散度的另一表示:Donsker-Varadhan representation有,其中 T T T表示函数:
    D K L ( P ∥ Q ) = sup ⁡ T : Ω → R E P [ T ] − log ⁡ ( E Q [ e T ) ] ) (1) \begin{aligned} D_{\mathbf{KL}}(\mathbb{P}\|\mathbb{Q}) = \sup_{T:\Omega \rightarrow \mathbb{R}} \mathbb{E}_{\mathbb{P}}[T] - \log (\mathbb{E}_{\mathbb{Q}} [\mathrm{e}^T)] ) \tag{1} \end{aligned} DKL(PQ)=T:ΩRsupEP[T]log(EQ[eT)])(1)
    推导如下:
    E P [ T ] − log ⁡ ( E Q [ exp ⁡ ( T ) ] ) = ∑ i p i t i − log ⁡ ∑ i q i e t i → ∂ [ ∑ i p i t i − log ⁡ ∑ i q i e t i ] ∂ t j = 0 → p j − q j e t j ∑ i q i e t i = 0 → p j ∑ i q i e t i = q j e t j → t j = log ⁡ p j q j + log ⁡ ∑ i q i e t i (2) \begin{aligned} \mathbb{E}_{\mathbb{P}}[T] & - \log (\mathbb{E}_{\mathbb{Q}} [\exp(T)] ) = \sum_{i}p_i t_i - \log \sum_i q_i \mathrm{e}^{t_i}\\ & \rightarrow \frac{\partial \left[ \sum_{i}p_i t_i - \log \sum_i q_i \mathrm{e}^{t_i} \right]}{\partial t_j }=0 \\ & \rightarrow p_j - \frac{q_j \mathrm{e}^{t_j}}{\sum_{i} q_i \mathrm{e}^{t_i}} =0 \\ & \rightarrow p_j \sum_{i} q_i \mathrm{e}^{t_i} = q_j \mathrm{e}^{t_j}\\ & \rightarrow t_j = \log \frac{p_j}{q_j} + \log \sum_{i} q_i \mathrm{e}^{t_i} \\ \tag{2} \end{aligned} EP[T]log(EQ[exp(T)])=ipitilogiqietitj[ipitilogiqieti]=0pjiqietiqjetj=0pjiqieti=qjetjtj=logqjpj+logiqieti(2)
    令后面一部分 log ⁡ ∑ i q i e t i \log \sum_{i} q_i \mathrm{e}^{t_i} logiqieti α \alpha α,并将 t j t_j tj带入 t i t_i ti所以有:
    ∑ i p i t i − log ⁡ ∑ i q i e t i = ∑ i p i t i − log ⁡ ∑ i q i e t i = ∑ i p i ( log ⁡ p j q j + α ) − log ⁡ ∑ i q i e log ⁡ ( p j q j + α ) = ∑ i p i ( log ⁡ p j q j + α ) − log ⁡ ∑ i e α q i p j q j = ∑ i ( p i log ⁡ p j q j ) + α − α log ⁡ ∑ i q i p j q j = ∑ i ( p i log ⁡ p j q j ) + α − α ⋅ log ⁡ 1 = ∑ i p i log ⁡ p j q j = D K L ( p ∥ q ) (3) \begin{aligned} \sum_{i}p_i t_i - \log \sum_i q_i \mathrm{e}^{t_i} & = \sum_{i}p_i t_i - \log \sum_i q_i \mathrm{e}^{t_i} \\ & = \sum_{i}p_i(\log \frac{p_j}{q_j} + \alpha) - \log \sum_i q_i \mathrm{e}^{\log (\frac{p_j}{q_j} + \alpha)} \\ & = \sum_{i}p_i(\log \frac{p_j}{q_j} + \alpha) - \log \sum_i \mathrm{e}^{\alpha} q_i \frac{p_j}{q_j} \\ & = \sum_{i}(p_i \log \frac{p_j}{q_j})+\alpha - \alpha \log \sum_i q_i \frac{p_j}{q_j} \\ & = \sum_{i}(p_i \log \frac{p_j}{q_j})+\alpha - \alpha \cdot \log 1 \\ & = \sum_{i}p_i \log \frac{p_j}{q_j} \\ & = D_{\mathbf{KL}}(p \| q) \\ \tag{3} \end{aligned} ipitilogiqieti=ipitilogiqieti=ipi(logqjpj+α)logiqielog(qjpj+α)=ipi(logqjpj+α)logieαqiqjpj=i(pilogqjpj)+ααlogiqiqjpj=i(pilogqjpj)+ααlog1=ipilogqjpj=DKL(pq)(3)
    即找到取最优的 t j t_j tj带入即是 D K L ( p ∥ q ) D_{\mathbf{KL}}(p \| q) DKL(pq),其实已经可以感觉这样可以用梯度下降的方式就能找到这个函数了。
    Tips:一般的,当 D K L ( P ∥ Q ) D_{\mathbf{KL}}(P \| Q) DKL(PQ)表示的是 P P P Q Q Q之间距离,一般训练就让这两个分布之间距离最小。而 D K L ( ( P , Q ) ∥ ( P ⋅ Q ) ) D_{\mathbf{KL}}((P,Q) \| (P\cdot Q)) DKL((P,Q)(PQ))就表示的是 P P P Q Q Q之间的互信息,一般训练最大化,这个分布就越相似。

3.Details

  • 互信息定义如下所示,其中 P X Z \mathbb { P } _ { X Z } PXZ,为联合分布; P X \mathbb { P } _ { X } PX P Z \mathbb { P } _ { Z } PZ为边缘分布:
    I ( X ; Z ) = H ( X ) − H ( X ∣ Z ) = ∫ X × Z log ⁡ d P X Z d P X ⊗ P Z d P X Z = D K L ( P X Z ∥ P X ⊗ P Z ) (4) \begin{aligned} I(X;Z) &=H(X)-H(X|Z) \\ &= \int _ { \mathcal { X } \times \mathcal { Z } } \log \frac { d \mathbb { P } _ { X Z } } { d \mathbb { P } _ { X } \otimes \mathbb { P } _ { Z } } d \mathbb { P } _ { X Z } \\ &= D _ { K L } \left( \mathbb { P } _ { X Z } \| \mathbb { P } _ { X } \otimes \mathbb { P } _ { Z } \right) \tag{4} \end{aligned} I(X;Z)=H(X)H(XZ)=X×ZlogdPXPZdPXZdPXZ=DKL(PXZPXPZ)(4)
    通过神经网络进行信息测量的表达式 I Θ ( X , Z ) I_{\Theta}(X,Z) IΘ(X,Z)如下所示,其中 T θ T_{\theta} Tθ是神经网络函数,其实 T θ T_{\theta} Tθ或者 F \mathcal{F} F是使样本集映射到实数 R \mathbb{R} R的泛函, F = { T θ } θ ∈ Θ \mathcal{F}=\{T_{\theta} \}_{\theta \in \Theta} F={Tθ}θΘ,通过对 θ \theta θ优化得到不同的 T θ T_{\theta} Tθ来接近互信息的值:
    I ( X ; Z ) ≥ I Θ ( X , Z ) = sup ⁡ θ ∈ Θ E P ( X , Z ) [ T θ ] − log ⁡ ( E P X × P Z [ e T θ ] ) (5) \begin{aligned} I(X;Z) & \ge I_{\Theta}(X,Z) \\ &= \sup_{\theta \in \Theta}\mathbb{E}_{\mathbb{P}_{(X,Z)}} \left[ T_{\theta} \right] - \log (\mathbb{E}_{\mathbb{P}_{X} \times \mathbb{P}_{Z}} \left[ e^{T_{\theta}} \right]) \tag{5} \end{aligned} I(X;Z)IΘ(X,Z)=θΘsupEP(X,Z)[Tθ]log(EPX×PZ[eTθ])(5)
    于是有MINE的最终定义如下,其中 P ^ n \mathbb{\hat{P}}^n P^n n n n个抽取的样本的经验分布:
    I ( X ; Z ) n ^ = sup ⁡ θ ∈ Θ E P ( X , Z ) n [ T θ ] − log ⁡ ( E P X n × P ^ Z n [ e T θ ] ) (6) \begin{aligned} \widehat{I(X;Z)_n} = \sup_{\theta \in \Theta}\mathbb{E}_{\mathbb{P}^n_{(X,Z)}} \left[ T_{\theta} \right] - \log (\mathbb{E}_{\mathbb{P}_{X}^n \times \mathbb{\hat{P}}^n_{Z}} \left[ e^{T_{\theta}} \right]) \tag{6} \end{aligned} I(X;Z)n =θΘsupEP(X,Z)n[Tθ]log(EPXn×P^Zn[eTθ])(6)
  • 训练过程如下所示。主要分为两个步骤,训练网络逼近互信息找到下界(理解:这篇paper并没有像infogan一样重新构造一个分布去近似,而是直接最大化。其实 sup ⁡ \sup sup最大化有两层意义,最大化以便接近互信息的值,最大化来使互信息最大使两个分布相似),训练网络完成任务目标。
    在这里插入图片描述
  • 互信息估计应用到GAN后,其损失函数就改变了。类似有infoGAN,其中 ϵ \epsilon ϵ ς \varsigma ς分别是生成器的输入噪声和编码,独立变量;所以互信息就有 I ( G ( [ ϵ , ς ] ) ; ς ) I(G([\epsilon,\varsigma]);\varsigma ) I(G([ϵ,ς]);ς),目标生成器输出 G ( [ ϵ , ς ] ) G([\epsilon,\varsigma]) G([ϵ,ς])与编码 ς \varsigma ς之间互信息最大,即生成器的目标函数有下式,独立变量直接喂数据即可:
    arg ⁡ max ⁡ G E [ log ⁡ ( D ( G ( ϵ , ς ) ) ) + β I ( G ( [ ϵ , ς ] ) ; ς ) ] (7) \begin{aligned} \arg \max_{G} \mathbb{E} \left[ \log (D(G(\epsilon,\varsigma))) +\beta I(G([\epsilon,\varsigma]);\varsigma ) \right] \\ \tag{7} \end{aligned} argGmaxE[log(D(G(ϵ,ς)))+βI(G([ϵ,ς]);ς)](7)
    arg ⁡ max ⁡ G θ E ϵ , ς [ log ⁡ ( D ( G ( ϵ , ς ) ) ) ] + β ⋅ [ E ϵ , ς ( T θ ) − log ⁡ ( E ϵ , ς [ e T θ ] ) ] (8) \begin{aligned} \arg \max_{G_\theta} \mathbb{E}_{\epsilon,\varsigma} \left[ \log (D(G(\epsilon,\varsigma))) \right]+\beta \cdot \left[ \mathbb{E}_{\epsilon,\varsigma} (T_{\theta}) - \log (\mathbb{E}_{\epsilon,\varsigma} \left[ e^{T_{\theta}} \right]) \right] \\ \tag{8} \end{aligned} argGθmaxEϵ,ς[log(D(G(ϵ,ς)))]+β[Eϵ,ς(Tθ)log(Eϵ,ς[eTθ])](8)
    相当于在GAN的基础上,输入生成器的编码 ς \varsigma ς与生成器的输出 G ( [ ϵ , ς ] ) G([\epsilon,\varsigma]) G([ϵ,ς])通过一个神经网络映射函数 T θ T_{\theta} Tθ,要求这个网络的输出值越高越好。
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值