有哪些「魔改」loss函数,曾经拯救了你的深度学习模型?

如题,你读过 or 见过 or 用过哪些能拯救深度学习模型的 「魔改」loss函数 恳请各位邀请身边的同学同事回答呀,感谢
关注者
2,938
被浏览
410,983

17 个回答

人脸识别领域的一堆魔改softmax啊,Large Margin Softmax, NormFace(Cosine Softmax), SphereFace(Angular Softmax), AM Softmax, CosFace, ArcFace…

还有Center Loss这个regluarization term。

看到很多人提到了focal loss,但是我并不建议直接使用focal loss。

感觉会很不稳定,之前是在一个小的数据集上的baseline进行加了focal loss,发现有了3%的提升(当时只看到了bestmodel的iou),哟,感觉还不错。

这就给我后面埋了很多坑,因为当时是在同一个base上分别加augmentation ,加 hard minning,还有focal loss,然后发现当我把所有的trick加到以后,发现并没有提升。

我迁移到大数据以后,发现越训练越不对劲,训练的val score会波动很大(下图),甚至到了最后得时候就会出现train acc突然下降的问题。当时找到好几天,楞是没怀疑到focal loss。


反正就是最后找到了 是他的问题。。去掉他以后,就变得特别稳定。去掉他以后的的训练图。 下图




后来就开始找原因。。。

我还跟老师说了这个东西,把锅甩给focal loss,老师还怼我。说有木有把所有的参数都试一下,。。


后来跟同学讨论了一下,参数大小的问题可能没有那么重要,一般都是采用,0.25 2,也就是论文中提到的参数。

Focal loss在刚开始训练的时候 极度不稳定,并不建议直接使用focal loss ,最好是经过几个epoch以后在进行更改为focal loss。我感觉就是我那个就是因为这个原因,

当然还有一些case是不适合用focal loss的。



回答下正题,loss function还是很容易改的,有次我需要更改我的mini batch的loss 权重,就可以使用pytorch 的reduce功能,得到矩阵以后,直接加权。效果还不错。当然我这个和focal loss并不是一类问题。

感觉还是根据自己的需要去更改自己的loss才最好。。。

适合自己的是最好的。