超越Cross-Entropy Loss(交叉熵损失)的新损失函数——PolyLoss简介

标签:#损失函数##深度学习# 时间:2022/05/03 17:31:30 作者:小木

Google旗下自动驾驶公司Waymo的研究人员Mingxing Tan发现了一个可以替代Cross-Entropy Loss的新的损失函数:PolyLoss,这是发表在ICLR 22的一篇新论文。什么都不变的情况下,只需要将损失函数的代码替换成PolyLoss,那么模型在图像分类、图像检测等任务的性能就会有很好的提升!


如上图所示,ImageNet的分类、COCO的图像检测与划分以及Waymo开放3D数据集的3D检测等,使用PolyLoss之后的模型,其性能都有所提升。

那么这个神奇PolyLoss来自哪里呢?其实就是来自泰勒展开式(Taylor Expansion),如果你用泰勒展开式去展开交叉熵,你会发现其多项式系数是\frac{1}{j},但是这些系数对于所有的模型和任务来说都是固定的,但是是不是就是就是最优的呢?显然可能不是。


于是,他们提出,这个系数应该是针对不同模型和任务进行调优。根据他们的测试,前导项(the leading term)是最重要的,于是他们加入了一个可调整(tunable)项:\epsilon \cdot (1-P_t)。并将该损失函数称为PolyLoss。

PolyLoss是一个通用的框架,可以很容易转成 cross-entropy loss, focal loss, and other losses等。作者仅仅更改损失函数,并将\epsilon变成tunable,就可以提升很多模型效果:

EfficientNetV2:最优的\epsilon=2
Mask-RCNN:最优的\epsilon=-1
RSN 3D detection:最优的\epsilon=-0.4

对于如何寻找最优的\epsilon结果,作者给出了一个简单的方法,就是从-1到1之间去不同尝试,一般来说尝试4-5次即可。需要注意的是,\epsilon的值必须大于-1,以保证损失函数是单调的。

原文:https://arxiv.org/abs/2204.12511

欢迎大家关注DataLearner官方微信,接受最新的AI技术推送