Deep InfoMax:基于互信息最大化的表示学习

论文标题: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在给定表示重构输入方面有重要的作用。

二、方法

  1. 介绍

使用和分别代表encoder的定义域和值域,是由参数化的神经网络。这些参数定义了一系列的encoder。现在已有输入空间上的一些训练样本,对应经验概率分布。定义代表encoder输出的分布,也就是说是首先采样然后采样所产生的的分布。

下图展示了本文中使用的一种encoder,大致过程就是将图片通过卷积网络得到的feature map,然后将这些feature map合并成图片的表示向量:

encoder

本文的encoder按照以下标准进行训练:
①优化参数,使得互信息最大,这里的互信息取决于目标的不同,可以是表示与完整输入之间的,也可以是与输入的子集之间的;
②取决于目标的不同,分布可以匹配先验分布,这可以引导encoder的输出具有想要的特征。

  1. 互信息最大化(Global MI)
  • 框架

下图展示了互信息(global MI)最大化的基本框架:

global MI

大概过程是将图片的特征向量与其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散度对应的共轭函数,激活函数为,代入得到:

D_{JSD}(\mathbb{J}||\mathbb{M})=E_{\mathbb{J}}[log\frac{1}{1+e^{-T_{\psi ,\omega }(x,y)}}]+E_{\mathbb{M}}[log(1-e^{-log(1+e^{-T_{\psi ,\omega }(x,y)})})]\\ =E_{\mathbb{J}}[log\frac{1}{1+e^{-T_{\psi ,\omega }(x,y)}}]+E_{\mathbb{M}}[log(1-\frac{1}{1+e^{-T_{\psi ,\omega }(x,y)}})]\\ =E_{\mathbb{J}}[-sp(-T_{\psi ,\omega }(x,y))]-E_{\mathbb{M}}[sp(T_{\psi ,\omega }(x,y))]\\ =\hat{I}_{\psi ,\omega }^{(JSD)}(X;E_{\psi }(X))

与的互信息等价于和的KL散度,但并不等价于其JS散度,不过通过最大化JS散度也可以最大化互信息,但是不能用来作为互信息的估计值。

在上面的式子中,和相当于正样本对,和相当于负样本对,最大化互信息的过程就是让正样本对的得分变大,让负样本对的得分的得分变小。

  • InfoNCE形式

本文还利用了另外一种互信息的下界表示的形式,由InfoNCE损失而来。InfoNCE的目标是最大化正样本对的得分,最小化负样本对的得分,其形式为:

因此类似的InfoNCE形式的互信息的下界就是:

本文实验采用了JSD和InfoNCE两种形式,在下游任务上,使用InfoNCE通常优于JSD,尽管这种效果随着更具挑战性的数据而减弱。InfoNCE和DV需要大量的负样本,而JSD对负样本的数量够没那么敏感,在负样本数量较小时效果优于InfoNCE。

  • 算法

Global MI的算法为:
①从数据集中采样原始图像,接着计算feature map;
②获得图像的表示;
③将组成正样本对;
④从数据集中采样不同的图像,接着计算feature map;
⑤将组成负样本对;
⑥对JSD或者InfoNCE的目标函数进行梯度下降。

  1. 局部互信息最大化(Local MI)
  • 框架

对于global MI来说,某些任务可能是不必要的。举例来说,像素级别的噪声对于图像分类任务来说是不重要的,所以图片的表示不应该编码这些噪声。为了能够使得图像的表示更适合分类任务,我们可以最大化表示与图像的局部块之间的平均互信息,这样有利于表示包含图像块之间共享的信息。

下图展示了local MI的框架:

local MI

具体的做法是,首先跟前面的做法一样,将图片编码成的feature map,,然后得到,然后最大化每个位置的与的平均互信息:

  • 算法

Local MI的算法为:
①从数据集中采样原始图像,接着计算feature map;
②获得图像的表示;
③将组成正样本对;
④从数据集中采样不同的图像,接着计算feature map;
⑤将组成负样本对;
⑥对JSD或者InfoNCE的目标函数(local)进行梯度下降。

  1. 将表示与先验分布匹配

由于任务的不同,有时我们希望学习到的表示能够有一些统计学上的限制,具体的,我们可能希望分布能够与一个先验分布(比如均匀分布、高斯分布等)相匹配。具体的方法是训练另一个Discriminator,来按照GAN的方式使得逼近:

(\hat{\omega },\hat{\psi })_{P}=\underset{\psi }{argmin}\; \underset{\phi }{argmax}\hat{D}_{\phi }(\mathbb{V}||\mathbb{U}_{\psi ,\mathbb{P}})=E_{\mathbb{V}}[logD_{\phi }(y)]+E_{\mathbb{P}}[log(1-D_{\phi }(E_{\psi }(x)))]

GAN的相关内容:
生成对抗网络-基本概念|深度学习(李宏毅)(二十二)
生成对抗网络-理论部分|深度学习(李宏毅)(二十三)

  1. Deep InfoMax的目标函数

Global MI、Local MI以及先验匹配的目标函数可以结合在一起,那么Deep InfoMax最终的完整目标函数就是:

\underset{\omega _{1},\omega _{2},\psi }{argmax}(\alpha \hat{I}_{\psi ,\omega _{1}}(X;E_{\psi }(X))+\frac{\beta }{M^{2}}\sum_{i=1}^{M}\hat{I}_{\psi ,\omega _{2}}(X^{(i)};E_{\psi }(X)))+\underset{\psi }{argmin}\; \underset{\phi }{argmax}\gamma \hat{D}_{\phi }(\mathbb{V}||\mathbb{U}_{\psi ,\mathbb{P}})

其中是超参数。

三、 实验

本文实验在CIFAR10和CIFAR100、Tiny ImageNet、STL-10以及CelebA等数据集上进行。以下为部分实验结果:

实验
实验
实验
实验
实验

参考资料

Learning Deep Representations by Mutual Information Estimation and Maximization
对 Deep InfoMax(DIM)的理解
Deep InfoMax

你可能感兴趣的:(Deep InfoMax:基于互信息最大化的表示学习)