连体网络:为什么网络要重复?

时间:2018-02-08 19:21:11

标签: facebook neural-network conv-neural-network metrics face-recognition

来自Facebook的DeepFace论文使用Siamese网络来学习指标。他们说,提取4096维面部嵌入的DNN必须在Siamese网络中重复,但两个重复共享权重。但是如果它们共享权重,那么对其中一个的每次更新也会改变另一个。那么为什么我们需要复制它们呢?

为什么我们不能将一个DNN应用于两个面,然后使用指标丢失进行反向传播?他们是否意味着这个,只是谈论重复的网络,以及更好的"理解?

文章引用:

  

我们还测试了端到端度量学习ap-   proach,被称为Siamese网络[8]:曾经学过,   人脸识别网络(没有顶层)是repli-   两次输入(每个输入图像一个),功能是   用于直接预测两个输入图像是否 -   对同一个人来说很长这是通过以下方式实现的:a)服用   功能之间的绝对差异,其次是b)   顶部完全连接的图层,映射到单个逻辑   单位(相同/不相同)。网络大致相同   作为原始参数的参数数量,因为它的大部分   在两个副本之间共享,但需要两倍   计算。请注意,为了防止过度拟合   面部验证任务,我们只启动培训   两个最顶层。

论文:https://research.fb.com/wp-content/uploads/2016/11/deepface-closing-the-gap-to-human-level-performance-in-face-verification.pdf

2 个答案:

答案 0 :(得分:1)

简短的回答是,我认为查看网络架构将有助于您了解正在发生的事情。你有两个网络,它们是在时尚界加入的。即共享权重。这是什么使它成为一个" Siamese网络"。诀窍在于,您希望输入网络的两个图像通过相同的嵌入功能。因此,为了确保发生这种情况,网络的两个分支都需要共享权重。

然后我们将两个嵌入组合成一个度量损失(称为"对比度损失"在下图中)。我们可以正常反向传播,我们只有两个输入分支可用,这样我们就可以一次输入两个图像。

我认为一张图片胜过千言万语。因此,请查看下面是如何构建一个Siamese网络(至少在概念上)。

A Siamese Network Architecture

答案 1 :(得分:0)

梯度取决于激活值。所以每个分支的梯度都会不同,最终的更新可以基于一些平均来共享权重