论文标题:Learning deep representations by mutual information estimation and maximization
论文链接:https://arxiv.org/abs/1808.06670
论文来源:ICLR 2019
之前的相关博客:MINE:随机变量互信息的估计方法
一、概述
本文提出的方法主要目的是训练一个表示学习的函数(也就是一个encoder)来最大化其输入与输出之间的互信息(Mutual Information, MI)。高维连续随机变量互信息的估计一向是个困难的问题,然而最近的方法(上面的博客)已经可以利用神经网络来对互信息进行有效地计算。
本文的方法利用互信息的估计来进行表示学习,并且表明完整的输入和encoder输出之间的互信息(global MI)对于学习到有用的表示来说是不足够的,输入的结构也起到一定作用,也就是说,表示与输入的局部部分(比如图片的patch)之间的互信息(local MI)能够提高表示的质量,而global MI在给定表示重构输入方面有重要的作用。
二、方法
- 介绍
使用和
分别代表encoder
的定义域和值域,
是由
参数化的神经网络。这些参数定义了一系列的encoder
。现在已有输入空间上的一些训练样本
,对应经验概率分布
。定义
代表encoder输出的分布,也就是说
是首先采样
然后采样
所产生的
的分布。
下图展示了本文中使用的一种encoder,大致过程就是将图片通过卷积网络得到的feature map,然后将这些feature map合并成图片的表示向量
:
![](https://img.haomeiwen.com/i22097296/c38310f98206d5fc.png)
本文的encoder按照以下标准进行训练:
①优化参数,使得互信息
最大,这里的互信息取决于目标的不同,可以是表示与完整输入
之间的,也可以是与输入的子集之间的;
②取决于目标的不同,分布可以匹配先验分布
,这可以引导encoder的输出具有想要的特征。
- 互信息最大化(Global MI)
- 框架
下图展示了互信息(global MI)最大化的基本框架:
![](https://img.haomeiwen.com/i22097296/2eea9f99f22e6048.png)
大概过程是将图片的特征向量与其feature map或者其他图片的feature map组合成样本对然后使用Discriminator进行打分,过程依照MINE方法(见文章开头博客),该方法是训练一个分类器来区分来自和
的联合分布
或者边缘分布乘积
的样本。MINE采用KL散度的Donsker-Varadhan表示的下界进行互信息估计:
这里,就是由
参数化的Discriminator。学习
的过程可以通过同时估计和最大化
来进行:
这里代表“global”。注意
由
和
两部分组成,也就是
,其中
将图片映射成
的feature map,
将feature map映射成表示向量
。上面的式子中
其实指的是
,global MI也就是要最大化
和
。另外
,
代表连接encoder输出和Discriminator的函数。
- JS散度形式
另外,我们的目的是要最大化互信息,而不是估计其值(上述KL散度形式的互信息可以作为互信息的估计值),因此我们可以采用其他非KL散度的形式,比如Jensen-Shannon MI估计:
是输入样本,
是从
中采样的样本,
是softplus激活函数。
那么上面的式子是怎么来的呢?首先按照文章前面MINE博客中推导得到的f-divergence的对偶形式,有:
而JS散度对应的共轭函数,激活函数为
,代入得到:
与
的互信息等价于
和
的KL散度,但并不等价于其JS散度,不过通过最大化JS散度也可以最大化互信息,但是不能用来作为互信息的估计值。
在上面的式子中,和
相当于正样本对,
和
相当于负样本对,最大化互信息的过程就是让正样本对的得分
变大,让负样本对的得分
的得分变小。
- InfoNCE形式
本文还利用了另外一种互信息的下界表示的形式,由InfoNCE损失而来。InfoNCE的目标是最大化正样本对的得分,最小化负样本对的得分,其形式为:
因此类似的InfoNCE形式的互信息的下界就是:
本文实验采用了JSD和InfoNCE两种形式,在下游任务上,使用InfoNCE通常优于JSD,尽管这种效果随着更具挑战性的数据而减弱。InfoNCE和DV需要大量的负样本,而JSD对负样本的数量够没那么敏感,在负样本数量较小时效果优于InfoNCE。
- 算法
Global MI的算法为:
①从数据集中采样原始图像,接着计算feature map
;
②获得图像的表示;
③将组成正样本对;
④从数据集中采样不同的图像,接着计算feature map
;
⑤将组成负样本对;
⑥对JSD或者InfoNCE的目标函数进行梯度下降。
- 局部互信息最大化(Local MI)
- 框架
对于global MI来说,某些任务可能是不必要的。举例来说,像素级别的噪声对于图像分类任务来说是不重要的,所以图片的表示不应该编码这些噪声。为了能够使得图像的表示更适合分类任务,我们可以最大化表示与图像的局部块之间的平均互信息,这样有利于表示包含图像块之间共享的信息。
下图展示了local MI的框架:
![](https://img.haomeiwen.com/i22097296/71cb105f9619bf35.png)
具体的做法是,首先跟前面的做法一样,将图片编码成的feature map,
,然后得到
,然后最大化每个位置的
与
的平均互信息:
- 算法
Local MI的算法为:
①从数据集中采样原始图像,接着计算feature map
;
②获得图像的表示;
③将组成正样本对;
④从数据集中采样不同的图像,接着计算feature map
;
⑤将组成负样本对;
⑥对JSD或者InfoNCE的目标函数(local)进行梯度下降。
- 将表示与先验分布匹配
由于任务的不同,有时我们希望学习到的表示能够有一些统计学上的限制,具体的,我们可能希望分布能够与一个先验分布
(比如均匀分布、高斯分布等)相匹配。具体的方法是训练另一个Discriminator
,来按照GAN的方式使得
逼近
:
GAN的相关内容:
生成对抗网络-基本概念|深度学习(李宏毅)(二十二)
生成对抗网络-理论部分|深度学习(李宏毅)(二十三)
- Deep InfoMax的目标函数
Global MI、Local MI以及先验匹配的目标函数可以结合在一起,那么Deep InfoMax最终的完整目标函数就是:
其中是超参数。
三、 实验
本文实验在CIFAR10和CIFAR100、Tiny ImageNet、STL-10以及CelebA等数据集上进行。以下为部分实验结果:
![](https://img.haomeiwen.com/i22097296/8412e754c9c848b8.png)
![](https://img.haomeiwen.com/i22097296/c56759b8c47d01e0.png)
![](https://img.haomeiwen.com/i22097296/e2e4ef9166370f18.png)
![](https://img.haomeiwen.com/i22097296/3219fd40799c7dbe.png)
![](https://img.haomeiwen.com/i22097296/126a55009d93ad0b.png)
参考资料
Learning Deep Representations by Mutual Information Estimation and Maximization
对 Deep InfoMax(DIM)的理解
Deep InfoMax
网友评论