关于对比损失(contrasive loss)的理解(相似度越大越相似的情况):

    def contro_loss(self):
        '''
        总结下来对比损失的特点:首先看标签,然后标签为1是正对,负对部分损失为0,最小化总损失就是最小化类内损失(within_loss)部分,
        让s逼近margin的过程,是个增大的过程;标签为0是负对,正对部分损失为0,最小化总损失就是最小化between_loss,而且此时between_loss就是s,
        所以这个过程也是最小化s的过程,也就使不相似的对更不相似了
        '''
        s = self.similarity
        one = tf.constant(1.0)
        margin = 1.0
        y_true = tf.to_float(self.y_true)

        # 类内损失:
        max_part = tf.square(tf.maximum(margin-s,0)) # margin是一个正对该有的相似度临界值
        within_loss = tf.multiply(y_true,max_part) #如果相似度s未达到临界值margin,则最小化这个类内损失使s逼近这个margin,增大s

        # 类间损失:
        between_loss = tf.multiply(one-y_true,s) #如果是负对,between_loss就等于s,这时候within_loss=0,最小化损失就是降低相似度s使之更不相似
        
        # 总体损失(要最小化):
        loss = 0.5*tf.reduce_mean(within_loss+between_loss)
        return loss

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值