为了训练我们的验证网络,我们通过对随机相同和不同的样本对进行采样,将三个不同的数据集大小与30000,90000和120000 个训练示例放在一起。我们预留了总培训数据的 60%:50个字母中的30个字母和20个抽屉的12个抽屉。
我们固定了每个字母的训练样本数量,以使每个字母在优化过程中都能得到相同的表示,尽管这不能保证每个字母中的各个字符类。通过添加仿射失真,我们还生成了与这些大小中的每个大小的增强版本相对应的数据集的附加副本。我们为每个训练示例添加了八个变换,因此相应的数据集包含 270000,810000和1350000有效示例。
为了监控培训期间的表现,我们使用了两种策略。首先,我们创建了一个验证集,用于从10个字母和4个其他抽屉中提取的10,000个示例对进行验证。我们保留了最后10个字母和4个抽屉用于测试,在这里我们将它们限制为与Lake等人使用的相同。 (Lake et al。,2013)。我们的其他策略是利用相同的字母和抽屉为验证集生成一组320次单次识别试验,以模拟评估集中的目标任务。实际上,确定停止时间的第二种方法至少与验证任务的验证错误一样有效,因此我们将其用作终止标准。
在下表(表1)中,我们列出了六种可能的训练集的最终验证结果,其中列出的测试准确性在最佳验证检查点和阈值处报告。我们报告了六个不同训练运行的结果,这些结果改变了训练集的大小和切换的失真。
在图7中,我们从验证任务的前两个性能最高的网络中提取了前32个滤波器,这些滤波器在具有仿射失真和图3所示架构的90k和150k数据集上进行了训练。过滤器之间的适应性,很容易看出某些过滤器相对于原始输入空间承担了不同的角色。
表一,Omniglot验证任务的准确性(孪生卷积神经网络)
图7,孪生网络学习到的第一层卷积滤波器的示例。通过过滤器具有不同的作用:一些过滤器寻找非常小的逐点特征,而另一些过滤器则发挥更大的边缘检测器的作用。
4.3 单样本学习一旦我们优化了孪生网络以完成验证任务,就可以在一次学习中展示我们所学功能的区分潜力。假设给定一个测试图像 X,我们希望将其分类为C类之一。我们还得到了其他一些图像{xc} C c = 1,这是代表这些C类中每个类别的列向量的集合。现在,我们可以使用 x, xc作为输入查询网络,范围为C=1 ....... c2 然后预测与最大相似度相对应的类别。
为了凭经验估计一次性学习成绩,Lake开发了20种字母内部分类任务,其中首先从为评估集保留的字母中选择一个字母,然后随机抽取20个字符。还从评估抽屉池中选择了二十个抽屉中的两个。然后,这两个抽屉将产生二十个字符的样本。第一个抽屉产生的每个字符都表示为测试图像,并分别与第二个抽屉中的所有二十个字符进行比较,目的是从第二个抽屉的所有字符中预测与测试图像相对应的类别。图7显示了一次学习实验的一个单独示例。此过程对所有字母重复两次,因此,十个评估字母表中的每一个都有40个一次学习试验。这总共构成了400次单次学习试验,由此计算出分类准确性。
表2给出了一次性结果。我们借鉴(Lake等人,2013)的基线结果与我们的方法进行比较。我们还包括来自具有两个完全连接层的非卷积孪生网络的结果。