火炬中的成对相似性标准

Pairwise similarity criterion in torch

我想在 torch7 中实施新标准。

基本上,我有一对样本,它们具有归一化的相似性实数值(我们将其表示为 'd')。

在现有的标准中,我能拥有的最接近的是 CosineEmbeddingCriterion,它提供了以下损失:

             ⎧ 1 - cos(x1, x2),              if y ==  1
loss(x, y) = ⎨
             ⎩ max(0, cos(x1, x2) - margin), if y == -1

显然这是为对设计的,但这是为分类问题设计的。

在我的问题中,我想实现一个提供以下损失函数的标准: loss(x1, y2, d) = | d - cos(x1,x2) |

不幸的是,与 不同,在我看来我不能简单地结合现有标准来做到这一点。

所以我打算继续痛苦地从torch7 source file.

创建一个新模块

我的问题如下:

(在我看来很容易写出对我来说似乎正确的标准——但在实践中并非如此)

提前感谢您提供任何线索!!

您只需为您的条件编写 updateOutputupdateGradInput 函数。然后,您可以像使用任何其他标准一样使用它。这是骨架。

https://github.com/torch/nn/blob/master/BCECriterion.lua