torch.nn.MarginRankingLoss文本排序

创建一个标准,用于测量给定输入 x1、x2、两个 1D 小批量或 0D 张量以及标签 1D 小批量或 0D 张量 y(包含 1 或 -1)的损失。

如果 y = 1,那么它假定第一个输入的排名应该比第二个输入更高(具有更大的值),反之 y = -1=。

小批量中每对样本的损失函数为:

对于包含N NN个样本的batch数据 D ( x 1 , x 2 , y ) D(x1,x2,y)D(x1,x2,y), x 1 x1x1, x 2 x2x2是给定的待排序的两个输入,y yy代表真实的标签,属于{ 1 , − 1 } \{1,-1\}{1,−1}。当y = 1 y=1y=1是,x 1 x1x1应该排在x 2 x2x2之前,y = − 1 y=-1y=−1是,x 1 x1x1应该排在x 2 x2x2之后。第n nn个样本对应的l o s s lossloss计算如下:

损失函数的目的是通过训练,最小化损失函数,最终使得一个向量中的所有值与另一个向量的所有值对应相减,后经过mean或sum或none,输出一个值,最终使其为0,也就是此时损失函数为0,不再起作用; 

torch.nn.MarginRankingLoss文本排序_第1张图片

若x1排在x2的前面,损失为零;

若x1排在x2的后面,则Loss = max(0,-(-1)(x1-x2)+margin)

                                  

你可能感兴趣的:(NLP自然语言处理,pytorch,深度学习,人工智能)