论文阅读笔记《Large-Scale Few-Shot Learning: Knowledge Transfer With Class Hierarchy》
核心思想
本文提出一种带有类别分级的知识迁移算法实现了大规模小样本学习任务,与之前的小样本学习任务只包含几十个类别的情况不同,大规模小样本学习任务包含上千个类别的图像,但每个类别包含的样本图片很少,因此也给学习算法带来很大的困难。先前的算法基本都是利用卷积神经网络提取特征,然后利用最近邻算法实现分类,本文则在此基础上增加了一个类别分级网络,并以此引导特征提取网络的训练。首先,作者将数据集分成两大部分源集和目标集,源集中包含大量带有标记的图片,且每个类别都有充足的样本,用于网络的训练;而目标集中每个类别仅有少量样本用于小样本任务的学习。然后对源集和目标集中的样本的类别进行分级,这个过程类似于分层聚类。假设共有1000个类别的样本,经过一次聚类之后,得到200个超类(Superclass),再经过一次聚类得到40个超类,以此类推就可以将1000个类别划分给不同的超类,得到一个树形的分级结构,整个过程如下图所示。
作者的想法是利用源集和目标集类别之间的语义关系作为一种先验知识来帮助网络学习更多可迁移的特征信息,这一树形的类别分级结构正显式的表达了其中的语义关系。该结构不需要人为标注获得,而是利用词向量提取模型将类别的名称转化为对应的词向量,再利用kNN算法将其聚类得到第一级超类,计算每个超类中词向量的平均值作为该超类的词向量,进一步通过聚类得到第二级超类。除了最下面一层还包含有具体的类别之外,其他的层级都称之为超类层。
得到类别分级结构之后,作者就设计了一个类别分级网络用于预测某个样本类别的从属关系(具体的说就是他在每级超类层中分别属于哪个超类),网络结构如下图所示
图片首先经过一个CNN进行特征提取,然后进入类别分级网络。这个网络共包含两个步骤:第一步,在不同的类别\超类层级上预测该图片所属的类别\超类,可以看到由若干个彼此独立的全连接层分别对应不同的类别\超类层级,每个全连接层后都有一个softmax层预测该样例图片属于这个类别\超类层级中的哪个类别\超类(比如一张狗的图片,他在最低的类别层中属于狗这一类,而在第一个超类层中属于第2个超类(假设是犬科),在第二个超类层中属于第5个超类(假设是哺乳动物)…)。我们知道各个超类层级之间并不是相互独立的,而是存在着密切的从属关系,因此第二步就是利用低层级的类别从属信息,来预测更高层级的类别从属关系(比如一个动物他如果在第一个超类层中被划分给犬科,那么就不应该在第二个超类层中被划分给卵生动物)。如果网络结构所示,将本层级对应的全连接层输出与更低层级对应的全连接层输出级联起来作为输入,再经过一个全连接层得到本层级的分类结果。数学表达方式如下
式中表示特征提取网络;表示第个类别\超类层级对应的全连接层,数字1表示第一步;表示第一步分类的结果;表示级联操作,表示第二步分类的结果。利用预测的分类结果与真实的分类结果进行对比,计算得到损失对网络进行训练,使得特征提取网络能够提取更多的可迁移特征信息。在测试时,还是利用最近邻算法对特征向量进行类别划分。
实现过程
网络结构
特征提取网络采用ResNet50,类别分级结构共包含3个超类层级(分别包含200,40和8个超类)和1个类别层级,类别分级网络结构如上文所述,每个层级对应一个全连接层,每个全连接层后都有ReLU**层。
损失函数
对每个级别的类别和超类的划分都进行监督,损失函数采用交叉熵损失函数。
算法推广
本文对零样本学习任务进行了测试,实验结果表明本文提出的算法对应零样本学习任务也取得了较好的结果。
创新点
- 提出一种类别分级结构,利用类别之间的语义关系,引导网络学习到更具迁移性的特征信息,进而帮助最近邻算法得到更加准确的分类结果
- 利用词向量提取模型和KNN算法,通过数据驱动的方式得到了所有样本的类别分级结果,避免了人工标注的巨大工作量
算法评价
本文非常巧妙地利用了类别之间的语义关系对特征提取网络进行额外的监督,普通的分类网络只是利用“图片-类别”这一关系对网络进行监督的,而本文设计的网络则利用更高层级或者说更抽象类别关系对网络进行监督,不仅要求类别划分准确,而且要求在各个超类层级中也要划分准确,这就要求特征提取网络能够提取相近类别之间共同拥有的,可迁移的特征信息。实验结果表明本文设计的网络对于类别数目多,样本数量少的大规模少样本学习任务具有较好的分类效果。但也存在两点疑问:一、对于每个类别的图片,一旦其类别确定了,那么其对应的各个层级的超类也固定下来了,那么在训练过程中网络会不会机械地学习到这一对应关系,而并没有直接提高特征提取网络的表征能力呢?二、算法最终的落脚点还是采用最近邻算法完成分类,能否采用更精巧的方式呢?
如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。