论文阅读笔记《Few-Shot Learning with Metric-Agnostic Conditional Embeddings》

核心思想

  本文提出一种基于度量学习的小样本学习算法,思想上与Relation Network接近,没有明确定义一种度量方法,而是利用卷积神经网络学习并利用softmax层输出属于各个类别的概率值,但在结构上与Relation Network大有不同,并且增加了一个调节模块。整个网络分成四个阶段:特征提取阶段,相关性阶段,调节阶段和分类阶段,整个网络的结构如下图所示
论文阅读笔记《Few-Shot Learning with Metric-Agnostic Conditional Embeddings》
  特征提取阶段没什么可说的,所有图像采用相同的特征提取网络,得到对应的特征向量。相关性阶段,由图可知,相关性网络是与支持集图像类别一一对应的,一个类别对应一个网络,各个网络之间是并行关系,同一类别的图像都输入到对应的网络中提取与类别相关的特征信息。输入的时候是两张同类别图片组成一对,输入到网络中,然后将所有组合输出的结果求平均值,作为该类别的特征值,计算过程如下
论文阅读笔记《Few-Shot Learning with Metric-Agnostic Conditional Embeddings》
Rρ()R_{\rho}()表示类别特征向量,SkS_k表示第kk个类别的图片集合,nn表示同一类别中的图片数量,gρg_{\rho}表示相关性网络。得到了类别特征向量后,就可以计算输入图像特征与各个类别特征之间的相似性了,但本文并没有这样做,而是增加了一个调节阶段(Conditioning Stage),其结构与相关性网络类似,每个类别对应一个网络,将类别特征向量和查询集图片的特征向量级联起来输入到调节网络中,这样做的目的是为了让网络能够灵活地学习到图像类别的哪些方面是与特定的查询图像有关的。计算过程如下
论文阅读笔记《Few-Shot Learning with Metric-Agnostic Conditional Embeddings》
qq表示查询集图片,hγh_{\gamma}表示调节网络。最后将所有类别对应网络的输出结果级联起来,输入到分类网络中。该分类器并没有采用事先定义好的距离度量函数,而是利用卷积神经网络同时处理多个类别的信息,并利用softmax函数输出最终属于各个类别的概率值。

实现过程

网络结构

  特征提取网络由四个卷积块构成;相关性网络结构如下
论文阅读笔记《Few-Shot Learning with Metric-Agnostic Conditional Embeddings》
整个网络由四个全连接层构成,每层后面都跟有BN层和ELU**层,利用跳跃连接的方式将第一层的输出和最后一层的输出累加起来作为输出结果;调节网络与相关性网络结构类似,也是由四个全连接层构成,并带有跳跃链接结构;分类网络的结构如图所示
论文阅读笔记《Few-Shot Learning with Metric-Agnostic Conditional Embeddings》
由于输出的特征向量都是一维的,因此分类网络的前两层是1D的卷积层,然后是一个全连接层,最后是softmax层。

创新点

  • 提出一种与度量方式无关的小样本学习算法,利用卷积神经网络学习支持集图像和查询集图像之间的关系与相似性
  • 设计了相关性网络和调节网络,针对每个类别都有一个专门的网络进行处理

算法评价

  本文还是延续了特征提取+分类器的常规思路,但在设计上有自己的独到之处,就是用一个网络处理一类图像,这的确是比较少见的操作,这种方式的好处就在于网络的针对性更强,但同样也带来许多问题,如果类别很多怎么处理?多个网络的并行会不会带来内存压力?分开类别后用于训练每个网络的图片更少了,甚至只有一张图片,如何保证每个网络得到充分训练?网络结构会随着训练集情况发生变化,如何适应实际应用需求?本文在设计中增加了调节网络这一步骤,其中将查询集图片也作为输入,一开始我认为这类似于直推式学习(Transductive Learning)的方法,但后来发现这其实就是把类别特征和查询图像特征的比较提前了(原本是在分类网络中进行比较),而且用多个网络分别进行处理。

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