few shot learning
1. Interpretable Few-shot Learning
神经网络模型是一种黑盒模型。简单来说,输入一张图片,能够看到只是利用这个神经网络得到的分类结果,而神经网络的内部逻辑是不可见的。为什么用几个n * n 的矩阵对原图进行卷积就能提取特征,它提取出又是什么特征这些都是不可知的。
为此,想到如果能够对神经网络中的每一步操作给出人类能够理解的解释,那么就可以直接在语义层对神经网络进行调整,从而或许就不需要那么多标注的训练样本。
如,希望一个CNN不仅仅能够在某张图像上检测到一只小鸟,CNN还能够明确的指出,它用第一个Filter去监测鸟头,第二个Filter去检测鸟尾。由于这两个Filter被这张图像触发,所以判断出图像中有一只小鸟。更进一步,当得知鸟的分类得分是0.7,还希望CNN能够给出鸟头部分贡献了0.3的分数,鸟尾贡献了0.2的分数。这样当CNN内部逻辑足够条理清晰,是否还需要通过大数据进行端对端的训练?能否在语义层面直接debug CNN呢?
在这篇论文中,首先通过VGG-16的网络提取图像原始特征,接着利用视觉概念将上一步提取的特征进行VC编码,随后根据VC分布计算像素可能性,再接着将像素可能性转为图像类别可能性,最后给出图像得分最高的类别。
Interpretable Few-shot Learning没有找到论文原文,但该文利用CNN解释,从而达到小样本学习。
可以说提出CNN一个可能的发展方向,但基于黑盒模型的CNN,尽管表现是好的,本质还是靠不住。
尽管标题是可解释的小样本学习,但更多的是噱头,不是真正意义上的解释。
因此这种方法对医学图像分类和检测并不适用,除非有人能够做到真正对CNN中的每一步做出人类能够理解的解释,或许可以借鉴一二。
原来不是没有原文,2017年这篇论文《Interpretable Few-shot Learning》打算发表,然而好像文笔不行。于是2018改头换面《Unleashing the Potential of CNNs for Interpretable Few-Shot Learning》发表在ICLR,厉害了。
[论文下载](https://openreview.net/pdf?id=BJ_QxP1AZ)
2. Few-shot Classifier GAN
生成对抗网络GAN作为近年来大热的深度学习模型,尾随其后的有一系列的GAN变形,诸如CGAN、CGAN、SGAN、ACGAN等等。在GAN中有一个G(Generator)生成器和D(Discriminator)判别器。生成器通过加入噪音等方法生成图片,判别器来判别图片是生成的假图还是非生成的真图。
该网络通过C* 类别集结合 X*real 与 G(z) 来减少所需的训练样本。最后得到两个输出,一个图片是否是生成的判断,另一个是图片的类别。
这篇论文提出通过对抗生成网络来解决小样本分类的问题。对于内容简单图片GAN生成的图片可以达到以假乱真的效果。
但是对于内容复杂的图像,就人来看能够明显区分哪些是生成的,哪些是原始图像。当面对医学图像这种本就难以区分的图像,真正效果还是未知。
[论文下载](https://www.researchgate.net/publication/328400302_Few-shot_Classifier_GAN)
3. Few-Shot Learning with Meta Metric Learners
该文提到现存小样本学习要么基于元学习(Meta-Learning),要么基于度量学习(Metric-Learning),度量学习也叫相似度学习。因此作者就想到能不能这两种学习结合起来,产生一个元度量学习(Meta Metric Learning)。事实上作者还真的做到了,文中训练了一个度量学习器来学习特定的任务(如分类任务),再训练一个元学习器来学习度量学习器中的度量。文中就Matching Network、Meta-learner LSTM、Meta Metric-learner三种方法的分类效果做了比较,结果当然文中的好,不然怎么发论文。需要注意一点Matching Network、Meta Metric-learner都使用了额外数据。
Few-Shot Learning with Meta Metric Learners
这篇论文没什么好说的,典型的将前人方法加以整合,得到更优的方法。挺nice的,也算是拓宽知识面吧。方法值得借鉴。
[论文下载](https://pdfs.semanticscholar.org/be16/23a272f9fa48f2324e2dfa79f57af7cc4fec.pdf?_ga=2.238222211.2035761899.1544400795-167720603.1543398570)
4. Matching Networks for One Shot Learning
匹配网络实际上就是基于度量的小样本学习。在文中,作者考虑了非参模型与参数模型结合,对于一个给定的支撑集,可以是使用它对新的样本学得一个概率模型,然后使用这个模型进行测试。这里分类时使用了非参数度量方法,而训练模型则使用LTSM的注意机制,这部分亮点只看懂加权求平均得到分类,记忆体现在哪里?
精分少女(https://www.zhihu.com/people/jing-fen-shao-nv-64)Matching Networks architecture
这篇论文有一部分没有读懂,按照自己的理解更愿意把该文看作类似K-NN这种非参模型的改进。有机会的可以复现一下。
以前也曾考虑过非参模型处理医学图像,类似与肺结节这种感觉效果应该不怎么好。不过不得不说这篇文章想法确实不错。
对于图片检测有没有一种双重标记的方法呢,先训练模型寻找图像中的某一部分,然后把它们分割出来,再就这部分进行检测。
[论文下载](https://arxiv.org/pdf/1606.04080.pdf)
5. Prototypical Networks for Few-shot Learning
作为另一种经典的度量学习方法,该文使用的类原型与聚类方法非常相似。基本思路构造根据每一类别的原型构造一个嵌入空间。测试时计算样本的与类原型之间的距离。从而得到样本的类别。
Prototypical Networks for Few-shot Learning
根据文中实验结果发现这种方法分类效果简单有效,对与小样本以及零样本都是适用的。毕竟是基于度量的非参数学习,选择合适的数据集,有这样的效果也正常。
不管实验结果怎么样,对于图像始终改变不了非参数方法不稳定的缺点。
[论文下载](https://arxiv.org/pdf/1703.05175.pdf)
6. Few-shot Learning with Simplex
这篇文章的翻译过来即是基于单纯形的小样本学习,文中方法的实质也是基于度量的学习。作者提出基于K-NN等方法如果某个类别没有被模型较好的学习会出现严重的分类错误以及K-NN逐点比较不能涵盖全局信息等问题。为此作者提出一种基于几何模型的解决思路,将每一个类别描述为一个多面体,多面体的每个顶点表示属性特征。在建模过程发现多面体体积计算有困难,于是采用最简单来替代。在下图中每个单纯形代表一个类,t则是测试样本,计算t与每个单纯形之间的距离进行分类。
Few-shot Learning with Simplex12月到了,不得不说小样本学习论文真的是井喷,几个月前还就那么些,突然冒出来这么多都是18年的。
而且似乎有个趋势一部分算法远离深度学习去解决小样本,另一部分向着最新的元学习进军。
这篇论文又是一篇方法创新性的小样本学习,拓宽知识面。至于效果如何,有待深入研究。
[论文下载](https://arxiv.org/pdf/1807.10726v1.pdf)
7. Siamese Neural Networks for One-Shot Image Recognition
双生网络也是一种基于度量的小样本学习。双生,顾名思义,文中作者训练训练两个同种结构的网络来判别图片是否是同一类。该网络训练时使用成对的图片进行训练,两张图片分别输入两个网络,经过网络提取特征最终向量化等操作,尾端最针对输入的样本对是否来自同一个类别设计了损失函数,来自同一类最小化损失,否则最大化损失。经过这样训练的得到的一个分类模型甚至可以用与没有参与训练的类别。
比如训练时只使用了足球、篮球以及大象这三类。想要测试的图片类别时鳄鱼,那么测试时,只需要一张已标注的鳄鱼图片作为其中一个网络的输入,另一个网络输入测试图片判断,从而判断两张图片是否属于同一类。
a model to discriminate between a collection of same/different pairs.
下图是一个简化的二分类双生网络结构图。
Siamese Neural Networks for One-Shot Image Recognition
基于度量学习的双生网络,小样本学习方法越来越多了,然而这种方法感觉能够用于医学图像呢。
假如病变的图片有30张,正常图片有30张,经过训练得到一个网络,最后将测试图片同训练图片对比,会不会有比较好的效果呢?
[论文下载](https://pdfs.semanticscholar.org/f216/444d4f2959b4520c61d20003fa30a199670a.pdf?_ga=2.10590135.2035761899.1544400795-167720603.1543398570)
8. One-Shot Learning for Semantic Segmentation
该文只利用一张已标注的图像就能进行语义分割,文中提到他们设计一种双分支的网络,在第一个分支从一个支持集获得一张图片学习参数theta,第二个分支则是结合第一步中的参数以及FCN分割模型对一张新的图片进行分割,最后输入预测掩码。
One-Shot Learning for Semantic SegmentationSome qualitative results of 1-shot
在这篇文章中看到了双生网络以及匹配网络的影子。
尽管没有更细节的去了解这篇文章,不过做实验对比的时候有用到微调,迁移学习、元学习以及双生网络。
很厉害阿,图像分割已经能做到one-shot了。对比之前的FCN,U-net,感觉又提升一个level。
[论文下载](https://arxiv.org/pdf/1709.03410.pdf)
9. Few-Shot Learning with Graph Neural Networks
这篇文章提出一种基于图卷积网络的小样本学习,图卷积网络最早应该是2009年提出来的。文中作者设计了几种不同的启动方式,也就是输入的图片可以标注的和未标注的某些组合,对于不同的组合有小样本学习、半监督学习以及主动学习3种启动方式。然后将图片转化节点输入GNN(图卷积网络),最后得到分类结果。
Few-Shot Learning with Graph Neural Networks GNN
这篇文章首先介绍了几种启动方式,还在文中说明他们方法涵盖了Siamese Networks、Prototypical Networks以及Matching Networks这几个经典的小样本学习网络。
虽然没有看出这篇文章到底厉害在哪里,但涵盖了这么多工作应该是有价值的。
[论文下载](https://arxiv.org/pdf/1711.04043.pdf)
10. Large Margin Few-Shot Learning
该是的“大边界”的小样本学习,也是一篇基于度量学习的小样本方法。在使用元学习方法学习一个度量模型时,作者发现在meta-test阶段训练样本较少导致学习的模型不能较好的分类那些相近的类别。于是便想到能够增大类别之间的度量距离,具体做法在进行softmax分类时,加上一些限制。除此之外,文中还将这种想法应用Graph Neural Networks和Prototypical Networks,实验结果略有一些提升,1%吧。
Large Margin Few-Shot Learning很怀疑这些方法是不是都强行调参调出来的结果,不过也算是一种方法吧。
[论文下载](https://arxiv.org/pdf/1807.02872.pdf)