• triplet loss 在深度学习中主要应用在什么地方?有什么明显的优势?


    作者:罗浩.ZJU
    链接:https://www.zhihu.com/question/62486208/answer/199117070
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    反对工业界softmax解决一切的说法

    Triplet loss通常是在个体级别的细粒度识别上使用,传统的分类是花鸟狗的大类别的识别,但是有些需求是要精确到个体级别,比如精确到哪个人的人脸识别,所以triplet loss的最主要应用也就是face identification,person re-identification,vehicle re-identification的各种identification识别问题上

    • 当然你可以把每个人当做一个类别来进行分类训练,但是往往最后会造成softmax的维数远大于feature的维数,想想resnet50 global ap出来一个2048的feature对应到一个几万,几十万的分类softmax就可怕。
    • 另外一个结论就是triplet loss通常能比classification得到更好的feature,我个人测试triplet loss至少比classification高10个点。
    • 还有一个优点就是triplet loss 可以卡阈值,triplet loss训练的时候要设置一个margin,这个margin可以控制正负样本的距离,当feature 进行normalization之后,可以更加方便的卡个阈值来判断是不是同一个ID

    当然triplet loss也有缺点,就是收敛慢,而且比classification更容易overfitting(此条待考究,并且即使过拟合了也比classification性能要好),此外需要对输入的数据按照label进行特别的排列,非常重要的一点是没有triplet loss的API,新手小白可能连十行代码都不到的triplet loss都写不出来,所以deep learning不只是调库调参而已

    现在triplet loss已经有很多改进版本了,可以搜索improved triplet loss, in defense of triplet loss,beyond triplet loss等论文

  • 相关阅读:
    Interesting Finds: 2009 01.15 ~ 01.17
    Interesting Finds: 2008.12.07
    Interesting Finds: 2008.12.31
    10月16号
    10月14号
    10月15号
    10月13号
    10月20号
    10月19号
    10月12号
  • 原文地址:https://www.cnblogs.com/Alex0111/p/8492471.html
Copyright © 2020-2023  润新知