【问题标题】:Why use 0.5 as the binarization threshold in the task of CNN segmentation?为什么在CNN分割任务中使用0.5作为二值化阈值?
【发布时间】:2019-10-21 13:12:12
【问题描述】:

为什么在CNN分割任务中使用0.5作为二值化阈值?

我们经常在得到预测概率图后进行二值化,像这样:

Pred = model(data)

Pred = pred > 0.5

我很困惑为什么它是 0.5。我尝试将此阈值设置为 0.3、0.4、0.5 和 0.6。事实证明,0.4 是最好的,当然不同的任务会产生不同的结果。

那么为什么我们在图像分割中总是使用0.5作为阈值呢?

【问题讨论】:

  • 我们并不总是使用 0.5,但就像在大多数监督学习算法中一样,必须给出默认阈值,并且大多数情况下是 0.5(将默认阈值设为 0.4 会很奇怪或 0.6,就像你说的那样,这将是一个根据你的任务进行优化的参数)
  • 我使用的是 0.95,所以它可以根据您的问题而有所不同
  • @HuguesGALLIER 是的,我担心将它设置为 0.4 会被质疑为什么这是这个值。到现在我还不能很好的解释这个问题。
  • @juvianj 我也用过0.4作为阈值,但至今无法解释为什么用0.4。就像我只是无缘无故地挑选了一个并做出了最好的。
  • 这个问题真的不适合stackoverflow,它是一个更普遍的问题而不是程序问题。

标签: python deep-learning conv-neural-network image-segmentation


【解决方案1】:

阈值是特定于任务的。

因此,没有开箱即用的保证阈值可以发挥最佳效果。

这个想法是在不同的阈值值之间进行迭代(显然在 0 和 1 之间)并找到最适合您的问题的阈值。

至于你的不确定性:你在分割过程中使用了神经网络;在撰写此评论时,研究人员仍在研究神经网络的“可解释性问题”。

没有人会回答“为什么 0.4 比 0.5 好”;只能是猜想。

【讨论】:

    猜你喜欢
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多