Finding Task-Relevant Features for Few-Shot Learning by Category Traversal论文笔记
Finding Task-Relevant Features for Few-Shot Learning by Category Traversal
原文为CVPR 2019 Oral
原文链接
Motivation:
文章指出很多Few shot的工作只关注query和support之间的特征的区别(inter-class),而忽略了support set集合里面本身的特征就有区别(intra-class)。所以文章提出了一种新的模快category traversal module (CTM),用在feature extractor里面,用于发现在support类里面的一个特征。
这个Motivation可以用论文中的一张图展示出来:
图中(a)表达的就是inter-class feature,假设有两个特征,color和shape。图中的support i与query相比,color的特征不同,但shape的特征相同。所以distance为1。再比如support ii与query相比,颜色和形状都不一样,所以它们之间的距离为2。图中(b)表示的就是intra-class feature,比如在support set ii中,我们可以看到,support samples之间最共同的特征是color,因此我们判断color就是support set ii最具有代表性的特征,而不是shape。
Category Traversal Module (CTM)
文章利用以下模快来提取CTM来提取intra-class feature和inter-class feature,结构如下图所示,包含两个主要的模快concentrator和projector。Mask 的作用是对support和query产生于task有关的特征和。任务为N-way K-shot。
Concentrator
文章中说concentrator的功能是去提取support set中一个类中哪些是的共同特征(intra-class feature commonality),它可以表示为:
其中,m和d表示的是channel和wide。整个模快可以分为两步,第一步就是把输入到一个CNN Block,将变为。第二步即为对每个class做一个average操作,这样就将变成了。
Projector
Projector的目的即是提取class和class之间相关有用的特征(inter-class uniqueness),并且去掉(Mask out)那些不相关的特征。例如在第一张图(a)中展示的,color就是相关有用的特征,而shape就是我们需要mask out的特征。该模块可以表示为:
首先,先把Concentrator的输出的所有class在channel上面concatenate起来,之后再通过一个CNN Block和一个在channel上的softmax学习到一个mask (This is used to mask the relevant feature dimensions for the task in the query and support set.)。
Reshaper
论文中原文为It is designed in light-weight manner with one CNN layer. 即Reshaper是一个轻量化的一层CNN Block。它主要的作用为匹配与Mask 的shape,从而让p对support和query的feature map产生影响。表示为:
Choice of I()
I()即是把Mask 和,结合起来的操作。
对于query,结合的方式是唯一的,即为:
对于support有两种结合的方式,第一种叫sample-wise,第二种叫cluster-wise,如下图所示:
它们的效果如下,sample-wise的performance较好:
Results
CTM 和不同的Metric Learning的模快结合,均对performance有提升: