来自Facebook的DeepFace论文使用Siamese网络来学习指标。他们说,提取4096维面部嵌入的DNN必须在Siamese网络中重复,但两个重复共享权重。但是如果它们共享权重,那么对其中一个的每次更新也会改变另一个。那么为什么我们需要复制它们呢?
为什么我们不能将一个DNN应用于两个面,然后使用指标丢失进行反向传播?他们是否意味着这个,只是谈论重复的网络,以及更好的"理解?
文章引用:
我们还测试了端到端度量学习ap- proach,被称为Siamese网络[8]:曾经学过, 人脸识别网络(没有顶层)是repli- 两次输入(每个输入图像一个),功能是 用于直接预测两个输入图像是否 - 对同一个人来说很长这是通过以下方式实现的:a)服用 功能之间的绝对差异,其次是b) 顶部完全连接的图层,映射到单个逻辑 单位(相同/不相同)。网络大致相同 作为原始参数的参数数量,因为它的大部分 在两个副本之间共享,但需要两倍 计算。请注意,为了防止过度拟合 面部验证任务,我们只启动培训 两个最顶层。
答案 0 :(得分:1)
简短的回答是,我认为查看网络架构将有助于您了解正在发生的事情。你有两个网络,它们是在时尚界加入的。即共享权重。这是什么使它成为一个" Siamese网络"。诀窍在于,您希望输入网络的两个图像通过相同的嵌入功能。因此,为了确保发生这种情况,网络的两个分支都需要共享权重。
然后我们将两个嵌入组合成一个度量损失(称为"对比度损失"在下图中)。我们可以正常反向传播,我们只有两个输入分支可用,这样我们就可以一次输入两个图像。
我认为一张图片胜过千言万语。因此,请查看下面是如何构建一个Siamese网络(至少在概念上)。
答案 1 :(得分:0)
梯度取决于激活值。所以每个分支的梯度都会不同,最终的更新可以基于一些平均来共享权重