Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook 暹罗网络:为什么网络需要复制?_Facebook_Neural Network_Conv Neural Network_Metrics_Face Recognition - Fatal编程技术网

Facebook 暹罗网络:为什么网络需要复制?

Facebook 暹罗网络:为什么网络需要复制?,facebook,neural-network,conv-neural-network,metrics,face-recognition,Facebook,Neural Network,Conv Neural Network,Metrics,Face Recognition,Facebook的DeepFace报纸利用暹罗网络学习一个指标。他们说,提取4096维人脸嵌入的DNN必须在暹罗网络中复制,但两个复制品共享权重。但如果它们共享权重,对其中一个的每次更新都会改变另一个。那么为什么我们需要复制它们呢 为什么我们不能将一个DNN应用于两个面,然后使用度量损失进行反向传播?他们可能是这个意思,只是为了“更好地”理解而谈论复制网络吗 引自该报: 我们还测试了端到端度量学习ap- 方法,被称为暹罗网络[8]:一旦学会 人脸识别网络(无顶层)为repli- 设置两次(每个输

Facebook的DeepFace报纸利用暹罗网络学习一个指标。他们说,提取4096维人脸嵌入的DNN必须在暹罗网络中复制,但两个复制品共享权重。但如果它们共享权重,对其中一个的每次更新都会改变另一个。那么为什么我们需要复制它们呢

为什么我们不能将一个DNN应用于两个面,然后使用度量损失进行反向传播?他们可能是这个意思,只是为了“更好地”理解而谈论复制网络吗

引自该报:

我们还测试了端到端度量学习ap- 方法,被称为暹罗网络[8]:一旦学会 人脸识别网络(无顶层)为repli- 设置两次(每个输入图像一个),功能如下: 用于直接预测两个输入图像是否- 对同一个人说。这是通过以下方式实现的:a)采取 特征之间的绝对差异,后跟b) 顶部完全连接的层,映射到单个逻辑层 单位(相同/不相同)。该网络的功能大致相同 参数数量与原始参数相同,因为 在两个副本之间共享,但需要两倍的 计算。请注意,为了防止安装过度 在人脸验证任务中,我们只为 最上面的两层


论文:

简而言之,答案是肯定的,我认为查看网络的体系结构将有助于您了解正在发生的事情。您有两个“臀部连接”的网络,即共享权重。这就是它成为“暹罗网络”的原因。诀窍在于,您希望输入网络的两个图像通过相同的嵌入函数。因此,为了确保这种情况发生,网络的两个分支需要共享权重

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

我认为一幅画抵得上千言万语。所以,看看下面的暹罗网络是如何构建的(至少在概念上)


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

我实际上想问“为什么命名暹罗神经网络?”但这个问题已经回答了(暹罗来自“暹罗双胞胎”即连体双胞胎共享公共部分,在暹罗网络的情况下,它共享公共权重)。感谢您的清晰解释。将输入_1和输入_2馈送到同一嵌入中有什么不同?我不明白为什么有两个复制的网络,如果它们是相同的,一个还不够吗?没有任何区别。这里的诀窍是,通过拥有两个分支,我可以同时向网络提供两个图像。我希望能够做到这一点。