一晃都开学十天了来学习之后还是感觉有个适应期哈
拖到周末才来更新 希望三月顺利~接下来能完成一个个任务!
今天更新的论文是比较早之前阅读的 但是就是没有认真过一遍 …
论文名称:
《Few-Shot Learning as Domain Adaptation: Algorithm and Analysis》
论文地址:https://arxiv.org/pdf/2002.02050.pdf
论文阅读参考:
https://blog.csdn.net/weixin_42137700/article/details/106927167
论文代码:https://github.com/JiechaoGuan/FSL-DAPNA
本篇文章只记录个人阅读论文的笔记,具体翻译、代码等不展开,详细可见上述的链接.
(本文据说已经被撤稿了……各位避雷避雷/博主也复现了代码确实是差距有点多,但文章的逻辑还是具有一些可圈可点的地方)
Background
FSL is often formulatedas a form of transfer learning from the seen/source classes to the unseen/target ones.
However, there is an additional challenge which has been neglected so far, that is, the distribution of the unseen classes is different from that of those seen during training.
Such a distribution difference/shift is caused by class label difference. This differs from the problem domain difference as studied in the classic domain adaptation (DA) problems, where the source and target datasets contain the same classes but come from different domains (e.g., train a cat classifier on paintings and recognize cats in photos).However, it has the same effect of leading to poor generalization of the model trained on the source data, and thus can be considered as a special case of domain shift.
关于小样本的域适应的背景以及域适应的概念,在前面的文章及阅读笔记中均有提到,这里就不在展开叙述。
小样本学习可以看作是从可见类图片到未见类图片的迁移学习。每一个可见类包含大量训练样本,而每一未见类仅仅包含极少量的标注样本。未见类提供的训练样本稀少,以及可见类与未见类之间的数据分布不同,是小样本学习面临的主要问题。
而在理论中,通常假设训练和测试数据来自相同的分布。但如果我们训练受监督学习者的源域与应用学习者的目标域有本质上的不同,那么就不存在进行良好的泛化的可能性。(这也是在现实中遇到较多的情况)这时候做域适应就显得尤为重要。
Work
Our contributions are: (1) For the first time, we propose that the conventional FSL problem must be solved together with the DA problem, and a novel DAPNA model is developed by introducing meta-DA into ProtoNet. (2) We provide the first rigorous learning bound of meta-learning based FSL in the area of FSL. (3) Our DAPNA model achieves new state-of-the-art performance on three standard FSL and one cross-domain FSL benchmark datasets.
(1)首次将领域迁移技术引入到小样本学习中,用以增强小样本学习模型的跨领域能力。
(2)在假定所有任务采自同一分布时,我们推导出了小样本学习模型的泛化误差上界,为小样本学习提供了理论保证。
(3)我们所提出的DAPNA模型在小样本学习领域的诸多标准数据集上取得了新的state-of-the-art 效果。
Model
本文提出的模型如上图所示,大致可以分为两个模块:小样本学习模块和域适应模块,其中,小样本学习模块采用的是结合注意力机制的原型网络,域适应模块中包含了一个自动编码器和MDD(间隔差异)。下面详细展开。
1.小样本学习模块
原型网络即采用的是原型的分类器,即为支持集中每个类别计算出一个原型(每个类别所有样本特征向量的平均值),然后根据查询样本的特征向量与各个类别原型之间的距离预测类别,,将距离转换为分数后计算损失函数进行误差反传。
每一个类的原型是支持集中的样本embedding的均值向量,其中Sc为支持集中每个类的样本计算query instance和各个类原型间的距离,通过softmax得到分类概率分布损失函数是根据具有 ground-truth 标签c的查询样本xi的负对数概率来定义的:
2.注意力机制
在ProtoNet中,类被表示为少数训练样本的平均值。 然而,将类原型简单地表示为样本均值可能不是最优策略,特别是当只有很少的样本可用时,例如,单个外围样本可以在原型中引入较大的偏差。故,引入了一种基于transformer的注意力机制来学习使用单类原型来表示一组训练样本的最佳方法。
关于此注意力机制详细的可以参考:https://blog.csdn.net/weixin_39059031/article/details/108115662
http://arxiv.org/abs/1810.00825v3
这边简单叙述一下:
具体而言,我们构造了一个三重态(查询U、键K、值V):
查询点与每个键都有一个值的键列表相匹配;
计算查询点和键之间的相似性;
值表示为由计算的相似性加权的所有值的总和。
从形式上讲,我们使用U来表示带有K的查询点集合,而V表示值
查询点xi∈U与K中的键之间的相似性被计算为“注意"
这些注意事项被用作计算查询点xi的最终嵌入的权重:
将所有图片特征输入到注意力机制网络中得到新的图片特征然后用以作为原型网络的输入,从而增强图片特征在该任务中的表达能力和适应性。
用原型网络的方法进行学习相应损失:
3.域适应模块
这边主要采用的是间隔差异即MDD[Margin Disparity Discrepancy]
具体的可以参考上一篇文章:https://www.jianshu.com/p/33ff9f7dc463
这边只贴一些图和概念:
框架图:
概念:
最终的领域迁移损失函数由间隔损失函数(Margin loss)和间隔差异(MDD)构成:
文章还提到了泛化误差上界(引入MDD后的),感兴趣的可以看原文和附录的推导。
Experiment
1)传统小样本学习实验。
我们在小样本学习的3个公开数据集上(miniImageNet,tieredImageNet, CUB)进行了传统小样本学习实验(特征提取网络是WRN,有预训练)。
2)跨域实验
在跨领域小样本学习数据集(miniImageNet->CUB)进行了跨域小样本学习实验(特征提取网络是ResNet18,无预训练,复现了《A Closer Look at Few-shot Classification》)。实验结果表明我们提出的算法能够取得新的SOTA结果,而且在跨领域小样本学习实验中这种优势更为明显,显示出我们的算法模型的确具有较强的跨领域能力。
3)消融实验
1.PN-原ProtoNet
2.PNA – Only the PNA loss Lp (In other words, we set α = β = 0)
3.PNA+PNA∗ – We just combine the PNA loss Lp over D and the PNA losses Lps, Lpt over two sub-episodes Ds, Dt( β = 0)
4.PNA+MDD – our DAPNA model without
using the PNA loss over two sub-episodes. That is, we set
α = 0
Note that our full DAPNA model can be denoted as PNA+MDD+PNA∗
总结一下:
本文第一次将领域迁移技术引入到小样本学习当中,用以减少小样本学习中可见类与不可见类之间真实存在的领域间隔,以此来提高模型的跨领域能力。在假定所有训练任务都采样于同一分布的情况下,我们给出了小样本学习算法模型的泛化误差上界,同时我们也根据该误差上界进行模型的优化。
(感觉作者把小样本由于不可见域导致的数据分布差异可以看作是一种特殊的领域迁移问题,提出了一种基于注意力机制的领域迁移原型网络 (DAPNA),去解决在元学习框架下的领域迁移问题。具体来说是在训练过程中,我们将可见类的一个纪元 (episode,训练单位)分拆成两个类别完全不重合的子纪元(sub-episode),用以模拟从可见类到未见类的领域迁移)
Ending~
数学好难 算法好难
加油小李!