首页 文章

FaceNet for dummies

提问于
浏览
3

FaceNet算法(在this文章中描述)使用卷积神经网络来表示128维欧几里德空间中的图像 .

在阅读文章时我不明白:

  • 损失函数如何影响卷积网络(在正常网络中,为了最小化权重稍微改变的损失 - 反向传播 - 那么,在这种情况下会发生什么?)

enter image description here

  • 如何选择三胞胎?

2.1 . 我怎么知道负面形象很难

2.2 . 为什么我使用损失函数来确定负像

2.3 . 我什么时候检查我的图像的硬度相对于锚点 - 我相信这是在我发送三元组进行网络处理之前,对吧 .

enter image description here

1 回答

  • 3

    以下是一些可能澄清您疑虑的答案:

    • 即使在这里调整权重以使损失最小化,它只是损失项有点复杂 . 损失有两部分(在等式中分开), first part 是一个人的图像与同一个人的不同图像相比较 . second part 是与不同人物的图像相比的人的图像 . 我们希望 first part 损失小于 second part 损失,损失方程本质上捕获了这一点 . 所以在这里你基本上想要调整权重,使 same person error 更小, different person error 更多 .

    • 损失术语涉及三个图像:有问题的图像(锚): x_a ,其正对: x_p 及其负对: x_n . x_ax_a 是正图像,与其他正像相比,误差最大 . hardest negativex_a 是不同人物中最近的图像 . 因此,您希望使最远的正面相互靠近,并将最近的负数推得更远 . 这是在损失方程中捕获的 .

    • Facenet 在训练期间(在线)计算其锚点 . 在每个 minibatch (这是一组40个图像)中,他们选择 hardest negative 到锚点,而不是选择 hardest positive 图像,他们选择批次中的所有锚点正对 .

    如果你想要实现 face recognition ,你应该更好地考虑这个实现 centre losspaper,它更容易训练并且表现更好 .

相关问题