2.Siamese Neural Networks for One-shot Image Recognition论文详读-PartⅢ(实验、结论)

⭐原文链接:Siamese Neural Networks for One-shot Image Recognition (cmu.edu)

*注:文中部分字母由于格式问题会出现部分偏差,可结合字母在特定段落中的位置进行理解

*黑字——原文翻译

*红字——存在问题

*蓝字——优势

*绿字——主观分析(未对全部细节进行分析,仅针对本文内容补充)

4. Experiments

我们在Omniglot数据集的子集上训练我们的模型,这是我们首先描述的。然后,我们提供了有关verification和one-shot performance的详细信息。

4.1. The Omniglot Dataset

Omniglot数据集由Brenden Lake和他在麻省理工学院的合作者通过亚马逊的Mechanical Turk收集,以产生一个标准基准(standard benchmark),用于从手写字符识别领域(handwritten character recognition domain)的少数示例中学习。

Omniglot包含了50个字母表的示例,从拉丁语和韩语等公认的国际语言到不太为人所知的地方方言(local dialects)。它还包括一些虚构的字符集,如Aurek-Besh和Klingon(图6)。

Figfure6. Omniglot数据集包含了来自世界各地字母表的各种不同图像。

每个字母表(alphabet)中的字母数量差异很大,从大约15个字符到40个字符(characters)。

Lake将数据分成40个字母表的background set和10个字母表的evaluation set,这些字母表所有字符都是由20手写者(drawers)中每一个一次生成的。我们保留这两个terms是为了区别于可以从background set中生成的正常训练、验证和测试集(normal training, validation, and test sets),以便对模型进行优化以进行验证。

The background set通过学习超参数(learning hyperparameters)和特征映射(feature mappings)来建立模型。相反,the evaluation set仅用于衡量one-shot classification performance。

4.2. Verification

为了训练我们的验证网络(verification network),我们通过随机采样(sampling random)相同和不同的对(same and different pairs)。将三个不同大小的数据集放在一起,分别包含30,000、90,000和150,000个训练示例。我们留出60%的数据用于训练: 50个字母表(alphabets)中有30个,20个手写者drawers中有12个。

我们为每个alphabet固定了统一数量的训练示例,以便每个字母表在优化过程中得到相同的表示,尽管这不能保证每个alphabet中的单个字符类(individual character classes)。

通过添加affine distortions,我们还生成了一个额外的数据集副本,对应于每个大小的增强版本。我们为每个训练示例添加了8个变换,因此相应的数据集有270,000、810,000和1350,000个有效示例。

*即将3000、9000、150000扩大9倍。

为了监测训练期间的表现,我们使用了两种策略。

首先,我们创建了一个验证集,其中包含从10个alphabets和4个additional drawers中选取的10,000个示例对。我们保留了最后10个alphabets和4个drawers进行测试,我们将这些限制为与Lake等人使用的相同。

我们的另一种策略利用相同的alphabets和drawers来为验证集生成一组320个one-shot recognition trials,在评估集(evaluation set)上模拟目标任务。在实践中,这第二种确定何时停止的方法至少与验证任务的验证错误一样有效,因此我们使用它作为终止标准。

在下表(表1)中,我们列出了六个可能训练集的最终验证结果,其中列出的测试准确性在最佳验证检查点和阈值处(best validation checkpoint and threshold)报告。

Table 1. Omniglot验证任务的准确性(siamese convolutional neural net)

我们报告了六个不同训练运行的结果,改变训练集大小和切换畸变(toggling distortions)。

在图7中,我们已经从验证任务中两个性能最好的网络中提取了前32个过滤器,这些过滤器在带有仿射失真的90k和150k数据集上进行了训练,结构如图3所示。虽然过滤器之间存在一些相互适应,但很容易看到一些过滤器相对于原始输入空间承担了不同的角色。

Figure 7.由siamese network学习的第一层卷积滤波器示例。注意filters适应不同的任务:一些寻找非常小的point-wise特征,而另一些功能类似于大规模的边缘检测器(larger-scale edge detectors)。

