参考

  1. 损失函数loss大大总结
  2. Tensorflow 中的损失函数 —— loss 专题汇总
  3. 论文Focal Loss for Dense Object Detection
  4. 5分钟理解Focal Loss与GHM——解决样本不平衡利器
  5. 论文GHM:Gradient Harmonized Single-Stage Detector

损失函数

  • tf.nn.sigmoid_cross_entropy_with_logits(labels=None, logits=None, name=None)。二分类和多标签都是用此损失函数。多标签问题,可以同时有多个标签。
  • tf.nn.sparse_softmax_cross_entropy_with_logits(labels, logits, name=None)。
  • tf.nn.softmax_cross_entropy_with_logits(labels, logits, axis=-1, name=None)。与sparse_softmax_cross_entropy_with_logits的区别,由于softmax_cross_entropy_with_logits允许提供一个概率分布,因此在使用时有更大的自由度。举个例子,一种叫label_smoothing的技巧将正确数据的概率设为一个比1.0略小的值,将错误的该概率设置为一个比0.0略大的值,这样可以避免模型与数据过拟合,在某些时候可以提高训练效果。
  • 类别不平衡问题?用类别权重。
  • 难易样本不平衡问题?方法1,用Focal loss,易分样本权重小,难分样本权重大。方法2,使用GHM,按照梯度密度GD对易分样本和离群点同时降权。
    损失函数总结 - 图1
    损失函数总结 - 图2
    损失函数总结 - 图3
  • 离群点问题?使用GHM。有些难分样本损失函数梯度大、数量多,可能是样本标注结果本身有问题,属于离群点,不应该过多关注,对这些样本按照梯度密度降权。

疑问

  • tf.losses.log_loss的意义?
  • 多分类的损失函数?
  • 多标签的损失函数?
  • 有序多分类的损失函数?
  • pair wise损失函数?