我们对每个网络进行了最多200个epochs的训练。但是监视了从验证集中的字母和抽屉随机生成的320个 oneshot 学习任务集中的一次验证错误。当验证错误在20个epochs内未减少时,我们根据一次验证错误停止并在最佳时期使用模型的参数。如果在整个学习计划中验证错误继续减少,我们将保存此过程生成的模型的最终状态。
超参数优化。我们仨还有贝叶斯优化框架Whetlab的Beta版来执行超参数选择。对于学习计划和正则化超参数,我们设置分层学习率ηj∈[10-4,10-1],分层动量µj∈[0,1]和分层L2正则化惩罚λj∈[0,0.1]。对于网络超参数,我们让卷积滤波器的大小在3x3到20x20之间变化,而每层中的卷积滤波器的数量在16到256之间(使用16的倍数)变化。全连接层的范围从128打破4096单位不等,也是16的倍数。我们将优化器设置为最大化一次验证设置的准确性。分配给单个Whetlab迭代的分数是在任何时期发现的该指标的最高值。
仿射失真。此外,我们在训练集上增加一些仿射失真(图五)。对于每个图像对x1,x2,我们生成了一对仿射变换T1,T2,以产生x1 = T1(x1),x2 = T2(x2),其中T1,T2由多维均匀分布随机确定。 因此,对于任意变换T,我们有T =(θ,ρx,ρy,sx,sy,tx,tx),其中θ∈[−10.0,10.0],ρx,ρy∈[−0.3,0.3],sx, sy∈[0.8,1.2]和tx,ty∈[−2,2]。 转换的每个这些分量都以0.5的概率包括在内。
图5,Omniglot数据集中为单个字符串生成的随机放射失真的样子
4,实验我们在首先描述的Omniglot数据集的子集上训练了模型。然后我们提供有关验证和单发性能的详细信息。
4.1 Omniglot 数据集Omniglot数据集是由Brenden Lake及其同事在麻省理工学院通过亚马逊的Mechanical Turk收集的,以产生一个标准的基准,可以从手写字符识别领域的一些示例中学习(Lake等,2011)。1Omniglot包含了来自50个字母的示例从诸如拉丁语和韩语等公认的国际语言到鲜为人知的当地方言。它还包括一些虚构的字符集,例如Aurek-Besh和Klingon(图6)。
每个字母中的字母数量从大约15个字符到最多40个字符不等。这些字母中的所有字符都是由20个抽屉中的每个抽屉一次生成的,Lake将数据分为40个字母背景集和10个字母评估集。我们保留这两个术语是为了与可以从背景集生成的正常训练,验证和测试集区分开,以调整模型以进行验证。背景集用于通过学习超参数和特征映射来开发模型。相反,评估集仅用于测量单次分类性能。
图6. Omniglot数据集包含来自世界各地字母的各种不同图像。
4.2 验证