Bendi新闻
>
NeurIPS 2023 & MICCAI 2023:可兼容软标签的语义分割损失函数

NeurIPS 2023 & MICCAI 2023:可兼容软标签的语义分割损失函数

5月前

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—>【图像分割】交流群

扫描下方二维码,加入CVer学术星球可以获得最新顶会/顶刊上的论文ideaCV从入门到精通资料,及最前沿应用!发论文搞科研,强烈推荐!

论文1:https://arxiv.org/pdf/2302.05666
论文2:https://arxiv.org/pdf/2303.16296
代码链接:
https://github.com/zifuwanggg/JDTLosses

内容简介  

Jaccard Index(又称交并比,IoU)和Dice Score常被用来评估语义分割模型的性能,与之对应的Soft Jaccard损失,Soft Dice损失和Soft Tversky则能直接优化这些评价指标。这些损失函数和像素级的损失函数(例如Cross Entropy损失,Focal损失)一起使用时,经常能取得很好的效果。然而我们发现因为这些损失函数和软标签不兼容,所以它们无法支持一些重要的训练技术(例如标签平滑,知识蒸馏,半监督学习,多标注员等)。为了解决这个问题,我们引入了JDT损失。JDT损失是原有损失函数的变体,包括了Jaccard Metric损失,Dice Semimetric损失和Compatible Tversky损失。JDT损失在硬标签下与原有的损失函数等价,但能完全兼容软标签。我们将JDT损失应用于软标签的四个重要场景:标签平滑,知识蒸馏,半监督学习和多标注员,展示了它们提高模型准确性和校准性的能力。

现有的损失函数

由于Jaccard Index和Dice Score是定义在集合上的,所以并不可导。为了使它们可导,目前常见的做法有两种:一种是利用集合和相应向量的Lp模之间的关系,例如Soft Jaccard损失(SJL),Soft Dice损失(SDL)和Soft Tversky损失(STL)。它们把集合的大小写成相应向量的L1模,把两个集合的交集写成两个相应向量的内积。另一种则是利用Jaccard Index的submodular性质,在集合函数上做Lovasz拓展,例如Lovasz-Softmax损失(LSL)。   

这些损失函数都假定神经网络的输出x是一个连续的向量,而标签y则是一个离散的二值向量。如果标签为软标签,即y不再是一个离散的二值向量,而是一个连续向量时,这些损失函数就不再兼容。以SJL为例,考虑一个简单的单像素情况:

可以发现,对于任意的y > 0,SJL都将在x = 1时最小化,而在x = 0时最大化。因为一个损失函数应该在x = y时最小化,所以这显然是不合理的。

与软标签兼容的损失函数  

为了使原有的损失函数与软标签兼容,需要在计算两个集合的交集和并集时,引入两个集合的对称差:

注意两个集合的对称差可以写成两个相应向量的差的L1模:

把以上综合起来,我们提出了JDT损失。它们分别是SJL的变体Jaccard Metric损失(JML),SDL的变体Dice Semimetric 损失(DML)以及STL的变体Compatible Tversky损失(CTL)。

JDT损失的性质  

我们证明了JDT损失有着以下的一些性质。

性质1:JML是一个metric,DML是一个semimetric。      

性质2:当y为硬标签时,JML与SJL等价,DML与SDL等价,CTL与STL等价。

性质3:当y为软标签时,JML,DML,CTL都与软标签兼容,即x = y ó f(x,y) = 0。

由于性质1,它们也因此被称为Jaccard Metric损失和Dice Semimetric损失。性质2说明在仅用硬标签进行训练的一般场景下,JDT损失可以直接用来替代现有的损失函数,而不会引起任何的改变。

如何使用JDT损失  

我们进行了大量的实验,总结出了使用JDT损失的一些注意事项。

注意1:根据评价指标选择相应的损失函数。如果评价指标是Jaccard Index,那么应该选择JML;如果评价指标是Dice Score,那么应该选择DML;如果想给予假阳性和假阴性不同的权重,那么应该选择CTL。其次,我们的一个同期工作[1]提出了一系列细粒度的评价指标,在优化这些指标时,JDT损失也应做相应的更改。

注意2:结合JDT损失和像素级的损失函数(例如Cross Entropy损失,Focal损失)。本文发现0.25CE + 0.75JDT一般是一个不错的选择。

注意3:最好采用一个较短的epoch来训练。我们的同期工作[1]发现加上JDT损失后,一般只需要Cross Entropy损失训练时一半的epoch。

注意4:在多个GPU上进行分布式训练时,如果GPU之间没有额外的通信,JDT损失会错误的优化细粒度的评价指标[1],从而导致其在传统的mIoU上效果变差。

注意5:在极端的类别不平衡的数据集上进行训练时,需注意JDL损失是在每个类别上分别求损失再取平均,这可能会使训练变得不稳定。

实验结果

实验证明,与Cross Entropy损失的基准相比,在用硬标签训练时,加上JDT损失可以有效提高模型的准确性。引入软标签后,可以进一步提高模型的准确性和校准性。只需在训练时加入JDT损失项,本文取得了语义分割上的知识蒸馏,半监督学习和多标注员的SOTA。   

           

未来工作

我们只考虑了JDT损失作为语义分割上的损失函数,但它们也可以应用在其他的任务上,例如传统的分类任务。其次,JDT损失只被用在标签空间中,但我们认为它们能被用于最小化任意两个向量在特征空间上的距离,例如用来替代Lp模和cosine距离。

参考文献  

[1] Zifu Wang, Maxim Berman, Amal Rannen-Triki, Philip H.S. Torr, Devis Tuia, Tinne Tuytelaars, Luc Van Gool, Jiaqian Yu, Matthew B. Blaschko. Revisiting Evaluation Metrics for Semantic Segmentation: Optimization and Evaluation of Fine-grained Intersection over Union. NeurIPS, 2023.    

点击进入—>【CV技术和求职】交流群


图像分割交流群成立

扫描下方二维码,或者添加微信:CVer444,即可添加CVer小助手微信,便可申请加入CVer-图像分割微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer、NeRF等。


一定要备注:研究方向+地点+学校/公司+昵称(如图像分割+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲扫码或加微信号: CVer444,进交流群


CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集近万人!


扫码加入星球学习


▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看

微信扫码关注该文公众号作者

来源:CVer
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。