【问题标题】:what method is the correct way of implemeting dice loss ? sigmoid or softmax?什么方法是实现骰子损失的正确方法? sigmoid 还是 softmax?
【发布时间】:2020-05-05 04:21:47
【问题描述】:

我有一个二元语义分割问题,我想到了两种方法。

方法一: Unet 输出一个带有 sigmoid 激活的类,然后我使用 dice loss 来计算损失

方法二: 基本事实连接到它是反向的,因此有 2 个类。 Unet 的输出是 2 个类,并对它们应用 softmax 激活。然后使用骰子损失来计算损失。

哪个是正确的?

【问题讨论】:

  • 这是一道编程题吗?

标签: machine-learning keras deep-learning image-segmentation


【解决方案1】:

方法2是正确的,因为softmax用于多类问题。

【讨论】:

    【解决方案2】:

    这个问题已经回答here。如果您有 2 类问题,则仅输出 1 个通道,使用 sigmoid 函数(输出值介于 0 和 1 之间)。然后,您可以使用输出(连续值)和目标(单通道 one-hot-encoded,离散值)计算骰子损失。如果您的网络输出 2 个通道,则使用 softmax 函数并使用输出(连续值)和目标(2 通道 one-hot-encoded)计算您的损失。前者是首选,因为您将拥有更少的参数。

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2020-10-21
      • 2022-08-04
      • 2011-11-06
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多