小样本学习&元学习经典论文整理||持续更新

核心思想

  本文提出一种基于度量学习的小样本学习算法。与其他算法将训练集分成基础类别和新类别,进行两个阶段的训练方式不同,本文将包含大量样本的基础类别和包含少量样本的新类别合在一起进行训练,得到每个类别的表征(原型)称之为全局类别表征(Global Class Representations,GCR)。然后对于每个Episode中的支持集样本得到对应的Episode类别表征(Episode Class Representations,ECR),利用一个称之为登记模块(Registration Module)的组件,从全局类别表征中选择出与当前Episode类别表征最相近的nn个类别表征(nn表示支持集中包含的类别数目)。最后根据查询集样本与nn个类别表征之间的欧氏距离实现分类预测。算法的实现方法如下图所示
论文阅读笔记《Few-Shot Learning with Global Class Representations》
  如图所示,支持集中既包含基础类别,又包含新类别样本,但二者样本数量极不平衡,新类别仅包含少量样本。为了解决这一问题,作者提出了两个解决方法:样本合成与Episode采样。样本合成就是一个数据增强的过程,他也分成两个步骤:第一个步骤就是对样本图像进行随机裁剪、随机翻转和《Low-Shot Learning from Imaginary Data》中设计的数据集扩充方法;第二阶段是在类别cjc_j扩展得到的ktk_t个样本中再抽样得到krk_r个样本,利用特征提取网络得到每个样本对应的特征向量fif_i,然后在[0,1]中随机采样krk_r个值viv_i作为权重,对fif_i进行加权求和得到类别cjc_j中的新样本rcjr_{c_j},计算过程如下
论文阅读笔记《Few-Shot Learning with Global Class Representations》
  Episode采样就是先从所有的类别(基础类别+新类别)中选择出ntrainn_{train}个类别CtrainC_{train},然后对于CtrainC_{train}中的每个类别再选择出nsn_s个样本作为支持集,选出nqn_q个样本作为查询集。因为对于新类别其样本数量可能不够,所以要先按照前面介绍的样本合成方法,先把样本数量扩充到ns+nqn_s+n_q个再进行划分。
  划分好支持集和查询集后,对每个支持集中的样本计算Episode类别表征(ECR),ECR的计算方法也有两种,对于基础类别,直接计算样本特征向量的平均值(和PN一样)作为ECR;对于新类别,将样本合成中得到的新样本rcjr_{c_j}作为ECR。然后将ECR和全局类别表征GCR一起输入到登记模块(Registration Module)中。等等!全局类别表征GCR是从哪来的?全局类别表征的初始值是所有类别的样本对应特征向量的平均值,而后会随着训练进行更新。假设基础类别+新类别一共有100种,那么就应该有对应的100个GCR。登记模块利用ECR和每个GCR之间的相似性,从GCR中选出ntrainn_{train}个(与ECR的数量相同)类别表征ξi\xi_i用于分类预测,ξi\xi_i的计算方法如下
论文阅读笔记《Few-Shot Learning with Global Class Representations》
论文阅读笔记《Few-Shot Learning with Global Class Representations》
论文阅读笔记《Few-Shot Learning with Global Class Representations》
其中rcir_{c_i}表示类别cic_i对应的ECR,gcjg_{c_j}表示类别cjc_j对应的GCR,θ,ϕ\theta ,\phi分别表示ECR和GCR的嵌入式函数,二者结构相同都是一个带有ReLU和BN的全连接层。选择出当前支持集对应的全局类别表征ξ\xi后,就能够对查询集种的样本xkx_k进行类别预测了,先计算样本xkx_k对应的特征值F(xk)F(x_k)与每个类别表征ξi\xi_i之间的欧式距离,然后在选择出最近邻。

实现过程

网络结构

  特征提取网络采用4-Conv结构。

损失函数

  损失函数包含两个部分登记损失和分类损失,计算过程如下
论文阅读笔记《Few-Shot Learning with Global Class Representations》
其中
论文阅读笔记《Few-Shot Learning with Global Class Representations》
论文阅读笔记《Few-Shot Learning with Global Class Representations》

训练策略

  整个训练过程如下
论文阅读笔记《Few-Shot Learning with Global Class Representations》
值得注意的是特征提取网络FF要在基础类别上进行一个预训练作为初始化,GCR的初始化也是利用初始化后的FF对所有样本计算特征向量,再对每个类别取平均值得到的。

算法推广

  本算法可以直接推广到广义小样本学习中,即测试集中既包含新类别样本也包含基础类别样本。

创新点

  • 提出了全局类别表征的概念,利用注册模块从中选取对应的类别表征进行分类预测
  • 设计了一种样本合成的方法,用于解决样本数量不平衡的问题

算法评价

  本文最重要的改进应该就是消除了基础类别和新类别之间的差别,训练集中既包含基础类别样本,又包含新类别样本。但如果直接把新类别样本添加到训练集中,在采用普通的训练方式(如PN),则会由于新类别样本太少,而模型会忽视这部分样本。因此作者提出的样本合成和利用ECR从GCR中选择类别表征等一系列操作,都是为了消除样本数量的不平衡问题。另一方面本文并不是属于直推学习类型的,因为直推学习是指在训练阶段,把不带有标签的测试图片也加入到训练集中,和本文的方法还是存在很大差别的。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。论文阅读笔记《Few-Shot Learning with Global Class Representations》

相关文章:

  • 2021-04-11
  • 2021-08-20
  • 2021-12-19
  • 2021-12-24
  • 2021-07-21
  • 2021-12-11
  • 2021-04-17
  • 2021-05-25
猜你喜欢
  • 2021-12-14
  • 2021-08-12
  • 2021-10-24
  • 2021-07-25
  • 2021-05-07
  • 2021-10-29
  • 2021-10-09
相关资源
相似解决方案