【论文学习笔记】Transductive Unbiased Embedding for Zero-Shot Learning (2018_CVPR)

论文:Transductive Unbiased Embedding for Zero-Shot Learning
链接:http://openaccess.thecvf.com/content_cvpr_2018/CameraReady/1369.pdf

这里写图片描述

  这篇文章是来自CVPR 2018的一篇文章,这篇文章主要的贡献是提出了一个偏置损失函数,同时提出了一个端到端的网络。下面本博客对这篇文章进行带有PPT的图片进行讲解,若有描述不对的地方,还请各位读者指教。

  本文的三作是亚利桑那州立大学的教授,五作是浙江大学的教授,一作、二作是来自浙江大学,四作是来自阿里巴巴(在谷歌学术上未搜索到相关的信息)。本文从以下四个方面进行学习。

这里写图片描述

Introduction

这里写图片描述

  对于Zero-shot Learning来说,最简单最经典的就是解决分类问题,即预测训练阶段没见到过的类别。相信大家对ZSL有一定的了解,DeViSE就是其中很经典的论文之一(https://papers.nips.cc/paper/5204-devise-a-deep-visual-semantic-embedding-model.pdf) 详情可以从这个链接下载论文,后续本人也会将这些论文的学习笔记补上。在这篇论文的其中一个实验看来,可以发现所有“+1k”(即在测试阶段预测时不仅要考虑之前训练的种类,还要考虑已给的测试集的种类),相比只预测测试集类别的数据集来说准确率下降了很多。不仅这篇论文,下面这篇论文也是一样。

这里写图片描述

  这篇论文也是ZSL的一篇经典之作,提出了ConSE:Convex combination of semantic embedding(https://arxiv.org/pdf/1312.5650)。从这个实验也可以看出,在加了“+1k”这样处理后的数据集的效果是不乐观的。
这里写图片描述
  当然,在这两篇论文中,作者都有说到:这可能是偏置的问题,训练时只针对了训练集的类别进行训练,所以在测试阶段预测会导致Strong bias problem。由上面的这张PPT作者也对这种强偏置的现象做了可视化的一个展示。左边的source表示的是训练集,右边的tartget表示的是测试集。在模型训练的时候,是在一个只有训练集类别的语义空间中进行的,所以在测试阶段,输入的如狗和猫的图片,他会偏向我们的训练集的语义空间。

  针对这种Strong bias的问题,本文的作者提出了Quasi-Fully Supervised Learning (QFSL)来解决。

这里写图片描述

  首先,先介绍一下一些实验的设置。
  对于样本,本论文实验分为了source class和target class两种。source class 就是我们的训练集,已经有了标签的数据集;而target classes 是我们的测试集,是没有被标注过的数据。

这里写图片描述

对于zero-shot learning的方法,可以将其分为inductive ZSL 和 transductive ZSL 两类。

  1. inductive ZSL:在训练的阶段,只有训练集模型是可见的,训练好了一个模型后,再用它来预测没有见过的类别。这个是最常见到的方式,我们前面所提到的DeViSE和ConSE两种方法都是属于这种方式。
  2. transductive ZSL :在训练阶段,标注过的原始数据类别和未标注过的测试数据类别都在训练过程中可见的。本文的实验就是基于这个方式呈现的。作者认为标注的数据和未标注的数据都有他各自的作用。
       对于这些标注过的训练的数据而言,他们能学习图像特征和语义向量空间之间的关系。ZSL也就是通过这样的渠道连接图片与标注的联系,使得其能够预测unseen label。
       对于那些未标注过测试的数据而言,他们虽然不知道真正的label是什么,不能产生分类的loss进行反向传播。但这篇论文所提出的loss就是由其产生,并能够缓解这种预测偏向原始数据类别的程度。

这里写图片描述

  对于实验设置,有两种方式:传统设置和广义设置(好像这样翻译不是很到位-_-)。传统设置就是指的在测试阶段,只预测测试集的那些类别;而广义设置,指的是在测试阶段的时候不担需要考虑我们的测试的类别,还需要考虑训练集的类别。本文的实验部分在这两种方式下都有进行实验,并取得了很好的结果。

Quasi-Fully Supervised Learning (QFSL)

本文重点!

这里写图片描述

  首先是一些符号的定义:这张ppt上半部分,都是较简单的一些定义,本文就不赘述了。ppt下半部分就是对ZSL的一般情况进行了陈述,也是本文的baseline(这点文章没有说明,本人观点)。对于ZSL,就是需要从训练集学习到一个预测函数f,来预测新类别的图片。其中的函数F是一个得分函数,是由 θ(x) θ ( x ) 从visual model 中计算出的图像特征, W W 是一个矩阵,ϕ(x)从language model中的出的语义向量。接下来就是 L L loss值的计算了,loss包括了两大部分:分类的loss 和一个正则化惩罚项。
  对于本文的实验,在训练阶段,source data,target data 和ϕ(x)都是已知的。

这里写图片描述

  敲黑板!!!这个就是本文所提出的网络了。需要强调的是,为了方便看所以才画了两个输入流,一个是source,一个是target。在训练阶段直接是一张一张图片输入的。
   网络分为了四大部分:

  1. The visual embedding subnet (本人认为论文的图标错了,不是semantic emedding layer,而是visual)
  2. The visual-semantic bridging subnet
  3. The scoring subnet
  4. The classifier

      下面,详细介绍一下这四个部分。

这里写图片描述

   在这个部分,就是对图片进行了特征提取。和其他的论文一样都是采用了预训练的卷积神经网络。但是这一点不同:这个CNN模型在这个网络的训练过程中,他的参数也是随着不断迭代更新的。其他的方法使用的预训练好的模型的权重都fixed了,而本文cnn的权重不断变化。
   关于权重的固定与否,是否能给网络效果带来帮助,在本文的实验中会有证明。

这里写图片描述

   在图片特征与语义向量转换连接的部分中,作者采用了几个全连接层来实现(但是具体是几个呢?本文好像没说,只说明了这个是根据前一部分的网络模型来设计的)。在每个全连接层的后面都有跟着一个激活层,有一个统一的激活函数ReLU。同样的,在网络的训练过程中,改层的权重参数是不断迭代更新的。

这里写图片描述

   在这一部分是用来计算类别得分的,是由一个全连接层实现的。采用了最邻近搜索的方法进行搜寻最邻近的语义向量。该层的权重都是由每一个class的语义标准化向量来初始化的。具体可以见上面的ppt。与其他的层不同的地方在于:这一层的权重是固定的,不像其他层的参数是会在网络训练过程中优化的。 F F 函数计算出来的是 S+T 个分数。
   这篇论文好像没有说明semantic vector是如何构造的,是采用了标准的one-hot的方式还是其他的呢?这里既然出现了 S+T S + T 个分数,是通过计算的来了,和前面说的NNS这样的搜索方法有啥关系呢,这个计算公式就是属于NNS吗?

这里写图片描述

   最后一部分的分类器层就很简单了。就是一个传统的sotmax分类器,直接是输出每一类的概率。

这里写图片描述

   如上面的PPT所示,这个就是本文的Loss函数。第一个是分类的损失函数,就是熵损失函数;第三个是正则化惩罚项,本文是采用了L2。值得关注的是第二个loss, Lb L b ,用来计算偏置的loss。容易看出 ln(x) − l n ( x ) 是一个单调递减的函数,要使得这个loss降低,即要增大x,对于本公式而言,就是增大 pi p i ,而这个 pi p i 表示的就是预测的这张图片属于target classes的概率值。这样的操作,鼓励了模型增加预测出所有target classes的概率。

Experiments

本文的实验部分也是相当丰富。

这里写图片描述

   首先,是实验部分的数据集和模型的介绍。采用了AwA2, CUB, SUN三大类的数据集来进行实验。值得注意的是:对于训练集和测试集的划分,由两种方式:standar splits (SS)和 splits proposed (PS)。
   对于之前讲述的网络的第一部分的CNN model,本文实验测试了四种:AlexNet, GoogLeNet, VGG19 and ResNet101。他们都是在imagenet 1k的数据集上进行了预训练。

这里写图片描述

   接下来,是对实验训练阶段的参数设置和测试的评估策略。超参数的初始化,见上面的PPT。实验所使用到了评估策略是平均类准确率(MCA)。由于本文实验的设置,所以出现了两类mca,在验证集上的准确率和在测试集上的准确率。将两者合一,有了H这个准确率的计算。

这里写图片描述

   第一个实验:探究我们的CNN模型的权重参数是否需要固定?

这里写图片描述

  在这个实验可以看到只考虑到了两种CNN模型,作者给出的解释为:googlenet和resnet101两种网络和如图所示的网络结果类似,所以就没有贴出来。实验的评估为Performance difference = MCA(unfixed) − MCA(fixed) ,如果结果为正,表明unfixed会更好;反之,则表明fixed效果更好。

  通过这个实验,可以看出在CUB和AwA2这两个数据中,unfixed 的这样的设置,网络的结果会更好,也证明了作者的想法是有效的。但是在SUN的数据集中,表现的不是很好,作者猜测:由于SUN这个数据集训练的样本数量太少的原因导致的。因为AwA2数据集中每个类包含750张图片,CUB数据集中每个类包含60张图片,然而在SUN的数据集上,每个类仅仅只有20张图片。

这里写图片描述

   为了进一步证明作者的猜测的正确性,作者进行了第二个实验。这个实验采用的数据是AwA2数据集,不断的增加训练样本每一类的数量,在上图中,我们很直观的能看出随着样本数量的增加,我们的准确率呈现出单调递增的这样的趋势,充分的证明了我们猜测的正确性。

这里写图片描述

   对于我们的偏置项的损失,其权重的取值也很关键,在第三个实验中,就是来探究,我们这个损失值权 λ λ 到底取值多少合适?

这里写图片描述

   在这个实验可以看出当我们的 λ λ 不断的增加时,对于MCAs会呈现降低的趋势,而这个就是由于 λ λ 取值过大,使得预测的注意力都偏向于那些unseen的label上面了。通过这个实验,可以看出, λ λ 的取值在0.5到2这个区间范围内效果最佳。

   探究完了网络内部的问题,就来看看在具体的数据集上与其他方法比较多结果吧。

这里写图片描述

   在本实验中,采用的实验模式为传统的模式,即在预测阶段,我们只考虑测试集上的classes,只在这里去寻找语义向量。其中, QFSL Q F S L − 表示的是我们的baseline。通过实验,可以看出我们的baseline与其他方法相比,具有一定的可比性;而且本文提出的方法占有绝大部分的优势,特别是在CUB和AwA2这两个数据集上,本文方法和baseline的效果都超过了其他的方法。
   值得说明的是,通过之前的实验,在CUB和AwA2这两个数据集采用unfixed的操作,在SUN数据集上,采用fixed的操作。

这里写图片描述

  在之前的实验中,我们的方法都表现出了极大的优势。是否是我们使用的卷积神经网络的问题呢?换过一个CNN Model效果是否一样?这个实验就表明了本文提出的方法不是只用于特定的网络,在其他的CNN中,依旧能表现出优异的效果。

这里写图片描述

  在传统的设置实验中,我们的方法取得了很好的效果。在本实验中,来探究一下是否在广义的实验设置中,也能取得很好的效果呢?通过这个实验,我们可以看出,我们的方法也是效果显著的。在SUN数据集上出现了劣势,作者给出的解释为:训练样本的缺乏。 QFSLR Q F S L R 为使用resnet101网络作为图像特征提取的网络,其效果较 QFSLG Q F S L G 更不好,给出的解释为:resnet101网络,具有过拟合的现象。

这里写图片描述

  本实验为探究性的实验,作者探究了 the source and the target classes 对实验的影响。使用到的数据集为SUN,其一共有717个类,645作为训练,72作为测试。现把训练集的数量分割为7种情况,测试的类别不变。如上面的PPT可以很直观的看出,随着source classes数量的增加,MCAs越来越不好,即对训练集中的验证集表现不好;而MCAt越来愈好;同时MCAt的本文方法与baseline都有增加,但是其最后的差距会越来越大。

Conclusion & Future work

这里写图片描述

  本文提出了解决强偏置问题的损失函数,在ZSL中取得了很好的效果。并且,与其他效果的方法在传统设置和广义设置中都取得了很好的效果。

  作者今后,还会对语义空间中的语义向量的表示进一步的探究,到底哪一种向量表示形式禅师的效果会更好一些。另外,本文是基于transductive的方式进行探究的,今后还会探究在introductive的方式效果如何。

这里写图片描述

欢迎各位留言交流1

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值