Sim*_*n H 3 metrics facebook face-recognition neural-network conv-neural-network
Facebook 的 DeepFace 论文使用 Siamese 网络来学习度量。他们说提取 4096 维人脸嵌入的 DNN 必须在 Siamese 网络中复制,但两个副本共享权重。但是如果它们共享权重,那么其中一个的每次更新也会改变另一个。那么为什么我们需要复制它们呢?
为什么我们不能只将一个 DNN 应用于两个人脸,然后使用度量损失进行反向传播?他们可能是这个意思,只是为了“更好”理解而谈论重复的网络吗?
引自论文:
我们还测试了一种端到端的度量学习方法,称为 Siamese 网络 [8]:一旦学习,人脸识别网络(没有顶层)被复制两次(每个输入图像一个)和这些特征用于直接预测两个输入图像是否属于同一个人。这是通过以下方式实现的:a)取特征之间的绝对差异,然后是 b)映射到单个逻辑单元(相同/不相同)的顶部完全连接层。该网络的参数数量与原始网络大致相同,因为其中大部分在两个副本之间共享,但需要两倍的计算量。请注意,为了防止在人脸验证任务上过度拟合,我们仅对最顶层的两个层进行了训练。
论文:https : //research.fb.com/wp-content/uploads/2016/11/deepface-closure-the-gap-to-human-level-performance-in-face-verification.pdf
简短的回答是,是的,我认为查看网络架构将帮助您了解正在发生的事情。您有两个“连接在臀部”的网络,即共享权重。这就是使它成为“暹罗网络”的原因。诀窍是您希望输入网络的两个图像通过相同的嵌入函数。因此,为了确保这种情况发生,网络的两个分支都需要共享权重。
然后我们将两个嵌入组合成一个度量损失(在下图中称为“对比损失”)。我们可以像往常一样反向传播,我们只有两个可用的输入分支,这样我们就可以一次输入两个图像。
我认为一张图片值一千字。因此,请查看下面的 Siamese 网络是如何构建的(至少在概念上)。
归档时间: |
|
查看次数: |
1281 次 |
最近记录: |