1 Abstract 概要
用数据的多个视图来做表示学习是当前自监督学习的热点。尽管这方面的应用很成功,但是很少有人研究怎么选择好的视图来做表示学习。本文运用理论和实证分析来更好地理解视图选择的重要性,得出的结论,在给定下游任务时,视图之间的互信息恰好都仅与下游任务有关,这时候下游任务能取得最好的结果。除此之外,本文还设计了一种半监督的方法,用来学习如何生成最好的视图。
2 什么是视图(view)?
视图的例子
从不同的角度看同样的事物,会有不同的视图。在自监督学习里面,视图可以是同一个物体不同的角度的图片;视频中的图片、声音和字幕;图片的不同通道;不同的数据增强方式获得不同的视图;生理信号的时频图;
视图之间的共享信息(mutual information, MI)
理解为视图之间共有的信息。
举例:
例1:下面三个视图中的数字3,是他们共享的信息。
例2:下面两个视图中的背景,是他们共享的信息。
在表示学习的应用中,一般有两个阶段:
1.表示学习阶段:使用不同的视图,进行自监督的表示学习,训练一个编码器$f$
2.下游任务:固定学习好的网络$f$参数,在$f$后面加一个线性层,参数为$w$,使用少量的有标签数据训练$w$。
由于表示学习阶段学到了数据中的语义信息,下游任务只需要少量的标签就可以取得较好的效果。
3 怎么样的视图是最好的视图?
用什么样的视图来做表示学习,才能使得下游任务取得最好的效果呢?
在本文的定义中,最好的视图是与下游任务息息相关的。在给定下游任务之后,视图之间的互信息恰好都仅与下游任务有关,这时候下游任务能取得最好的结果。例如,在例1中,视图之间共享的信息是数字,如果下游任务是数字识别,它们就是好的视图;如果下游任务是背景识别,那就不是好的视图。例2则相反。
用$I(a,b)$表示a和b的互信息,x表示输入,y表示标签,$v_1,v_2$是x的两个视图,则最好的视图应该是:
也就是$v_1,v_2$这两个视图,都包含了对下游任务有帮助的所有信息。
以下图有助于说明:
横轴是视图之间的互信息,纵轴是下游任务的效果。绿色是与下游任务有关的信息,粉红色是与下游任务无关的信息,视图重叠的部分是视图的共享信息。当视图之间共享的信息仅包含与下游任务有关的信息,此时下游任务的效果是最好的。
最好的视图,就是视图之间的互信息恰好处于一个最佳点(Sweet Spot),视图之间的共享信息及不漏掉对下游任务用贡献的信息,也不包含对下游任务没有的信息。
下图b)分为3段:
- 丢失信息:$I\left(\mathbf{v}{\mathbf{1}} ; \mathbf{v}{\mathbf{2}}\right)<I(\mathbf{x} ; \mathbf{y})$,missing info是丢失的有用信息,视图之间的互信息没有包含太多对下游任务有用的信息,所以效果不好;
- 最佳点(Sweet Spot):$I\left(\mathbf{v}{\mathbf{1}} ; \mathbf{y}\right)=I\left(\mathbf{v}{\mathbf{2}} ; \mathbf{y}\right)=I\left(\mathbf{v}{\mathbf{1}} ; \mathbf{v}{\mathbf{2}}\right)=I(\mathbf{x} ; \mathbf{y})$,视图之间的共享信息就是全部对下游任务有用的信息。
- 过多噪声:$I\left(\mathbf{v}{\mathbf{1}} ; \mathbf{v}{\mathbf{2}}\right)$,视图之间的互信息包含了太多对下游任务没用的信息,下游任务的泛化性能差。(可以参考)
所以,<下游任务性能-$I(v_1,v_2)$> 的图像普遍是一个倒立的U形(如下图右):
本文的多个实验说明,图 <下游任务性能-$I(v_1,v_2)$> 普遍存在倒U型的图:
4 学习最好的视图
以往的视图都是人工设计的视图,这里提出了一个通用的生成最佳视图的半监督方法。
生成最好的视图:在将视图应用到表示学习之前,先设计另外一个神经网络(生成器g),用g来生成最好的视图。
流程是:
4.1 无监督的生成视图方式:最小化$I\left(\mathbf{v}{\mathbf{1}} ; \mathbf{v}{\mathbf{2}}\right)$
定义生成器g,g是一个卷积核为1*1的卷积层加ReLU激活,$\hat{X}=g(X)$, 对于数据$X$,可以将$X$按通道切分为$\left{X{1}, X{2: 3}\right}$。
定义$\hat{X}{1}$,$\hat{X}{2: 3}$分别为两个视图;另外有$I{\mathrm{NCE}}\left(\hat{X}{1} ; \hat{X}{2: 3}\right)$是$I\left(\hat{X}{1} ; \hat{X}_{2: 3}\right)$的估计(文章中有定义)。
为了训练g,使得$I{\mathrm{NCE}}\left(\hat{X}{1} ; \hat{X}_{2: 3}\right)$最小,使用对抗训练的思想。
引如两个编码器$f1,f_2$,训练$f_1,f_2$最大化$I{\mathrm{NCE}}\left(\hat{X}{1} ; \hat{X}{2: 3}\right)$,与 GAN中的判别器相似。
同时,训练g,最小化$I{\mathrm{NCE}}\left(\hat{X}{1} ; \hat{X}_{2: 3}\right)$,形式化的目标函数为:
结果如下图(a)所示:
可以看到,这么训练没有给出一个最佳的视图。虽然g生成的两个视图的互信息在减少,但是也丢失了许多对下游任务有用的信息。
半监督的生成视图方式:找到对下游任务有用的信息
假设我们有少量的下游任务标签y,引入两个分类器C1和C2,g不仅要最小化$I{\mathrm{NCE}}\left(\hat{X}{1} ; \hat{X}_{2: 3}\right)$,也要保证C1和C2分类正确。这样,就可以保留对下游任务有用的信息。
形式化的损失函数:
5 总结一些启发
- 表示学习的视图之间的互信息仅包含对下游任务有用的信息,有助于提高下游任务的泛化性。[59,]
- 在表示学习中,适当引入一下标签来提高模型的泛化性。[75, 29, 34, 69].
- 使用标签生成最佳视图用于表示学习,提高模型的泛化性。(本文)
- 本文的寻找最佳视图的方式,同样适用于时序数据。