现实情况中,经常会遇到这样的一种情况:现有任务的数据很少,或者采集困难、采集成本昂贵,比如医学上的分类问题、软件缺陷分类、生产线优化等。零样本学习通过一些之前学习的特征以及现有任务的属性知识,完成对现有任务的学习,这与迁移学习的概念是有交叉的,迁移学习根据与现有任务(也叫作Target task目标任务)相似的任务(Source task源任务)学习,将对目标任务有益的一部分迁移到目标任务学习中,但是现有的迁移学习方法多数假设任务相关的目标域数据是可用的,Zero-Shot Deep Domain Adaptation(ZDDA)方法主要针对该问题。ZDDA是一种领域性适应和传感器融合(Sensor fusion)方法,它从任务无关的双域训练对中学习,而不使用任务相关的目标域训练数据。
什么是传感器融合(Sensor fusion)?WiKi的解释参考:https://en.wikipedia.org/wiki/Sensor_fusion。Sensor fusion(传感器融合)是将传感器数据或者从分散源产生的数据结合在一起,从而使结果信息跟各自独立使用时会少一些不确定性 。 例如立体视觉(通过结合来自两个稍微不同的视点的照相机的两种维度的图片深度信息的计算)。传感器融合方法则是基于传感器融合的信息具有多样性和复杂性,因此,对信息融合方法的基本要求是具有鲁棒性和并行处理能力, 一般情况下,基于非线性的数学方法,如果它具有容错性、自适应性、联想记忆和并行处理能力,则都可以用来作为融合方法。
MNIST-M数据集:由MINIST数据集数字随机混合上BSD500数据集上的颜色形成。
Fashion-MNIST数据集:该数据集是关于Zalando( 是总部位于德国柏林的大型网络电子商城, 其主要产品是服装和鞋类 )产品的图像,Fashion-MNIST经常作为原始MNIST数据集的替代品,用于对机器学习算法进行基准测试。
TOI,Task of Interest 感兴趣的任务
图中是ZDDA完成从MNIST到MNIST-M的举例,源域和目标域分别对应的是灰度图域和RGB图域,目标任务则是在不使用MNIST-M数据训练的情况下,模型完成对既包含MNIST又包含MNIST-M的测试数据集进行数字识别,模型的测试集显然是既包含MNIST又包含MNIST-M的,而实验过程的训练集则包括三个不同的数据集:MNIST数据集、与任务无关的Fashion-MNIST数据集和Fashion-MNIST-M数据集(加上颜色的Fashion-MNIST数据集)所形成的(灰度-RGB)图像对。
ZDDA主要完成两个任务:
上图描述了ZDDA的主要流程,在该流程中,目标是模型能够既对源域数据分类,又能对目标域数据进行分类,而训练数据中包含了与目标任务相关的带标签的源域数据、与目标域不相关的成对的源域数据(depth-RGB)。在算法的第一步中,建立了两个CNNs, s 1 s1 s1和 t t t,将任务不相关的RGB-D数据集中成对的depth图像和RGB图像作为输入。这一步的目的是想让depth图像输入 s 1 s1 s1后出来的结果近似于将RGB图像输入 t t t后出来的结果,这一步通过固定模型 t t t,并且在训练过程中,让s1和t两个模型上共同使用L2损失进行优化来实现,其中使用的L2损失函数可以使用任何合适的损失函数替代。第一步中的设计类似于幻觉架构[2]和监督转移[3]。
第二步中,添加了另一个CNN– s 2 s2 s2(但是框架是与 s 1 s1 s1的框架一样的),以及添加了一个分类器(Source Classifier)。与S1不同,S2使用带标签,并且与任务相关的depth图像进行训练,为了简单,使用的分类器是一个全连接层。在第二步中S2与初始Souce CNN(即之前的S1)分享全部权值,因为大家的权重呀,架构呀都一样,所以使用 S 2 S2 S2来代表S1和S2。在训练阶段,和第一步一样,通过 s 1 s1 s1预训练 s 2 s2 s2(我想的是权值初始化),并固定 t t t。为啥要固定t呢?作者说固定t的思想是受到ADDA[4]中adversarial adaptation(对抗适应)的灵感启发,其实 t t t在步骤2中可以不固定,但是由于数据量的限制,选择将它固定,这样可以使得可训练的参数是可控的。 s 2 s2 s2和source分类器则通过训练完成softmax损失和L2损失的加权和的最小化。
第二步的目的其实是期望通过S2获得一个depth特征,使得该depth特征接近于特征空间的RGB特征(因为与S1权值共享,S1中的特征又与t中的RGB特征接近),并且在目标分类中表现比较好(使用任务相关的depth数据训练)。这样在前两步中,通过连接 s 2 、 t s2、t s2、t和经过训练的source分类器来构建在 d e p t h 、 R G B depth、RGB depth、RGB中的场景分类器,完成了第一个任务: 域适应(depth和RGB的域适应)。
为了完成传感器融合,对目标域的RGB图像进行分类,提出了第三步,在第三步中的目标是只使用与目标任务相关的depth数据来训练一个联合分类器,而这个分类器后面将完成对RGB图像输入的分类。第三步中创建了两个CNN– s 3 、 s 4 s3、s4 s3、s4(每一个都与 s 1 s1 s1的网络结构一样),并且添加了一个连接层用来连接他们两个网络的输出特征,这些特征将被连接到联合分类器中。在训练阶段,分别使用 s 2 、 s 1 s2、s1 s2、s1来预训练 s 3 、 s 4 s3、s4 s3、s4,并且固定 s 4 s4 s4。在训练阶段中 s 3 、 s 4 s3、s4 s3、s4都使用与目标任务相关的带标签depth图像作为输入,并且在训练过程中,为了得到一个更具鲁棒性的RGB-D场景分类器,随意的选取 s 3 、 s 4 s3、s4 s3、s4的一些输入,并选择性的添加一些噪声到这些输入中。数据的预测则通过softmax来完成。
这样ZDDA就可以完成三个场景分类器:对RGB图像的目标域数据分类(t模型)、对depth图像的目标域数据分类(s4模型)和对RGB-D的目标域数据分类(joint-classifier)。
总体三步下来的思路是:让与目标任务无关的depth图像特征适应RGB图像特征–>让与任务相关的depth图像特征适应于RGB图像特征–>解开模型之间的权值共享,构造一个联合分类器完成对RGB-D图像的分类。总来的说,零样本学习ZDDA因为训练数据只有源域数据,还是比较依赖于源域数据与目标域的相关程度(使用depth训练的CNN直接对depth目标域数据的分类效果主要依赖于这一部分数据),而我认为ZDDA主要贡献则是通过与任务相关的depth源域图像完成对目标任务的RGB分类和RGB-D分类。
[1] Peng K C, Wu Z, Ernst J. Zero-Shot Deep Domain Adaptation[J]. 2017.
[2] Gupta S, Hoffman J, Malik J. Cross Modal Distillation for Supervision Transfer[J]. 2016:2827-2836.
[3] Hoffman J, Gupta S, Darrell T. Learning with Side Information through Modality Hallucination[C]// Computer Vision and Pattern Recognition. IEEE, 2016:826-834.
[4] Tzeng E, Hoffman J, Saenko K, et al. Adversarial Discriminative Domain Adaptation[J]. 2017.