《Siamese Neural Networks for One-shot Image Recognition》论文阅读笔记

《Siamese Neural Networks for One-shot Image Recognition》论文阅读笔记

摘要

1 为什么要引入单样本学习(one-shot learning)?

机器学习计算成本比较高,且在数据很少的情况下会受到阻碍。

2 什么是one-shot learning?

one-shot learning即是对某(些)类别只提供一个或者少量的训练样本,依旧可以做出正确的预测。

3 作者提出了一种什么方法?

采用一种独特的框架学习孪生神经网络来对输入之间的相似性进行排名的方法。

4 作者提出的模型可以解决什么问题?

一旦对网络进行了调整,可利用的强大辨别特征,将网络的预测能力推广到新的数据,也可推广到未知分布的全新类别。

5 作者所提方法和深度学习模型的比较。

使用卷积结构,本文所提方法和其他深度学习模型相比,具有更强大的结果,在单样本分类任务上,有的已经超过一些深度学习模型,甚至接近最先进模型的性能。

引言

Lake等人提出,人类具有强大的获取和识别新模式的能力。尤其是,当受到刺激时,我们观察到人类有能力快速的理解一些新的感念并在未来的感知中认识到这些概念的变化。机器学习过去在网页搜索,垃圾邮件检测,字幕生成,语音和图像识别等领域成功的取得了最好的性能。 然而这些算法由于被迫对少量监督信息的情况进行预测时,经常出现崩溃的情况。 我们希望,将不需要大量监督信息再训练的情况推广到不熟悉的类别,因为如果数据有限的话,如web检索实现起来很昂贵,甚至无法实现。

一个特别有趣的任务就是在一个关于测试实例的预测前我们观察到到每一个可能的类别仅有一个样本限制下的分类。这就是所谓的one-shot learning,2009年由李飞飞提出。这要和同年提出的zero-shot learning 区分开来,指的是我们之前没有这个类别的训练样本。但是我们可以学习到一个映射X->Y。如果这个映射足够好的话,我们就可以处理没有看到的类了。

one-shot learning 可通过开发特定领域的特征或推理过程直接解决,这些特征或推理过程对目标任务具有高度的辨别能力。 因此,采用这些方法的系统往往在类似的情况下表现出色,但无法提供适用于其他类型的可靠解决方案。本文提出了一种新的方法,该方法在自动获取特征的同时限制了对输入结构的假设,使得模型能够从很少的样本中依然可以使用。作者在基于深度学习的框架的基础上,该框架使用多层非线性来捕捉输入空间中变换的不变性,通常是采用具有许多参数的模型,然后使用大量数据来防止过拟合。这些特征非常强大,因为我们能够在不施加强先验条件的情况下学习它们,尽管算法本身的成本可能相当大。

1 算法

一般来说,我们通过一个有监督的基于度量的方法和孪生神经网络来学习图像表示,然后可再次使用这些网络特征进行one-shot learning,无需再训练。

在我们的实验中,把注意力限制在了字符识别上,尽管一些基本的方法几乎可以复制到任何形式。在这一领域,我们采用大型孪生神经网络。优点如下:a) 能够学习对未知类分布的预测,有通用的图像特征,即使这些新的分布样本很少;b) 使用标准优化技术对从源数据中采样的成对数据进行简单的训练;c) 提供一种不依赖特定领域知识的竞争性方法,而不是利用深度学习技术。

为了建立一个one-shot图像分类模型,我们首先学习一个能够区分图像对的类同一性的神经网络,这是图像识别的标准验证任务。我们假设在验证方面做的不错的网络可以推广到one-shot classification。验证模型根据概率识别输入对,判断其是同一类别或者是不同类别。 这个模型可以被用来评估新的图片,每个新的类正好一个,以成对的方式进行图像测试。然后根据验证网络将得分最高的配对授予一次性任务的最高概率。如果验证网络学习到的特征足以确认或者否认一组字母表中字符的身份,那么它们应该足以应用于其他字母表,前提是该模型已经暴露于各种字母表中,以鼓励学习特征之间的差异。

2 相关工作

总的来说,对于one-shot学习算法的研究还相当不成熟,在机器学习界获得的关注也很有限。然而,在这篇论文之前还有一些关键的工作。

关于one-shot 的seminal(开创性的)工作可以追溯到2000年初,李飞飞等人完成。作者开发了一个变分贝叶斯框架用于one-shot 图像分类,前提是当给定的类中只有很少的样本可用时,可以利用以前学习的类来帮助预测未来的类。最近,从认知科学角度着手处理one-shot问题,提出了一种分层贝叶斯程序学习方法。在一系列论文中,作者对生成字符的过程进行建模,将图片分解成小片。变分贝叶斯学习的目标是确定观察像素的结构解释,然而,由于联合参数空间很大,在变分贝叶斯学习下进行推理比较困难,产生了一个非常棘手的积分问题。

一些研究者已经考虑了其他的学习形式或转移学习方法。Lake等人,最近使用语音原语的生成分层隐马尔科夫模型结合贝叶斯推理过程来识别位置说话人的新词。Maas等人一些使用贝叶斯网络预测埃利斯岛乘客数据属性的研究成果。Wu等人在机器人驱动路径规划算法的背景下讨论了一次性学习。Lim聚焦于如何“借用”训练集中的其他类别的样本,通过调整损失函数中每个训练样本对每个类别应加权多少的度量。这种思想对于某些类的示例非常少的数据集非常有用,提供了一种将类间信息合并到模型中的灵活和连续方法。

