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,fff-divergence都较为熟悉。对于KL散度的另一表示:Donsker-Varadhan representation有,其中TTT表示函数:
DKL(P∥Q)=supT:Ω→REP[T]−log(EQ[eT)])(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(P∥Q)=T:Ω→RsupEP[T]−log(EQ[eT)])(1)
推导如下:
EP[T]−log(EQ[exp(T)])=∑ipiti−log∑iqieti→∂[∑ipiti−log∑iqieti]∂tj=0→pj−qjetj∑iqieti=0→pj∑iqieti=qjetj→tj=logpjqj+log∑iqieti(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)])=i∑piti−logi∑qieti→∂tj∂[∑ipiti−log∑iqieti]=0→pj−∑iqietiqjetj=0→pji∑qieti=qjetj→tj=logqjpj+logi∑qieti(2)
令后面一部分log∑iqieti\log \sum_{i} q_i \mathrm{e}^{t_i}log∑iqieti为α\alphaα,并将tjt_jtj带入tit_iti所以有:
∑ipiti−log∑iqieti=∑ipiti−log∑iqieti=∑ipi(logpjqj+α)−log∑iqielog(pjqj+α)=∑ipi(logpjqj+α)−log∑ieαqipjqj=∑i(pilogpjqj)+α−αlog∑iqipjqj=∑i(pilogpjqj)+α−α⋅log1=∑ipilogpjqj=DKL(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} i∑piti−logi∑qieti=i∑piti−logi∑qieti=i∑pi(logqjpj+α)−logi∑qielog(qjpj+α)=i∑pi(logqjpj+α)−logi∑eαqiqjpj=i∑(pilogqjpj)+α−αlogi∑qiqjpj=i∑(pilogqjpj)+α−α⋅log1=i∑pilogqjpj=DKL(p∥q)(3)
即找到取最优的tjt_jtj带入即是 DKL(p∥q)D_{\mathbf{KL}}(p \| q)DKL(p∥q),其实已经可以感觉这样可以用梯度下降的方式就能找到这个函数了。
Tips:一般的,当DKL(P∥Q)D_{\mathbf{KL}}(P \| Q)DKL(P∥Q)表示的是PPP,QQQ之间距离,一般训练就让这两个分布之间距离最小。而DKL((P,Q)∥(P⋅Q))D_{\mathbf{KL}}((P,Q) \| (P\cdot Q))DKL((P,Q)∥(P⋅Q))就表示的是PPP,QQQ之间的互信息,一般训练最大化,这个分布就越相似。
3.Details
- 互信息定义如下所示,其中PXZ\mathbb { P } _ { X Z }PXZ,为联合分布;PX\mathbb { P } _ { X }PX和PZ\mathbb { P } _ { Z }PZ为边缘分布:
I(X;Z)=H(X)−H(X∣Z)=∫X×ZlogdPXZdPX⊗PZdPXZ=DKL(PXZ∥PX⊗PZ)(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(X∣Z)=∫X×ZlogdPX⊗PZdPXZdPXZ=DKL(PXZ∥PX⊗PZ)(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θ∈ΘEP(X,Z)[Tθ]−log(EPX×PZ[eTθ])(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}}^nP^n是nnn个抽取的样本的经验分布:
I(X;Z)n^=supθ∈ΘEP(X,Z)n[Tθ]−log(EPXn×P^Zn[eTθ])(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\supsup最大化有两层意义,最大化以便接近互信息的值,最大化来使互信息最大使两个分布相似),训练网络完成任务目标。
- 互信息估计应用到GAN后,其损失函数就改变了。类似有infoGAN,其中ϵ\epsilonϵ,ς\varsigmaς分别是生成器的输入噪声和编码,独立变量;所以互信息就有I(G([ϵ,ς]);ς)I(G([\epsilon,\varsigma]);\varsigma )I(G([ϵ,ς]);ς),目标生成器输出G([ϵ,ς])G([\epsilon,\varsigma])G([ϵ,ς])与编码ς\varsigmaς之间互信息最大,即生成器的目标函数有下式,独立变量直接喂数据即可:
argmaxGE[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)
argmaxGθEϵ,ς[log(D(G(ϵ,ς)))]+β⋅[Eϵ,ς(Tθ)−log(Eϵ,ς[eTθ])](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θ,要求这个网络的输出值越高越好。
MINE:Mutual Information Neural Estimation相关推荐
- Mutual Information Neural Estimation梳理
Mutual Information Neural Estimation 原文 参考:https://ruihongqiu.github.io/posts/2020/07/mine/ 背景 互信息可以 ...
- 【论文笔记——DIM】Learning Deep Representations By Mutual Information Estimation and Maximization
arxiv:https://arxiv.org/abs/1808.06670 code:https://github.com/rdevon/DIM report video:https://www.y ...
- 论文解读(GMI)《Graph Representation Learning via Graphical Mutual Information Maximization》
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 机器学习特征筛选:互信息法(mutual information)
机器学习特征筛选:互信息法(mutual information) 互信息法多为分类问题的分类变量的筛选方法 经典的互信息也是评价定性自变量对定性因变量的相关性的,为了处理定量数据,最大信息系数法被提 ...
- 双目立体匹配经典算法之Semi-Global Matching(SGM)概述:匹配代价计算之互信息(Mutual Information,MI)...
半全局立体匹配算法Semi-Global Matching,SGM由学者Hirschmüller在2005年所提出1,提出的背景是一方面高效率的局部算法由于所基于的局部窗口视差相同的假设在很多情况 ...
- 机器学习中的数学——距离定义(二十九):点间互信息(Pointwise Mutual Information, PMI)
分类目录:<机器学习中的数学>总目录 相关文章: · 距离定义:基础知识 · 距离定义(一):欧几里得距离(Euclidean Distance) · 距离定义(二):曼哈顿距离(Manh ...
- Graph Representation Learning via Graphical Mutual Information Maximization
摘要 本文研究了如何以无监督的方式将丰富的图结构数据信息保存和提取到嵌入空间中.并提出了GMI( Graphical Mutual Information)来测量输入图和高级隐藏表示之间的相关性.GM ...
- Paper:《Graph Neural Networks: A Review of Methods and Applications—图神经网络:方法与应用综述》翻译与解读
Paper:<Graph Neural Networks: A Review of Methods and Applications-图神经网络:方法与应用综述>翻译与解读 目录 < ...
- 论文记录:Reasoning with neural tensor networks for Knowledge Base completion
论文记录:Reasoning with neural tensor networks for Knowledge Base completion Paper points Neural tensor ...
最新文章
- 20190226-利用序列化完成小型记账程序
- 老大批评我不要为了“分库分表”而“分库分表”
- linux系统硬盘表识
- SAP行列转换的一个方法
- Swift2.0语言教程之类的方法
- 基于NSGAII的多目标优化算法的MATLAB仿真
- python3 批量定义多个变量_Python 3.8 新功能大揭秘
- 有机物燃烧的化学方程式配平(洛谷P1994题题解,Java语言描述)
- paip.python3 的类使用跟python2 的不同之处
- java 导出excel 有图表的_java导出excel图表
- 熊猫烟花集团完美见证异速联远程接入系统
- 定时任务时间表达式规则
- 小米浏览器地址栏欺骗漏洞原理与利用分析
- 《Miss Talk》第07期:对话拓课云联合创始人兼CTO 王晓伟
- 概率论得学习和整理6:概率的分布
- 一,银行软件测试工作总结
- cad用键盘放大缩小_CAD的放大缩小快捷键是什么?
- 一些符号及颜色的英语写法总结
- 华为交换机常见的ACL操作
- 详解Java中的main方法