神经网络概率输出和损失函数(例如:骰子损失)
数据挖掘
神经网络
图像分割
2022-03-08 10:09:59
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 之间。
在每个时期,损失将决定学习的加速和权重的更新,以尽可能减少损失。骰子系数还考虑了像素的全局和局部组成,从而提供比加权交叉熵更好的边界检测。
