zoukankan      html  css  js  c++  java
  • 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等论文

  • 相关阅读:
    问题——虚拟机连接,查本地DNS,查软件位置,payload生成,检测注册表变化
    nmap命令解释
    SMB扫描,SMTP扫描
    操作系统识别,SNMP扫描
    服务扫描——查询banner信息,服务识别
    nmap之扫描端口(附加hping3隐藏扫描)
    scapy简单用法——四层发现
    转载 界面组装器模式
    设计模式=外观模式
    如何进行自动化测试和手工测试
  • 原文地址:https://www.cnblogs.com/Alex0111/p/8492471.html
Copyright © 2011-2022 走看看