3 用于图像验证的深度孪生网络

孪生网络由最早由Bromley等人在20世纪90年代初首次提出,用来解决签名验证作为一个图像匹配问题。 孪生神经网络包含一个双胞胎网络,网络接受不同的输入,在顶部由一个能量函数连接。此函数用于计算最高级别之间的某些度量每侧的特征表示(图3)。这个两个网络之间的参数是并列的。配重保证两个极其相似的图像可能被他们各自的网络映射到由于每个网络计算相同的函数。而且,网络是对称的,所以每当我们把两个不同的图像呈现给双网络,顶部连接层将计算同样的尺度,好像我们要呈现同样的两幅图像但对相对的双胞胎一样。

我们性能最好的模型在全连接层和顶层能量函数之前使用多重卷积层。卷积神经网络在许多大型计算机视觉应用方面取得了优异的成绩,特别是在图像识别任务中。

有几个因素使得卷积网络特别吸引人。局部连接可以大大减少模型中的参数,某种形式的内置正则化,尽管是卷积的层在计算上比标准非线性层更昂贵。此外,卷积运算用于这些网络具有直接滤波解释,其中将每个特征映射与输入特征进行卷积,以将模式标识为像素组。因此,输出每个卷积层的空间特征在原始输入空间中提供了一些有用的信息对简单变换的鲁棒性。最后,非常快cuda库,现在可以使用库来构建大型卷积函数没有足够训练的人际网络时间。

3.1 模型

4 实验

4.1 数据集

Omniglot数据集包含来自 50不同字母(语言)的1623 个不同手写字符。每一个字符都是由 20个不同的人通过亚马逊的 Mechanical Turk 在线绘制的。也即存在1623个不同的手写字符,每一个字符有20张图片。数据集被分成40个字母表的Background Set和10的字母表的Evaluation Set。数据分成两部分是为了区分正常训练,验证和测试的model训练方法。Background set用训练模型学习超参数和特征映射关系, Evaluation Set用于验证使用少量数据进行one-shot classification的能力。

4.2 验证网络训练

为了训练验证网络,随机抽样相同和不同的pairs,生成三个不同规模的数据集,分别是3w, 9w和15w。我们使用总数据的60%进行训练,50个字母表中30个, 20个drawer中的12个。

每个字母表中用来训练数量是固定的,保证每个字母表在优化的过程中能够获得等同的表征,但是不能保证每个字母都能公平对待。每个训练样本经过仿射变换后生成8个新的样例,数据集规模变成27w, 81w和135w。

为验证性能,从额外的10个字母表和4个drawer抽取了1w pairs。10个字母表和4个drawer的剩余pairs用于测试,这部分和Omniglot数据集的测试数据是一样的,方便进行横向对比。用于验证性能的另一类策略是使用相同的字母表和drawer生成一组320个识别实验,模拟Evaluation Set上的目标任务。在实际训练过程中,第二组策略用于停止训练的标准,即在最少训练次数时达到最低的验证loss。

在下表中,我们列出了六种可能的培训集中的每一种的最终验证结果,其中列出的测试准确度在最佳验证检查点和阈值处报告。 我们报告六种不同训练运行的结果,改变训练集大小和切换仿射变换。

4.3 one-shot learning

经过优化后获得孪生网络的优化模型,开始验证学到特征在one-short learning任务中辨识的潜力了。

为了凭经验评估one-shot learning的性能,Lake开发了一种20-way的字母表内的分类任务,首先从为评估集保留的字母表中选择一个字母表,在该字母表中随机均匀地采集20个字符。二十个drawers中的也选择两个。这样每个drawer都花了了二十个字符的样本。由第一drawer产生的每个字符被表示为测试图像并且分别与来自第二抽屉的所有二十个字符进行比较,目的是从所有第二抽屉的字符中预测与测试图像对应的类。对于所有字母表,该过程重复两次,因此对于每个评估字母表,都有40个one shot learning 实验。这构成了总共400次一次性学习试验,从中计算分类准确度,结果如下表:

列表中还包含一个只包括两个全连层的非卷积神经网络。我们卷积模型达到92%的准确率,比HBPL差点。但是我们的模型没有关于字符和笔画的任何先验知识,这是模型的主要优势。

4.4 MNIST one short Trial

Omniglot数据被成功MNIST的变换,因为Omniglot数据集的分类数量远多于每个分类的图片数量。那如果直接使用Omniglot数据集上的训练模型测试MNIST的分类效果会怎么样呢,作者列出了与NN算法的比较:

5、结论

提出一种首先学习卷积孪生网络模型的one-shot 分类的方法,在Onniglot数据训练模型,其性能胜过大多数基准,仅比最好的方法稍差,很接近人类的准确率。并且可以扩展到其他的领域的one-shot learning。作者使用仿射变换做数据扩展,现在正在试验对字体的笔画做独立仿射变换,然后叠加的一个合成图中,由此来模仿一些常见变化。

编辑于 2021-03-29 16:10