神经网络概率输出和损失函数(例如:骰子损失)

数据挖掘 神经网络 图像分割
2022-03-08 10:09:59

用于语义分割的常用损失函数是骰子损失函数。(见下图。它恢复了我的理解)

在此处输入图像描述

将它与神经网络一起使用,输出层可以产生带有 softmax 的标签或带有 sigmoid 的概率。但是骰子损失如何与概率输出一起工作?

分子将预测和基本事实的每个标签(1 或 0)相乘。两个像素都需要设置为 1 才能位于绿色区域。概率为 0.7 的结果是什么?分子是否会产生一个浮点数(即在基本事实 = [1, 1] 和预测 = [0.7, 0] 的情况下,分子的“绿色”区域将为 0.7)?

2个回答

我认为这里有点混乱。骰子系数是为二进制分类定义的。Softmax 用于多类分类。

Softmax 和 sigmoid 都被解释为概率,区别在于这些概率是什么。对于二元分类,它们基本上是等价的,但对于多类分类,它们是有区别的。

应用 sigmoid 时,要确保所有输出神经元都在 0 和 1 之间。

当你应用 softmax 时,你要确保所有的输出神经元都在 0 和 1 之间并且它们总和为 1。

这意味着,当输出为 sigmoid 时,输入数据可以同时属于多个类。对于 softmax,您强制网络选择其中一个类。

您在此处发布的代码对于二进制分类是正确的,但对于多类,在组合类时存在一些复杂性。

由于在您的示例中,目标由两个像素组成,每个像素都标记为 0 或 1,因此您正在处理二进制分类,并且应该首先使用像素级 sigmoid,即模型的概率应该是例如 [0.7, 0.8]或类似的东西。

仅当每个像素只能属于多个类别之一时才应使用逐像素 softmax,并且对所有像素的 softmax 没有多大意义,因为这将迫使模型从许多像素中选择一个标记为 1。

Dice 系数告诉您模型在检测与地面实况数据相关的边界时的性能。损失是用 1 - Dice 系数计算的,其中 Dice 系数在 0-1 之间。

在每个时期,损失将决定学习的加速和权重的更新,以尽可能减少损失。骰子系数还考虑了像素的全局和局部组成,从而提供比加权交叉熵更好的边界检测。