MINE:Mutual Information Neural Estimation

Mutual Information Neural Estimation

摘要

文章认为高维连续随机变量之间的互信息可以通过在神经网络上梯度下降优化得到。
文中提出了互信息估计器(Mutual Information Neural Estimator),它在维度和
样本大小上都是可伸缩的,可以通过反向传播训练的,并且具有很强的一致性
文章提出了一些可以使用MINE来最小化或最大化互信息的
应用。作者应用MINE来改进对抗训练的生成模型。还使用MINE来实现信息瓶颈,将其应用到监督分类中:结果表明,在这些设置中,灵活性和性能有很大的改善。

背景知识补充1

与相关系数相比,互信息可以捕获非线性关系
H ( X ) = − ∑ x p ( x ) l o g ( p ( x ) ) = − E x [ l o g ( p ( x ) ) ] H ( X ∣ Z ) = − ∑ z p ( z ) ∑ x p ( x ∣ z ) l o g ( p ( x ∣ z ) ) I ( X , Z ) = ∑ x ∑ z p ( x , z ) l o g p ( x , z ) p ( x ) p ( z ) = D K L ( p ( x , z ) ∣ ∣ p ( x ) p ( z ) ) = H ( X ) − H ( X ∣ Z ) = H ( Z ) − H ( Z ∣ X ) \begin{align} H(X) &= -\sum_x p(x)log(p(x))\\ &= -\mathbb{E}_x[log(p(x))] \notag\\ H(X|Z) &= -\sum_z p(z)\sum_x p(x|z)log(p(x|z))\\ I(X, Z) &= \sum_x\sum_z p(x, z)log\frac{p(x, z)}{p(x)p(z)}\\ &= D_{KL}(p(x, z)||p(x)p(z)) \\ &= H(X)-H(X|Z)\\ &= H(Z)-H(Z|X) \end{align} H(X)H(XZ)I(X,Z)=xp(x)log(p(x))=Ex[log(p(x))]=zp(z)xp(xz)log(p(xz))=xzp(x,z)logp(x)p(z)p(x,z)=DKL(p(x,z)∣∣p(x)p(z))=H(X)H(XZ)=H(Z)H(ZX)
H H H是信息熵, I I I是互信息。

KL散度的对偶(Dual)表示

Donsker-Varadhan represention

  • 理论1(Q,P指分布,dQ,dP密度函数):
    D K L ( P ∣ ∣ Q ) = sup ⁡ T : Ω → R E P [ T ] − l o g ( E Q [ e T ] ) D_{KL}(P||Q)=\sup\limits_{T:\Omega\rightarrow R}\mathbb{E}_P{[T]}-log(\mathbb{E}_Q[e^T]) DKL(P∣∣Q)=T:ΩRsupEP[T]log(EQ[eT])
    其中 T T T表示所有任意函数。
  • 证明理论1:令 d G = 1 Z e T d Q dG=\frac{1}{Z}e^TdQ dG=Z1eTdQ,其中 Z = E Q [ e T ] Z=\mathbb{E}_Q[e^T] Z=EQ[eT].
    d G d Q = 1 Z e T E P [ E Q ] = E Q E P [ l o g d G d Q ] = E P [ T ] − l o g ( Z ) Δ : = D K L ( P ∣ ∣ Q ) − ( E P [ T ] − l o g ( Z ) ) = E P [ l o g d P d Q − l o g d G d Q ] = E P [ l o g d P d G ] = D K L ( P ∣ ∣ G ) ≥ 0 D K L ( P ∣ ∣ Q ) ≥ E P [ T ] − l o g ( E Q [ e T ] ) \begin{align} \frac{dG}{dQ}&=\frac{1}{Z}e^T\\ \mathbb{E}_P[\mathbb{E}_Q]&=\mathbb{E}_Q\\ \mathbb{E}_P[log\frac{dG}{dQ}]&=\mathbb{E}_P[T]-log(Z)\\ \Delta :&=D_{KL}(P||Q)-(\mathbb{E}_P[T]-log(Z))\\ &= \mathbb{E}_P\left[log\frac{dP}{dQ}-log\frac{dG}{dQ}\right]\\ &= \mathbb{E}_P\left[log \frac{dP}{dG}\right]=D_{KL}(P||G)\ge 0\\ D_{KL}(P||Q)&\ge \mathbb{E}_P{[T]}-log(\mathbb{E}_Q[e^T]) \end{align} dQdGEP[EQ]EP[logdQdG]Δ:DKL(P∣∣Q)=Z1eT=EQ=EP[T]log(Z)=DKL(P∣∣Q)(EP[T]log(Z))=EP[logdQdPlogdQdG]=EP[logdGdP]=DKL(P∣∣G)0EP[T]log(EQ[eT])
    可以看到,当 G = = P G==P G==P时,取等号,即边界是贴近的, T ∗ = l o g d P d Q + C T^*=log\frac{dP}{dQ}+C T=logdQdP+C

f f f-divergence representation

