1简介
原则上,损失函数可以是将预测和标签映射到任何(可微)函数。但是,由于损失函数具有庞大的设计空间,导致设计一个良好的损失函数通常是具有挑战性的,而在不同的工作任务和数据集上设计一个通用的损失函数更是具挑战性。
例如,L1/L2 Loss
通常用于回归的任务,但很少用于分类任务;对于不平衡的目标检测数据集,Focal loss
通常用于缓解Cross-entropy loss
的过拟合问题,但它并不能始终应用到其他任务。近年来,许多研究也通过元学习、集成或合成不同的损失来探索新的损失函数。
在本文中,作者提出了PolyLoss
:一个新的框架来理解和设计损失函数。
作者认为可以将常用的分类损失函数,如Cross-entropy loss
和Focal loss
,分解为一系列加权多项式基
。
它们可以被分解为的形式,其中为多项式系数,为目标类标签的预测概率。每个多项式基由相应的多项式系数进行加权,这使PolyLoss
能够很容易地调整不同的多项式基。
- 当时,
PolyLoss
等价于常用的Cross-entropy loss
,但这个系数分配可能不是最优的。
研究表明,为了获得更好的结果,在不同的任务和数据集需要调整多项式系数。由于不可能调整无穷多个的,于是作者便探索具有小自由度的各种策略。作者实验观察到,只需调整单多项式系数,这里表为示,足以实现比Cross-entropy loss
和Focal loss
的更好的性能。
2主要贡献
图1
Insights on common losses
:提出了一个统一的损失函数框架,名为PolyLoss
,以重新思考和重新设计损失函数。这个框架有助于将Cross-entropy loss
和Focal loss
解释为多损失族的2种特殊情况(通过水平移动多项式系数),这是以前没有被认识到的。这方面的发现促使研究垂直调整多项式系数的新损失函数,如图1所示。New loss formulation
:评估了垂直移动多项式的不同方法,以简化超参数搜索空间。提出了一个简单而有效的Poly-1
损失,它只引入了一个超参数和一行代码。New findings
:作者发现Focal loss
虽然对许多检测任务有效,但对于不平衡的ImageNet-21K并不是很优秀。作者还发现多项式在训练过程中对梯度有很大的贡献,其系数与预测置信度相关。Extensive experiments
:在不同的任务、模型和数据集上评估了PolyLoss
。结果显示PolyLoss
持续提高了所有方面的性能。
3PolyLoss
PolyLoss
为理解和改进常用的Cross-entropy loss
、Focal loss
提供了一个框架,如图1所示。它的灵感来自于Cross-entropy loss
和Focal loss
的基于泰勒展开式:
式中为模型对目标类的预测概率。
3.1 Cross-entropy loss as PolyLoss
使用梯度下降法来优化交叉熵损失需要对Pt进行梯度。在PolyLoss框架中,一个有趣的观察是系数正好抵消多项式基的第次幂。因此,Cross-entropy loss
的梯度就是多项式的和:
梯度展开中的多项式项捕获了对的不同灵敏度。第一个梯度项是1,它提供了一个恒定的梯度,而与的值无关。相反,当时,接近1时,第项被强烈抑制。
3.2 Focal loss as PolyLoss
在PolyLoss
框架中,Focal loss
通过调制因子γ简单地将移动。这相当于水平移动所有的多项式系数的γ。为了从梯度的角度理解Focal loss
,取关于的Focal loss
梯度:
对于正的γ,Focal loss
的梯度降低了Cross-entropy loss
中恒定的梯度项1。正如前段所讨论的,这个恒定梯度项导致模型强调多数类,因为它的梯度只是每个类的示例总数。
通过将所有多项式项的幂移动γ,第1项就变成,被γ抑制,以避免过拟合到(即接近1)多数类。
3.3 与回归和一般形式的联系
在PolyLoss
框架中表示损失函数提供了与回归的直观联系。对于分类任务,是GT标签的有效概率,多项式基可以表示为;
因此,Cross-entropy loss
和Focal loss
都可以解释为预测到标签的距离的j次幂的加权集合。
因此,交叉熵损失和焦点损失都可以解释为预测和标记到第j次幂之间的距离的加权集合。
然而,在这些损失中有一个基本的问题:回归项前的系数是最优的吗?
一般来说,PolyLoss
是[0,1]上的单调递减函数,可以表示为,并提供了一个灵活的框架来调整每个系数。PolyLoss
可以推广到非整数j,但为简单起见,本文只关注整数幂()。