Matching Network for Oneshot Learning

Matching Network for Oneshot Learning

paper理解

如下图所示, 左边的是support set S, 右下角的是test的数据^x, 整个就是一个matching Network, 也就是说当给出一个support S和一个测试的图片^x, 那么整个模型就会给出^y作为输出的类别,因此建立了一个泛函,该泛函将S映射到 C_S(^x), 即将S映到一个分类器. 而具体的分类的操作,作者选了固定的参数。图中的f和g是网络需要学习的参数,即提feature的网络,由于这里用的并不是siamese网络,因此f和g并不一样,(可以做一下f和g一样的类似的实验), 联系f和g的是一个度量,这个度量可以是cos等等, 这样的话,就会得到了一个数 a(x, ^x), 之后再将这些加权起来就得到了预测^y, 个人理解这里的y应该是onehot的形式,或者是soft的形式,所以最终加起来^y还是一个向量,那么这个向量里面最大的那个值所对应的类别就是输出的类别。注意一点,如果S中的每个元素都各自是一个类别的话,即他们的gt的onehot的label是正交的,也就是这时候最终的输出的label将直接由attention函数 a来决定。

avator

最终的输出公式如下

avator

f,g ,c 的选择

  • g

g的选择是vgg或者是inception等basic的backbone,

  • f

f 的选择用的是LSTM,这一点还没有搞明白,但是直观的理解是当给定S之后,比如S里面有5个类别,是oneshot的话,总共有5个样本,假设刚好是0,1,2,3,4;那么将这几个调整一下顺序, 比如变成了5,4,3,2,1本质上仍是S。个人理解f的选择就是想保持在这种全排列下的不变性.

  • c

c的选择就是通常的度量,比如cos等。

实验结果

avator

从结果中可以看到, 这种matching的方式要比siamese的结果要好一点点.

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