基础理解
Support Set: 比较小的训练数据集-具有很少的类和很少的类中数据,其与train set 的区别在于:train set更大,而Support Set则不足以让网络学习到每一类的具体划分,而是学会区分其间的异同
Few-shot learning的目标是让机器自己学会学习
比如这里面有很多不同的动物,传统的分类就是通过大量的训练网路来让网路认识某张图片是属于哪一类,Meta-Learning则不同,其更注重于判断事物的异同,就好比兔子的图片中,模型经过了上面大量的学习后,并不知道这个是兔子,但是模型可以学习如何判断图片的异同,从而告知你这两张图片很可能属于同一类
Meta Learning和Few-shot Learning:
传统的监督学习要求模型能够从训练集中学习后泛化到测试数据中,而Meta Learning则是learn to learn。即具备学习的能力,这种能力并不是由训练得到的参数来预测测试数据,而是通过对比异同来区分差异。
基本术语
k-way:support set中有k个类别
n-shot:每一类中有n个样本 下图k-way=6;n-shot=1
如何解决Few-shot learing?
learn a Similarity Function
一个简单的思路就是先从一个大的数据集中学习到一个相似函数,即上述的Sim函数。然后用学到的相似度函数作预测
常用的数据集
类似于Mnist的Omniglot
Official Website: https:/github.com/brendenlake/omniglot/
TensorFlow:https://www.tensorflow.org/datasets/catalog/omniglot
其具体构成为:
一共50个字母表共1623个类,每个类有20个样本,105×105的小图片