4.3. One-shot Learning

一旦我们优化了siamese network以掌握验证任务,我们就准备在一次学习中演示我们学习的特征的鉴别潜力。

假设我们有一个测试图像x,某个列向量,我们想把它归为C类之一。

我们还给出了其他一些图像 ,一组列向量表示这些C类中的每一个类别的示例。

现在,我们可以使用作为c= 1,...,C.^2范围内的输入query the network。然后预测对应最大相似度的类。

为了经验地评估one-shot learning表现,Lake开发了一个20-way within-alphabet classification task,首先从保留的评估集中选择一个alphabet,同时随机抽取20个characters。二十个drawers中的两个也是从evaluation drawers中选择的。

这两个drawers然后生成二十个characters的样本。由第一个drawer产生的每一个characters都被表示为测试图像,并分别与来自第二个drawer的所有20个characters进行比较,目的是从第二个drawer的所有characters中预测与测试图像对应的类别。

图7描述了一个one-shot learning trial的单独示例。这一过程对all alphabets重复两次,因此对10个evaluation alphabets中的每一个都有40个one-shot learning trials。这总共包含400个one-shot learning trials,从中计算分类精度。

one-shot测试结果见表2。我们借用(Lake et al., 2013)的基线结果与我们的方法进行比较。我们也包括一个带有两个全连接层的非卷积连体网络(nonconvolutional siamese network)的结果。

Table 2.将每种类型网络的最佳one-shot精度与基线进行比较。

我们的卷积方法为92%,比任何模型都强,除了HBPL本身。这只比人类的错误率略低。虽然HBPL总体上表现出更强的结果,但我们表现最好的卷积网络不包括任何关于字符(characters)或笔画(strokes)的额外先验知识(prior knowledge),例如关于绘图过程的生成信息。这是我们模型的主要优势。

4.4. MNIST One-shot Trial

Omniglot数据集包含每个可能的字母类别的少量样本;出于这个原因,原始作者将其称为种"MNIST transpose”,其中类的数量远远超过训练实例(training instances)的数量。

我们认为,监测在Omniglot上训练的模型如何泛化(generalize)到MNIST会很有趣,在MNIST中,我们将MNIST中的10个数字视为alphabet,然后评估一个10-way oneshot分类任务。

我们遵循了与Omniglot类似的程序,在MNIST测试集上生成400个one-shot trials,但排除了训练集上的任何微调(fine tuning)。

所有28x28的图像都被上采样到35x35,然后给我们模型的简化版本,在来自Omniglot的35x35图像上进行训练,这些图像被下采样了3倍。我们还评估了该任务的nearest-neighbor baseline。

实验结果如表3所示。nearest neighbor baseline提供了与Omniglot相似的性能,而卷积网络的性能下降幅度更大。然而,我们仍然能够从Ominglot上学习到的特征中实现合理的泛化,而不需要在MNIST上进行任何训练。

Table 3.MNIST 10-versus-1 one-shot分类任务结果。

5. Conclusions

我们提出了一种通过学习deep convolutional siamese neural networks进行验证的one-shot分类策略。我们概述了将我们的网络性能与为Omniglot数据集开发的现有最先进分类器进行比较的新结果。

我们的网络在很大程度上超过了所有可用的基线,接近于前几位作者所达到的最佳数字。

我们认为,这些网络在这项任务上的强大表现不仅表明,我们的度量学习方法可以实现人类水平的准确性,而且这种方法应该扩展到其他领域的一次性学习任务,特别是图像分类。

在本文中,我们只考虑了通过使用全局affine transform处理图像对及其distortions来训练验证任务。

我们一直在试验一种扩展算法,该算法利用关于单个中风轨迹的数据来产生最终的计算distortions。通过在笔画上施加local affine transformations,并将它们叠加到合成图像中,我们希望我们可以学习到更好地适应新示例中常见的变化的特征。


参考文献

Koch, Gregory R.. “Siamese Neural Networks for One-Shot Image Recognition.” (2015).

猜你喜欢

转载自blog.csdn.net/qq_41958946/article/details/128885008