连体网络的 One-Shot 学习 [用于面部识别]

已发表: 2021-02-08

以下文章讨论了使用 One-shot 学习的必要性及其变化和缺点。

首先,为了训练任何深度学习模型,我们需要大量数据,以便我们的模型有效地执行所需的预测或分类任务。 例如,从图像中检测狗需要您在成百上千张狗和非狗图像上训练神经网络模型,以便准确地区分其中一个。 但是,如果在一个或很少的训练数据上进行训练,这个神经网络模型将无法工作。

由于缺乏数据,在不同层提取相关特征变得困难。 该模型将无法在不同类别之间很好地概括,从而影响其整体性能。

举个例子,以机场的面部识别为例。 在这种情况下,我们无权训练我们的模型,该模型包含每个人的成百上千张包含不同表情、背景照明等的图像。 每天有成千上万的乘客到达,这是一项不可能完成的任务! 此外,存储如此大量的数据会增加成本。

为了解决上述问题,我们使用一种技术,可以通过一个或几个示例来完成分类或分类任务,从而对许多新示例进行分类。 这种技术称为一次性学习。

近年来,One-shot 学习技术被广泛用于面部识别和护照检查。 使用的概念是-模型输入 2 张图像; 一个是护照上的图像,另一个是看相机的人的图像。 然后模型输出一个值,该值是 2 个图像之间的相似度。 如果输出的值很低,那么这两个图像是相似的,否则它们是不同的。

目录

连体网络

用于 One-shot 学习的架构称为连体网络。 该架构包括两个并行的神经网络,每个神经网络采用不同的输入。 模型的输出是一个值或相似性指数,它指示两个输入图像是否相似。 低于预定义阈值的值对应于两个图像之间的高相似性,反之亦然。

当图像通过一系列卷积层、最大池化层和全连接层时,我们实现的是一个对图像特征进行编码的向量。 这里因为我们输入了两个图像,所以将生成包含输入图像特征的两个向量。 我们所说的值是两个特征向量之间的距离,可以通过找到两个向量之间差异的范数来计算。

三元组损失函数

顾名思义,为了训练模型,我们需要三张图像——一张锚 (A) 图像、一张正 (P) 图像和一张负 (N) 图像。 由于可以向模型提供两个输入,因此给出了具有正图像或负图像的锚图像。 该模型以锚图像和正图像之间的距离小而锚图像和负图像之间的距离大的方式学习参数。

如果 A 和 N 之间的距离较小或 A 和 P 之间的距离较大,则建设性损失函数会惩罚模型,而当 A 和 N 之间的距离较大且 A 和 P 之间的距离较小时,它会鼓励模型或学习特征。

为了更多地了解锚点、正面和负面图像,让我们考虑前面在机场的例子。 在这种情况下,锚点图像将是您看着相机时的图像,正图像将是您护照照片上的图像,而负图像将是机场乘客的随机图像。

每当我们训练一个 Siaseme 网络时,我们都会为其提供 APN trios(锚点、正面和负面)图像。 创建这个数据集要容易得多,并且需要更少的图像来训练。

One-shot 学习的局限性

one-shot learning 仍然是一种成熟的机器学习算法,并且确实存在一些局限性。 例如,如果输入图像有一些修改(戴帽子的人、太阳镜等),该模型将无法正常工作。 此外,为一个应用程序训练的模型不能推广到另一个应用程序。

继续让我们看看 One-shot 学习的一些变体,其中包括 Zero-shot 学习和 Few-shot 学习。

零样本学习

零样本学习是模型识别新的或未见过的标记数据的能力,同时接受已见数据的训练并了解新数据或未见数据的语义特征。 例如,一个看过猫的孩子可以通过其独特的特征来识别它。 而且,如果孩子知道狗的叫声,并且比猫具有更坚实的特征,那么孩子在识别狗方面也没有问题。

总而言之,我们可以说 ZSL 识别功能的方式考虑了已见类的标记训练集以及关于每个未见类如何在语义上与已见类相关的知识。

N-shot 学习

顾名思义,在 N 个镜头学习中,我们将有每个类别的 n 个标记数据可用于训练。 该模型在 K 个类别上进行训练,每个类别包含 n 个标记数据。 在提取相关特征和模式后,模型必须将新的未标记图像分类到 K 类之一。 他们使用匹配网络,该网络在基于最近邻的方法上工作,完全端到端训练。

结论

总之,One-shot 学习领域及其对应领域在解决一些具有挑战性的问题方面具有巨大的潜力。 虽然,作为一个相对较新的研究领域,它正在快速发展,研究人员正在努力弥合机器和人类之间的差距。

至此,本文到此结束,希望您喜欢阅读。

如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT- B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。

从世界顶级大学学习ML 课程获得硕士、Executive PGP 或高级证书课程以加快您的职业生涯。

引领人工智能驱动的技术革命

申请机器学习和自然语言处理高级证书课程