MINE:随机变量互信息的估计方法
论文标题:MINE: Mutual Information Neural Estimation
论文链接:https://arxiv.org/abs/1801.04062
论文来源:ICML 2018
一、概述
互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。互信息代表了两个随机变量的相关程度或者说依赖程度,因此在数据科学中是一种应用广泛的度量标准。
互信息能够捕捉随机变量之间的非线性统计依赖,因此可以作为变量之间真正的依赖关系的度量。然而,互信息的度量一直以来都是困难的。目前的方法仅限于对离散变量互信息的估计以及一些已知概率分布的连续变量,对于一般任务来说,互信息的估计是困难的。本文提出一种基于KL散度对偶表示的神经网络方法(称为MINE),其为互信息的估计提供了一种通用的解决方案。
对于两个随机变量和
,它们的互信息表示为:
和
之间的互信息可认为是在给定
时变量
所减少的不确定性:
另外,和
的互信息等价于其联合分布
和其边缘分布的乘积
之间的KL散度:
KL散度的定义为:
也就是说联合分布和边缘分布的乘积之间的KL散度越大,随机变量之间的依赖程度就越大。到目前为止,互信息的估计问题就转化为了KL散度的估计问题。
二、KL散度的对偶表示
MINE中应用的关键技术是KL散度的对偶表示,主要采用Donsker-Varadhan表示,同时也对比了f-divergence表示,两种方法分别记作MINE和MINE-f。
- f-divergence表示
- 定义
f-divergence的定义如下:
f-divergence衡量分布和
之间的差异程度,满足在
和
完全一致的情况下取得最小值为
,在有所差异的情况下值为一个正数,这一点可以通过凸函数的性质得到:
和
完全一致时:
和
有差异时:
事实上KL散度就是f-divergence的一个特例:
- 共轭函数
每一个凸函数都有一个共轭函数(Conjugate Function),记作,公式为:
这个函数也就是说要找出给定的情况下变动
能达到的最大值,限制
必须要在
的定义域内,以下图为例,给定不同的
,代入所有的
能得到的最大值就是
:
共轭
按照上面的方式能够理解前面的公式。那么的图像是什么样子的呢?我们可以按照以下方式来考虑,在给定
,使
变动,那么就能得到一条以
为斜率的直线,对于不同的
就对应着不同的直线:
共轭
而此时,要求,就只需要从
的位置坐垂线,这样与垂线相交最上面的直线对应的
就是能使得
取得最大值的
:
共轭
那么在整个的定义域上,将位于最上面的直线的片段连接起来就是
的图像了,当然这只是便于理解的一种形象化的思路:
共轭
按照上面的思路,可以很直观地看出也是凸函数。
另外,我们按照上面的方式把有关的共轭函数的每条直线都画出来:
f(x)=xlogx
得到的共轭函数的图像像是一个指数函数,其实的共轭函数就是
,求解共轭函数可以直接用数学的方法计算出来,对于
来说,先把
代入前面共轭函数的表达式:
对于括号里面的式子,给定
,需要求解
来使最大化
,可以直接对
求导,也就有
,然后解得
,也就是说,对于给定的
,能使得
最大的
就是
,将
代入原来的式子就可以求得共轭函数了:
另外(在满足是闭凸函数的条件下,这里就不深究了)有
是
的共轭函数,
也是
的共轭函数,也就是说:
是
互为共轭函数:
这叫做二次共轭。
- f-divergence的估计方法
由上面二次共轭的内容,那么对于f-divergence中的凸函数,就可以用
来替换它:
现在对于任意的一个,它的输入是
,输出是
,将
代入上面的式子中,一定有以下关系:
上面的不等式是恒成立的,我们也就得到了的下界,来调整函数
(
是任意的)使得这个下界取得最大值就可以用这个最大值来得到
:
- KL散度的f-divergence表示
下表中展示了一些不同的divergence对应的函数以及它的共轭函数:
共轭函数
现在我们知道当时f-divergence就是KL散度(KL-divergence),而此时
的共轭函数为
,将这些代入上面的式子,得到KL散度的f-divergence表示:
接下来为了与论文中使用的符号一致,我们可以将上述结论写为:
注意这里的代表任意函数
。在本文提出的深度方法中,
是一个神经网络,此时
就不是任意函数了,
可以取到的所有函数的集合,记作
。现在可以得到
的下界:
通过梯度下降的方法不断学习,就可以使用这个下界近似两个分布
和
之间的KL散度。
- Donsker-Varadhan表示
Donsker-Varadhan表示来源于Asymptotic evaluation of certain markov process expectations for large time. IV这篇文章,其具体的形式为:
类似的,当是一个神经网络时,得到用于估计
的下界:
直观上来看,对于固定的,Donsker-Varadhan表示中的下界总是比f-divergence表示要大。MINE主要采用的是Donsker-Varadhan表示,实验中MINE效果要比MINE-f要好一些。
三、MINE
- 方法
根据上面的理论对于两个随机变量和
的互信息,假设
是由
参数化的神经网络,记作
,参数
,互信息的边界就可以表示为:
其中:
上面式子中的期望可以通过以下方式估计:
①从分布和
中采样,样本
和
可以简单地通过丢弃样本
中的
获得;
②沿着batch维度打乱联合分布的样本。
接下来,对于一个分布,我们用
代表其与
个
样本相关的经验分布。
使用代表神经网络参数化的函数集合,MINE定义为:
下面是MINE的算法,MINE-f也类似:
算法
- 随机梯度偏置的矫正
对于MINE而言,一个mini-batch内随机梯度下降的梯度为:
这里代表一个mini-batch的样本。由于损失函数中
的存在,导致上式梯度中的第二项分子分母都有求期望的过程,然而当用采样来代替期望的时候,分子分母的期望应该独立采样,不能使用同一个mini-batch的样本。因此上式的梯度是有偏的,原因就是第二项分子分母的样本不独立。
矫正的方法是将分母上的改用真正的
。这个值不是采用采样的方法估计的,在文中是采用滑动平均的方法计算
,将该值记为
。则梯度变为:
该式相当于在原有的梯度的基础上,在后一项前面乘以了一个权重,
相当于当前mini-batch的
均值和滑动平均的
均值的比值。注意
在计算中被当做一个常数。虽然
中也包含有参数
的项,但并不参与梯度的计算。
现在由梯度反推目标函数,得到:
因此 MINE 的偏差校正过程仅需要在原始目标函数的后一项乘以一个常数。
参考资料
MINE: Mutual Information Neural Estimation
【深度学习 111】MINE
F-GAN & MINE