本文来自ICLR 2019 的论文Learning Deep Representatios By Mutual Information Estimation And Maximization.主要是采用了信息论的一些变量来解决无监督学习中的问题:通过最大化深度神经网络编码器输入和输出层之间的互信息。
机器学习的一个核心目标就是要学到高效的表示。这里探讨的IDEA就是怎么训练一个学习表示的方程,即一个编码器,来最大化输入和输出之间的MI。众所周知MI特别难算,特别是在连续高维的环境中。但幸运的是2018年提出的MINE方法可以很有效地估计互信息。
作者把MINE应用到MI估计中,并证明最大化整体输入和编码器输出的MI在下游任务(“下游任务是该领域称为那些利用预训练模型或组件的监督学习任务”)中往往不足以学习到一个高效的表示。结构很重要:例如在分类任务中最大化表示和输入的局部区域的平均互信息(例如只是各个patch而非整张图片)能够很好地优化表示的质量,而全局MI在给定表示的前提下重建全部输入的能力更强。
因为这种方法和 infomax 优化定理密切相关,所以作者把它叫做deep infomax。
作者的主要贡献如下:
- 形式化了DIM,它同时估计和最大化输入数据和高维表示之间的互信息。
- 对于不同的任务,作者提出的最大化互信息过程可以优先考虑局部MI或者全局MI。
- 作者采用了对抗学习来约束表示,使得在特定先验条件下能有较好的统计特性。
- 作者提出了两种衡量表示质量的方法,一种基于MINE,另一种是神经独立性估计(neural dependency measure),然后用这两种方法来支持DIM和不同无监督学习方法之间的比较。
2、背景知识
2.1、MINE
3、DIM
3.1、互信息的估计和最大化
我们将图片通过卷积网络编码成M x M的feature map,然后通过全连接层输出一个feature vector Y。
我们的目标是训练这个神经网络,使得有效的信息能够很容易地从Y中提取出来。
然后我们将Y和同一张图片的M x M的feature map放进一个discriminator来获得高分,将Y和另一张图片的M x M的feature map放进同一个discriminator来获得低分。
我们的工作和MINE有一些不同。DIM借鉴了MINE,并发现生成器在其中并不是必须的。
第一,因为编码器和互信息估计器在优化同样的目标并需要类似的计算,所以我们在这些函数之间共享一些层。
其次,由于我们主要对最大化MI感兴趣,而不关心它的精确值,我们可以依赖非KL散度,这可能提供比较好的权衡。例如使用基于JSD的MI估计更稳定,效果也更好。本文中的的互信息估计器作者采用了NCE(Noise-Contrastive Estimation), 因为实验证明这个在下游任务的泛化能力很不错.
JSD对负样本数不敏感,而infoNCE则随着负样本数的减少而下降。DV也会下降,但随着负样本数量太少而变得不稳定。
直观地说,基于jensen - shannon的估计器应该与Eq. 2中基于DV的估计器行为相似,因为两者都像分类器,其目标是使期望的对数比最大化。Noice Contrasive Estimation (NCE)首先被用作MI的界,这种损失也可以与DIM一起使用,通过最大化:
3.2、局部互信息最大化
对于不同任务来说可能直接最大化输入和输出之间的互信息并不合适。作者提到因为我们的互信息是建立在特征图上的, 我们并不能控制特征图究竟是什么样子, 很可能最后模型学到的也只是部分区域, 和我们希望其学到的部分不一样. 例如,琐碎的像素级噪声对图像分类是无用的,因此对这些信息进行编码可能对表示没有好处。为了获得更适合分类的表示,我们可以最大化高级表示和图像的局部patch之间的平均MI。由于我们使用同一个representation,也就是这个feature vector Y来对所有patch获得一个比较高的平均MI,这有利于对不同patch之间共享的数据进行编码。
假设特征向量的容量有限(单位数和范围),并且假设编码器不支持无限输出配置。为了最大化整个输入和表示之间的MI,编码器可以选择输入中通过编码器的信息类型,例如特定于局部块或像素的噪声。然而,如果编码器只传递特定于输入部分的信息,这不会增加MI与任何其他不包含噪声的补丁。这使得编码器更偏向于在输入端共享的信息,这个假设在我们下面的实验中得到了支持。
然后在全局/局部对上定义MI估计量,最大估计MI的平均值:
3.3、将表示匹配先验分布
训练一个 目的是 最小化先验分布和原始特征之间的KL散度 的判别器, 这个思路来自于对抗自动编码器AAE。
(公式编辑突然出了些问题,在office里面打出来截图好了)
作者发现均匀分布的效果比高斯分布等要好,所以论文里采用了[0, 1]均匀分布的64维的数据。
所有这三个目标——全局MI最大化、局部MI最大化和先验匹配——都可以一起使用,这样我们就达到了Deep InfoMax (DIM)的完整目标:
因为在局部互信息中MI的计算和patch 的位置关系不大,所以只用一个i来遍历M^2的patch就行了。
4、实验部分
我们在四个图像数据集上测试了DIM来评价它的表示属性。我们把DIM和VAE、-VAE、AAE、NAT和CPC
4.1、我们如何评价表示的质量
我们可以用MINE来直接测量编码器输入和输出之间的互信息,然后我们可以用一个discriminator直接衡量表示的独立性。给定一批表示,we generate a factor-wise independent distribution with the same per-factor marginals by randomly shuffling each factor along the batch dimension.
我们可以训练一个鉴别器来估计原始表示和乱序后的表示之间的kl -散度。KL散度越高,各因素的依赖性越强。我们称这种评价方法为Neural Dependency Measure(NDM),并证明它是明智并且经验一致的。
1)线性分类:SVM
2)非线性分类
3)半监督学习
4)MINE
5)NDM
4.2、不同模型之间表示学习的对比
在CIFAR上对比。
DIM(L)在CIFAR数据集上以极大的优势胜过其他各种方法,接近甚至超过了全监督同样结构的全监督分类器。DIM(G)在一些任务上和其他模型相比也有竞争力,但在CIFAR100上远不如生成类模型和DIM(L)。
我们的结果表明,infoNCE往往表现最好,但infoNCE和JSD之间的差异在更大的数据集体现出减小得趋势。DV可以在较小的数据集上与JSD竞争,但是DV在较大的数据集上的性能要差得多。对于CPC,通过上面的设置,我们只能获得比BiGAN稍好的性能。
在Tiny ImageNet和STL-10上对比。
作者在Tiny ImageNet上随机选取了五张图片,然后分别应用DIM和曼哈顿距离找到了离他们的最近邻的四张图片。他强行分析出“DIML的结果比DIMG更容易解释”的结论。
5、总结
在这篇论文中,我们引入了Deep InfoMax (DIM),一种通过最大化互信息来学习无监督表示的新方法,允许表示跨结构“位置”包含局部一致的信息。这提供了一种简单而灵活的方法来学习在各种任务中表现良好的表示。
什么是feature map
在每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠加在一起,其中每一个二维图片称作一个feature map。在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般就是三个feature map(rgb)。层与层之间有若干个过滤器/卷积核(kernel),这个过滤器的尺寸大小和深度是需要人工设定的,常用的过滤器尺寸有3*3或5*5.当前层中的所有feature map分别跟当前层和下一层之间的每个卷积核做卷积求和之后都会产生下一层的一个feature map。