论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》

核心思想

  本文提出一种不会遗忘的动态小样本学习算法,严格来讲应该也属于基于外部记忆的小样本学习算法。本文的主体结构依旧是特征提取+分类器的组合,但作者提出了两点改进。传统的分类器通常是计算类别权重向量与图像对应的特征向量之间的点乘积,作为相似性得分,并以此进行分类预测,本文采用余弦相似性度量函数取代点乘积计算方式。此外对于新的类别样本,本文并没有采用SGD的方法训练分类器得到对应的类别权重向量,而是设计了一个小样本权重向量生成器,根据基础类别的权重向量生成新类别的权重向量。网络的整体结构如下图所示。
论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
  首先作者将训练集分为基础类别部分和新类别部分,基础类别部分包含大量的图像,而新类别部分每个类别仅有少量样本,而且两个部分之间是没有相同类别的,测试图片通常来自新类别部分对应的样本。通常的方法是将模型现在基础类别数据集上进行预训练,然后在新类别数据集上做微调训练,但这样做一方面会导致分类器忘记基础类别部分的样本,失去对基础类别的分类能力;另一方面,由于新类别样本数量较少,因此微调后的分类效果仍然较差。作者提出将分类器的类别权重向量分成两部分,分别对应基础类别和新类别,其中基础类别对应的权重向量还是按照常规的训练方式获得(也就是慢权重),而新类别对应的权重向量则是由权重生成器输出(也就是快权重),这样分类器就同时具备对基础类别和新类别进行分类的能力,对应题目中的“without Forgetting”。但是两种方法获得的权重可能在数值上存在较大的差异,如果还采用传统的点乘积方式来计算与测试图片的相似性得分的话,会存在较大的误差,因此作者提出使用余弦相似性度量方法
论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
式中τ\tau表示一个放缩系数,zˉT\bar{z}^T表示经过L2规范化处理的测试图片对应的特征向量,wˉk\bar{w}^*_k表示经过L2规范化处理的类别权重向量。与点乘积相比,该方法增加了L2规范化处理,消除了基础类别权重和新类别权重在数值上的量级差异,分类效果更好。
  至于类别权重生成器,常见的方式是计算所有类别特征向量的平均值wavgw_{avg}',然后再乘以一个可以学习的权重向量ϕavg\phi_{avg},最后计算二者的哈达玛积(逐元素对位相乘),如下式所示
论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
但是该方法不能充分利用特征提取网络获取的信息,而且在新类别只包含一个样本(one-shot情形)时,平均操作就不能够准确的推测类别权重信息。因此作者提出一种采用注意力机制的权重生成方法,计算过程如下
论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
式中NN'表示新类别样本的数量,ϕq\phi_q表示一个可学习的变换矩阵,将新样本对应的特征向量zˉi\bar{z}_i'转化为查询向量,kbk_b表示基础类别对应的可学习的“键”,每个“键”对应一个类别,wˉb\bar{w}_b表示基础类别对应的权重向量,Att()Att()操作也就是注意力机制,先利用余弦相似性度量计算二者之间的相似程度,再用softmax函数将其转化为权重值。最后将wattw_{att}'和通过平均方式计算得到的wavgw_{avg}'进行加权求和,就得到新类别样本对应的类别权重向量了,过程如下
论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
  该方法的内在假设是新类别和基础类别虽然没用相同的类别,但是类别之间还是有相似的,或者说有一定联系的,借助这一相似性对新类别的权重向量进行预测。

实现过程

网络结构

  无具体介绍

损失函数

论文阅读笔记《Dynamic Few-Shot Visual Learning without Forgetting》
  式中KbaseK_{base}表示基础类别的类别数量,NbN_b表示每个类别的样本数量,loss()loss()表示交叉熵损失函数

训练策略

  本文的训练过程分为两个阶段,第一个阶段只学习特征提取网络的参数θ\theta和基础类别的权重向量WbaseW_{base}。第二个阶段学习权重生成器的参数ϕ\phi,同时继续训练基础类别的权重向量WbaseW_{base}

创新点

  • 设计了采用注意力机制的权重生成模块,根据基础类别的权重向量,推测新类别的权重向量
  • 将分类器中的点乘积计算方式,替换为余弦相似性度量方式

算法评价

  本文一开始很难划分为某一类小样本学习算法,但由于在权重生成时利用了基础类别对应的权重向量,那么就肯定要在训练过程中保存该向量,并且快权重和慢权重更新方式常见于基于外部记忆的算法,因此将其划分为这一类别。实际上本文并没有显式的提供一个外部记忆模块,所用的“记忆”其实就是网络训练得到的权重。

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