PolyLoss | 统一CE Loss与Focal Loss,PolyLoss用1行代码+1个超参完成超车!!!
1简介Cross-entropy loss和Focal loss是在训练深度神经网络进行分类问题时最常见的选择。然而,一般来说,一个好的损失函数可以采取更灵活的形式,并且应该为不同的任务和数据集量身定制。
通过泰勒展开来逼近函数,作者提出了一个简单的框架,称为PolyLoss,将损失函数看作和设计为多项式函数的线性组合。PolyLoss可以让Polynomial bases(多项式基)的重要性很容易地根据目标任务和数据集进行调整,同时也可以将上述Cross-entropy loss和Focal loss作为PolyLoss的特殊情况。
大量的实验结果表明,在PolyLoss内的最优选择确实依赖于任务和数据集。只需引入一个额外的超参数和添加一行代码,PolyLoss在二维图像分类、实例分割、目标检测和三维目标检测任务上都明显优于Cross-entropy loss和Focal loss。
原则上,损失函数可以是将预测和标签映射到任何(可微)函数。但是,由于损失函数具有庞大的设计空间,导致设计一个良好的损失函数通常是具有挑战性的,而在不同的工作任务和数据集上设计一个通用的损失函数更是具挑战性。
例如,L1/L2 Loss通常用于回归的任务,但很少用于分类任务;对于不平衡的目标检测数据集,Focal loss通常用于缓解Cross-entropy loss的过拟合问题,但它并不能始终应用到其他任务。近年来,许多研究也通过元学习、集成或合成不同的损失来探索新的损失函数。
在本文中,作者提出了PolyLoss:一个新的框架来理解和设计损失函数。
作者认为可以将常用的分类损失函数,如Cross-entropy loss和Focal loss,分解为一系列加权多项式基。
它们可以被分解为
研究表明,为了获得更好的结果,在不同的任务和数据集需要调整多项式系数
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持续提高了所有方面的性能。
3PolyLossPolyLoss为理解和改进常用的Cross-entropy loss、Focal loss提供了一个框架,如图1所示。它的灵感来自于Cross-entropy loss和Focal loss的基于
式中
使用梯度下降法来优化交叉熵损失需要对Pt进行梯度。在PolyLoss框架中,一个有趣的观察是系数
梯度展开中的多项式项捕获了对
在PolyLoss框架中,Focal loss通过调制因子γ简单地将
对于正的γ,Focal loss的梯度降低了Cross-entropy loss中恒定的梯度项1。正如前段所讨论的,这个恒定梯度项导致模型强调多数类,因为它的梯度只是每个类的示例总数。
通过将所有多项式项的幂移动γ,第1项就变成
在PolyLoss框架中表示损失函数提供了与回归的直观联系。对于分类任务,
因此,Cross-entropy loss和Focal loss都可以解释为预测到标签的距离的j次幂的加权集合。
因此,交叉熵损失和焦点损失都可以解释为预测和标记到第j次幂之间的距离的加权集合。
然而,在这些损失中有一个基本的问题:回归项前的系数是最优的吗?
一般来说,PolyLoss是[0,1]上的单调递减函数,可以表示为
在前面的谈论中建立了PolyLoss框架,并展示了Cross-entropy loss和Focal loss简单地对应于不同的多项式系数,其中Focal loss就可以表达为水平移动了多项式系数的Cross-entropy loss。
这里要深入研究了垂直调整多项式系数对于训练可能的影响。具体来说,作者探索了3种分配多项式系数的不同策略:
去掉高阶项调整多个靠前多项式系数调整第1个多项式系数作者发现,调整第1个多项式系数(Poly-1)便可以最大的增益,而且仅仅需要很小的代码更改和超参数调整。
4.1已有研究表明,降低高阶多项式和调整前置多项式可以提高模型的鲁棒性和性能。作者采用相同的损失公式
如图2a所示,需要求和超过600个多项式项才能匹配Cross-entropy loss的精度。值得注意的是,去除高阶多项式不能简单地解释为调整学习率。为了验证这一点,图2b比较了在不同的截止条件下不同学习率下的性能:无论从初始值0.1增加或减少学习率,准确率都会变差。
为了理解为什么高阶项很重要,作者对Cross-entropy loss中去除前N个多项式项后的结果进行了求和:
相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...