一直被few-shot或者zero-shot、one-shot的support set 和query set搞得晕头转向。还有什么few-shot测试集中是没见过(unseen)的新类,一头问号??不是那support set训练过模型吗,虽然只有几张图片,为什么是unseen。我觉得我可能是理解能力有问题。
support set和query set在训练集和测试集中都有,可以这么理解吧。
- 训练过程:在数据集中选择C个类,假设数据集有10个类,每个类20张图片,那我们就选7个吧。假设!!!在这7个类中,每个类挑15张图片作为support set,也就是说我们的support set的图片数量等于715=105,每个类中还剩下5张,那就把这75=35张作为我们的query set。用support set中的图片训练一个模型,再用query set去修正这个模型,直到这个模型可以正确分类support set和query set是同一个类
- 测试过程:剩下的三类就是unseen类!!所以真正的unseen是他们,依然地,把这三类分为support set和query set。few的值不一样,和选择的网络不一样,会有一点点差别。这里的网络假设是关系网络(relation network)吧。不过,不重要,这里我们假设用的是每个类15张图片作为support set,固定进我们训练好的关系网络,注意:
这个时候没有label了,即只是输入了图片。
support set里面有45张图片,query set里面有15张图片。从剩下的15张图片里面选择一张,和我们刚才输入的45张3类做对比,输入经过关系网络会输出一个one-shot就对应了,网络判定这幅图片和哪张图片的类别相同。 - 写在最后,感觉有的细节还是有点没搞懂,希望有大神指点一下,就酱~~~啾咪