专栏首页AIUAI二分类语义分割损失函数
原创

二分类语义分割损失函数

图像语义分割损失函数loss盘点 汇总了常用语义分割损失函数.

这里针对二类图像语义分割任务,常用损失函数有:

1 - softmax 交叉熵损失函数(softmax loss,softmax with cross entroy loss)

2 - dice loss(dice coefficient loss)

3 - 二值交叉熵损失函数(bce loss,binary cross entroy loss).

其中,dice loss 和 bce loss 仅支持二分类场景.

对于二类图像语义分割任务,经常出现类别分布不均衡的问题,比如:工业产品的瑕疵检测、道路提取及病变区域提取等.

如,DeepGlobe比赛中道路提取(Road Extraction)中,训练数据道路占比为:4.5%. 如下为其图片样例, 可以看出道路在整张图片中的比例很小.

1. Dice Loss

Dice loss 有助于解决二分类语义分割中类别不均衡问题.

医学图像分割之 Dice Loss - AIUAI

Dice loss 的定义如:

image.png

其中,Y 表示 groundtruth,P表示预测结果. $| \cdot |$ 表示矩阵元素之和. 分子表示 Y 和 P 的共有元素数,实际通过求两者的逐像素乘积之和进行计算. 例如:

image.png

其中,1 表示前景,0 表示背景.(GT图片中要求前景像素值为1,背景像素值为0).

Dice 系数 - 维基百科

2. Dice Loss 与类别不均衡

类别不均衡问题上,dice loss效果为什么比softmax 交叉熵 loss 更好?

Dice-coefficientlossfunctionvscross-entropy - AIUAI

首先,softmax 交叉熵 loss 的定义为:

image.png

其中,y 表示 groundtruth, p 表示网络输出.

图像分割任务中,softmax 交叉熵loss 是对每一个像素点进行类别预测,然后平均所有的像素点. 其本质上仍是对图片的每个像素进行平等的学习,这就导致如果图像上的多种类别存在不平衡时,模型的训练会由最主流的类别所主导. 网络更偏向于对主流类别的学习,而降低了对非主流类别的特征提取能力.

而,Dice loss 通过预测和GT的交集除以它们的总体像素进行计算,将一个类别的所有像素作为一个整体进行考量,而且计算交集在总体中的比例,所以不会受大量主流像素的影响,能够提取更好的效果.

实际中,dice loss 往往与 bce loss 结合使用,以提升模型训练的稳定性.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Caffe Loss层 - HingelossLayer

    AIHGF
  • Caffe Loss 层 - Lifted Struct Similarity Softmax Layer

    Loss Layer From Deep-Metric-Learning-CVPR16.

    AIHGF
  • CaffeLoss - FocalLossLayer

    基于 SoftmaxWithLossLayer 实现的 FocalLossLayer.

    AIHGF
  • CenterNet之loss计算代码解析

    本文主要讲解CenterNet的loss,由偏置部分(reg loss)、热图部分(heatmap loss)、宽高(wh loss)部分三部分loss组成,附...

    BBuf
  • 深度学习中常用的损失函数loss有哪些?

    这是专栏《AI初识境》的第11篇文章。所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法。

    小草AI
  • 【AI初识境】深度学习中常用的损失函数有哪些?

    这是专栏《AI初识境》的第11篇文章。所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法。

    用户1508658
  • keras做CNN的训练误差loss的下降操作

    噪声点处理:对原点周围的八个点进行扫描,比较。当该点像素值与周围8个点的值小于N时,此点为噪点 。

    砸漏
  • 样本混进了噪声怎么办?通过Loss分布把它们揪出来!

    当训练样本中混有噪音,就很容易让模型过拟合,学习到错误的信息,因此必须加以干涉,来控制噪音带来的影响。这方面的研究,主要集中于“损失修正”方法,即loss co...

    beyondGuo
  • pytorch进行CIFAR-10分类(4)训练

    经过前面的数据加载和网络定义后,就可以开始训练了,这里会看到前面遇到的一些东西究竟在后面会有什么用,所以这一步希望各位也能仔细研究一下

    TeeyoHuang
  • GAN对抗网络入门教程

    译:A Beginner's Guide to Generative Adversarial Networks (GANs) https://skymind.a...

    致Great

扫码关注云+社区

领取腾讯云代金券