D K L ( P ∣ ∣ Q ) ≥ sup ⁡ T ∈ F E P [ T ] − l o g ( E Q [ e T − 1 ] ) D_{KL}(P||Q)\ge\sup\limits_{T\in \mathcal{F}}\mathbb{E}_P{[T]}-log(\mathbb{E}_Q[e^{T-1}]) DKL(P∣∣Q)TFsupEP[T]log(EQ[eT1])

尽管对于足够大的族 F \mathcal{F} F,两种表示都可以逼近散度,但是Donsker-Varadhan 界限更强。
E P [ T ] − l o g ( E Q [ e T ] ) ≥ E P [ T ] − l o g ( E Q [ e T − 1 ] ) \mathbb{E}_P{[T]}-log(\mathbb{E}_Q[e^{T}])\ge\mathbb{E}_P{[T]}-log(\mathbb{E}_Q[e^{T-1}]) EP[T]log(EQ[eT])EP[T]log(EQ[eT1])

方法

使用神经网络参数化函数 T T T
I ( X , Z ) ≥ 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)\ge I_\Theta(X, Z)\\ I_\Theta(X, Z)=\sup\limits_{\theta\in\Theta}\mathbb{E}_{P_{XZ}}{[T_\theta]}-log(\mathbb{E}_{P_{X}P_{Z}}[e^{T_\theta}]) I(X,Z)IΘ(X,Z)IΘ(X,Z)=θΘsupEPXZ[Tθ]log(EPXPZ[eTθ])
训练神经网络尽量增大 I Θ I_\Theta IΘ以逼近 I ( X , Z ) I(X, Z) I(X,Z)

定义MINE:

I ( X , Z ) ^ n = sup ⁡ θ ∈ Θ E P X Z n [ T θ ] − l o g ( E P X n P Z n [ e T θ ] ) \widehat{I(X,Z)}_n=\sup\limits_{\theta\in\Theta}\mathbb{E}_{P^n_{XZ}}{[T_\theta]}-log(\mathbb{E}_{P^n_{X}P^n_{Z}}[e^{T_\theta}]) I(X,Z) n=θΘsupEPXZn[Tθ]log(EPXnPZn[eTθ])
其中 P n P^n Pn表示独立同分布的n个样本的经验分布。

算法中提供了 MINE 实现的详细信息。类似的定义和算法也适用于 f − d i v e r g e n c e f-divergence fdivergence散度公式,称为 M I N E − f MINE-f MINEf。它通常会导致互信息的估计量更宽松。然而,在小批量设置中,MINE的SGD梯度是有偏差的,不过可以调小学习率来调节偏差。

在这里插入图片描述

定义强一致性

如果对任意 ϵ ≥ 0 \epsilon\ge 0 ϵ0,都存在一个正整数 N N N和一个网络,使得:
∀ n ≥ N , ∣ I ( X , Z ) − I ( X , Z ) ^ ∣ ≤ ϵ \forall n\ge N,\quad |I(X,Z)-\widehat{I(X,Z)}|\le \epsilon nN,I(X,Z)I(X,Z) ϵ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1486583.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

OCC 布尔运算

目录 一、裁剪原理 二、使用详解 1. 差集 (Cut) 2. 联合 (Fuse/Union) 3. 交集 (Common/Intersection) 三、例子 1、两个盒子裁剪 2、任意面裁剪 四、总结 一、裁剪原理 OpenCASCADE (OCC) 中的裁剪(Boolean Cut)原理主要基于布尔运算。布尔运算是计算机图形学中的…

力扣第二十四题——两两交换链表中的节点

内容介绍 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head [1,2,3,4] 输出&#xff…

Python-numpy基础--------2

1.full()创建函数 目录 1.full()创建函数 2.创建单位矩阵 3.linspace创建 4.logspace 创建 5.二维数组的索引和切片: 1.索引直接获取 在NumPy中,full() 函数用于创建一个给定形状、类型的新数组,并用指定的值填充这个数组。这个函数非…

数模·插值和拟合算法

插值 将离散的点连成曲线或者线段的一种方法 题目中有"任意时刻任意的量"时使用插值,因为插值一定经过样本点 插值函数的概念 插值函数与样本离散的点一一重合 插值函数往往有多个区间,多个区间插值函数样态不完全一样,简单来说就…

AWS监控工具,监控性能指标

执行AWS监视是为了跟踪在AWS环境中主动运行的应用程序工作负载和资源,AWS监视器跟踪各种AWS云指标,以帮助提高在其上运行的应用程序的整体性能。 借助阈值突破警报系统,AWS应用程序监控在识别性能瓶颈来源方面起着至关重要的作用&#xff0c…

linux版mysql8配置表名不区分大小写

mysql8的安装步骤可参考: mysql8的安装步骤 如果在安装mysql8,初始化之前,没有在my.cnf配置忽略大小写配置: [mysqld] lower_case_table_names1我们就需要重新初始化mysql 1 备份数据库文件 2 停止mysql服务 systemctl stop …

HTML+CSS+JS扫雷(可自定义雷数,大小,可插旗)

