【问题标题】:Facenet online triplet generationFacenet 在线三胞胎生成
【发布时间】:2018-01-13 12:20:54
【问题描述】:

文章here 提到了一种为卷积神经网络生成三元组的智能方法(以生成人脸嵌入)。

对于具有 n 个图像的 mini-batch,只有 semi-hard triplets 用于学习(包含 semi-hardnegatives 的三元组,它们是足够接近锚图像)。

  1. 如何创建训练集?批次包含什么?

在我们的实验中,我们对训练数据进行采样,使得大约 40 每个小批量的每个身份都选择人脸。此外, 将随机采样的负人脸添加到每个 mini-batch。

我做了什么

我在 Wild 数据集中使用 Labeled Faces 进行训练(13233 张图片,5749 人,1680 人有两张或更多张图片,并且对于每批我选择了一个锚点,一些正例(意味着我只能使用 1680 批次,因为我需要不止一张 ONE 人的图像)和底片 - 随机选择的其他人的图像。

我的训练集有问题。小批量是否应该包含 更多 个锚点?

我们没有选择最难的正面,我们使用所有锚定正面 在小批量中配对,同时仍然选择硬底片

  1. 在线三胞胎生成?它是如何完成的? (欢迎提供技术细节)

在线生成三胞胎。这可以通过选择硬 小批量中的正/负样本。

要选择半硬底片,我需要计算三元组的嵌入。所以我需要通过三元组神经网络,并比较嵌入。然后,我需要 only 使用硬三元组计算损失函数。这就是我认为我必须做的。

我使用了三个卷积神经网络共享参数(四个卷积层,最大池化和一个全连接层)。 我还没有使用在线三胞胎生成,因为我不明白它是如何完成的。它导致不超过70%的准确度。

【问题讨论】:

    标签: machine-learning neural-network conv-neural-network


    【解决方案1】:

    这个三元组网络不是最先进的方法,但绝对是该领域最好的里程碑之一。它不是那么直观,但我们开始吧:

    的意思是正确的:在训练期间,在您定义的每个“时期”之后,您使用您的嵌入模型来计算您的图库和查询的嵌入。然后,您想要创建那些“半硬”三元组。因此,假设您有 person1,它是锚点,您尝试匹配其他所有人(person2、3 等)。然后,你想拿离他最近的一个,也许用一个阈值来定义它足够接近,这样你就可以称之为困难。那是负面的。正面的话,你也可以试着拿离他最远的一个,但不一定好。小心不良数据。你至少需要有一个积极的一面。

    所以现在每个人都有一个三元组:1 个锚点、1 个负例(最接近)和 1 个正例。您可以在整个数据集或随机选择的足够大的列表中预先计算此值,因此您将有足够的空间来填充一个纪元。一旦这样做,您就可以获取这些三元组并填充一个批次。

    您在每个 epoch 重复该计算以生成一组新的三元组以用于下一个。你做的越多,你得到的“在线”就越多。 您必须重复它的原因是嵌入模型发生了变化。所以你可能已经改进了以前的“困难”,但现在模型处理得更好,其他情况也因此变得“困难”。所以它必须是一个迭代的过程。您可以将其视为某种期望最大化,其中期望是您计算数据距离的地方,而最大化是最小化嵌入模型的损失(最大化可能性/准确性)。然后重复。

    作者在论文中提到的另一件事是,批处理的一部分是通过这种方式完成的(负挖掘),而其他部分只是通过随机选择的负样本(来自负池)来完成,以保持嵌入空间的完整性。一旦你的模型经过足够的训练,这实际上是一种浪费,因为如果负样本距离很远,由于边际损失,损失可能为 0,对网络没有任何梯度。这就是您无法获得良好准确度的部分原因 - 模型看到了他正确处理的事情。仅通过随机选择遇到“硬”三元组的概率相对较低(考虑三元组空间的复杂性)。

    因此,基本上我们的想法是让批次中包含导致损失的三元组,因此您将最小化一些可以改进模型的东西,而不是每隔很长一段时间就遇到一个硬三元组。这对于将此类模型改进到实际上值得信赖的准确度(FRR@FAR-wise)非常重要。

    最后,关于使用批次中的所有正片 - 您也可以使用所有负片。因此,您可能在一批中有同一个人的两个主播,或者甚至一个主播对另一个主播不利。您可以批量计算所有成对距离,然后将它们用作样本。不过还是需要平衡的。编码也更加复杂,因为您需要小心,考虑哪个嵌入属于谁,相应地称其为正或负。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 2022-11-13
      相关资源
      最近更新 更多