看了几篇论文,感觉还是懵懵懂懂的。实在看不下去了,今晚就写一点东西,做个总结。以后翻出来看看~~觉得自己当初也是挺猛的!!
Few-Shot Learning with Global Class Representations
在文章中,作者将base和novel类放到一块进行训练提取特征。作者认为这样可以很好的拟合两种分布。同时在训练过程中对于novel类做了数据增强。
模型的出发点在与使用所有类的基础属性特征——Global representation来进行fine tune。这是小样本学习中很常用的一个方式。同时,通过设计的损失函数,将base sample 和novel sample分离开来,如下图所示:
![](https://img-blog.csdnimg.cn/20191224192132524.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMTU3MDcz,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20191224192246527.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMTU3MDcz,size_16,color_FFFFFF,t_70)
- 使用base和novel构建support set
- 然后,对support set中的sample提取对应的特征。对提取的特征按照类做average后得到Episode-level class Representations 也就是Local Class Representation
- 将Local Class Representation 和Global Class Representations输入到Registration Moudle中。在registration模块中,会计算Local和Global的相似度,同时对Global Class Representations进行筛选,得到Selected Global Class Representation,此模块会产生registration loss使得base 和 novel类分离。
- 最后使用得到的Selected Global Class Representations与Query set中image的特征进行相似度计算产生分类损失
(Global Class Representations是提前通过分类网络提取到特征后,按类进行平均得到的)
网络通过将base和novel类一块进行训练,并对novel使用增强,然后将所有类的信息整合为Selected Global Class Representation供后续Query set计算距离。
RepMet: Representative-based metric learning for classification and few-shot object detection
针对物体检测的小样本学习,主要操作是在ROI之后进行的。也就是特征提取已经完成后进行的。文章通过训练一个网络,将不同类的物体映射在空间上的不同位置。通过Metric Learning来实现。换句话说,网络具有一套将不同类映射到不同“位置”的一套参数。当network遇到新类时,通过很少量的样本,就可以将这个新类映射到空间上来,这样就可以很快的实现分类。如下图所示:
![](https://img-blog.csdnimg.cn/20191224194123728.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMTU3MDcz,size_16,color_FFFFFF,t_70)
同时,作者也认为同一类应该在不同的属性上有不同的表达,也就是属性特征。。网络整体流程如下:
![](https://img-blog.csdnimg.cn/20191224194741410.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMTU3MDcz,size_16,color_FFFFFF,t_70)
- 网络将提取到的特征输入到Embedding Moudle进行编码
- 通过全连接层编码不同类的不同属性特征
- 计算图片编码类别属性特征之间的距离,得到embedding loss损失,这里的损失使得同类之间相互靠近,异类之间相互远离。
- 计算交叉熵损失
CANet: Class-Agnostic Segmentation Networks with Iterative Refinement and Attentive Few-Shot Learning
文章主要在segmentation任务中使用了few shot learning,所以网络中出现的空洞卷积,global average pool,ASSP模块等都是segmentation任务中经常用到的一些操作。
网络包括两个模块,一个是DCM模块,用来提取support set和query set的特征;一个是IOM模块,用来迭代的优化mask。网络整体流程如下:
![](https://img-blog.csdnimg.cn/20191224195807709.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMTU3MDcz,size_16,color_FFFFFF,t_70)
- DCM模块使用RESNET提取基础特征,然后对support Image使用mask过滤掉背景信息,然后将得到的Global Average Pool向量与Query Image的向量进行拼接。
- 在IOM模块。主要迭代输出Query Image的mask。会用到空洞卷积;ASSP等操作。
- 模型还有一个Attention模块,用来计算不同support sample对query sample的产生mask的贡献比例,如下图:
![](https://img-blog.csdnimg.cn/20191224200356989.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMTU3MDcz,size_16,color_FFFFFF,t_70)
Learning Compositional Representations for Few-Shot Recognition
还是使用base类提取特征来fine tune novel类。作者依然认为不同类的物体在底层属性上是相同的。也就是需要提取属性特征。不同的是,模型使用的数据集会产生属性的lable,也就是训练数据集中已经一定程度上标注了不同类的属性,如下图所示:
![](https://img-blog.csdnimg.cn/20191224200731382.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMTU3MDcz,size_16,color_FFFFFF,t_70)
网络整体流程如下图所示:
![](https://img-blog.csdnimg.cn/2019122420092082.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIxMTU3MDcz,size_16,color_FFFFFF,t_70)
首先提取图片的feature,并且将属性映射为 embedding feature,如(a)所示。同时作者认为通过将一幅图片的属性特征叠加能够得到图片的特征,也就是(b),同时作者还认为,将物体的所有属性都标注出来是不现实的。所以在网络映射和相加的时候,应该留出一些位置来表示我们尚未提取的特征。如图(c)所示,好像这篇论文参考了很多《 Measuring compositionality in representation learning.》,只知道大概意思,没有细看~~~~