首页 文章

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

提问于
浏览
1

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

为什么我们不能只将一个DNN应用于两个面,然后使用度量损失进行反向传播?他们是否意味着这一点,只是谈论重复网络以“更好”理解?

从论文引用:

我们还测试了一种端到端的度量学习方法,称为Siamese网络[8]:一旦学会了,人脸识别网络(没有顶层)被复制两次(每个输入图像一个)并且这些特征用于直接预测两个输入图像是否属于同一个人 . 这通过以下方式实现:a)获取特征之间的绝对差异,然后b)顶部完全连接的层,其映射到单个逻辑单元(相同/不相同) . 网络具有与原始网络大致相同数量的参数,因为大部分参数在两个副本之间共享,但需要两倍的计算 . 请注意,为了防止面部验证任务过度拟合,我们仅对两个最顶层进行培训 .

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

1 回答

  • 1

    简而言之,是的,我认为查看网络架构将有助于您了解正在发生的事情 . 你有两个“在时尚界加入”的网络,即共享权重 . 这就是它成为“暹罗网络”的原因 . 诀窍在于,您希望输入网络的两个图像通过相同的嵌入功能 . 因此,为了确保发生这种情况,网络的两个分支都需要共享权重 .

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

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

    A Siamese Network Architecture

相关问题