源代码在最后面 点赞❤️ 关注⭐️谢谢&#x1f61c; 实现功能 随机扫雷自定义地雷数、游戏棋盘大小插旗 效果图&#xff08;部分图片&#xff09; 源代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><m…

学习TS-类

class Car{ // 字段 name : String; age : Number; //静态 静态成员可以直接通过类名调用 static shooch:string; // 构造函数 // 构造函数会在对象创建时调用 constructor(name:string,age:Number){ //在实例方法中&#xff0c;this就表示当前当前的实例 //在构造函数中当前对…

kettle从入门到精通 第七十九课 ETL之kettle kettle读取数据库BLOB字段转换为文件

上一课我们讲解了如何将文件以二进制流的方式写入数据库&#xff0c;本节课我们一起学习下如何将二进制数据读取为文件。 1、将二进制流转换为文件这里主要用到了步骤【文本文件输出】。表输入步骤从表中读取blob字段&#xff0c;java代码定义二进制流转换为文件的全路径&#…

openmv学习笔记(24电赛笔记)

#opemv代码烧录清除详解 openmv的代码脱离IDE运行程序&#xff0c;只需要在IDE中将代码烧录道flash里面&#xff0c;断开IDE连接&#xff0c;上电之后&#xff0c;会自动执行main.py中的程序&#xff0c;IDE烧录的时候&#xff0c;会默认将程序后缀保存为 .py文件。 ​​​​​…

SpringBoot3整合Druid报错Cannot load driver class: org.h2.Driver

报错显示springboot自带的H2数据库报错&#xff0c;其实是因为druid并未加载进去。如果你其它配置都没问题的话&#xff0c;请检查druid的依赖是什么版本的&#xff0c;因为springboot3刚开始是不支持druid的。 方案一&#xff1a; 即需要手动在resources目录下创建META-INF/s…

利用request + BeautifulSoup 模块批量爬取内容,实现批量获取书名对应的豆瓣评分

文章目录 代码代码解释控制台输出结果 代码 #-*- coding:utf-8 -*- from bs4 import BeautifulSoup import requests, time, jsonheaders {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.39…

实际生活中网段不通的典型分析及处理方案

关于端口&#xff1a; 应用层&#xff1a; FTP TELNET SMTP DNS TFTP SNMP 端口号&#xff1a; 21 23 25 53 69 161 传输层&#xff1a; TCP UDP&#xff08;DNS两个都占…

《Java初阶数据结构》----3.<线性表---LinkedList与链表>

目录 前言 一、链表的简介 1.1链表的概念 1.2链表的八种结构 重点掌握两种 1.3单链表的常见方法 三、单链表的模拟实现 四、LinkedList的模拟实现&#xff08;双链表&#xff09; 4.1 什么是LinkedList 4.2LinkedList的使用 五、ArrayList和LinkedList的区别 前言 …

【C++中的IO流和文件操作精讲】

【本节目标】 1. C语言的输入与输出 2. 流是什么 3. CIO流 4. stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 ⭐scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。 ⭐printf(): 将…

苹果和乔布斯的传奇故事,从车库创业到万亿市值巨头

苹果公司的品牌故事&#xff0c;就像一部充满创新、挑战与辉煌的科幻大片&#xff0c;让人目不暇接。 故事始于1976年&#xff0c;那时&#xff0c;年轻的史蒂夫乔布斯与斯蒂夫沃兹尼亚克在加州的一个简陋车库里&#xff0c;用他们的热情和智慧&#xff0c;捣鼓出了世界上第一…

【vue教程】三. 组件复用和通信(7 种方式)

目录 本章涵盖知识点回顾 组件开发与复用组件的创建和注册全局定义局部定义单文件组件&#xff08;.vue 文件&#xff09;组件的注册方式在实例中注册在 Vue 中注册 组件的 props定义 props传递 props 组件事件自定义事件的创建和触发父组件监听子组件事件父组件处理事件 Vue 实…

数字孪生:变电站监测和运维的智能化实践

随着夏季高温天气的到来&#xff0c;我国用电也迎来了高峰。用电负荷持续走高&#xff0c;对全国各地电网运维也迎来了挑战。电力系统作为现代社会的基础设施&#xff0c;其稳定性和可靠性至关重要&#xff0c;变电站则是实现电力系统电力互联互通的枢纽。 在传统变电站中&…

Python文字识别

在对于图片文字识别中&#xff0c;可以采用Python进行&#xff0c;对于下面图片&#xff1a; """ 程序实现思路&#xff1a; 1、怎么从图片中识别文字&#xff1f; 实例化OCR模型进行识别 2、怎么打开文件进行识别&#xff1f; 识别图片中的文字内容 …

SVN 服务 安装部署 Docker(compose) 方式

通过 dockerhub 或者 命令行运行 &#xff1a; docker search svn 查看 svn 的镜像 如命令行&#xff1a; [rootSGP ~]# docker search svn NAME DESCRIPTION STARS OFFICIAL AUTOMATED garethflower…