两个神经网络 - 组合 sigmoid 输出

问题描述 投票:0回答:1

我有两种不同的神经网络架构。它们都用于图像分割。我通过它们运行单个输入并得到两个 sigmoid 输出(x 和 y)。 我想将它们结合起来以获得最佳结果,但我不确定如何。

我现在的想法是:我有阈值0.5。

  • x < 0.5 && y < 0.5
    -> 选择
    min(x, y)
  • x > 0.5 && y > 0.5
    -> 选择
    max(x, y)
  • x < 0.5 && y > 0.5
    -> 计算 x 与 0 的距离和 y 与 1 的距离,并选择“误差”较小的值(例如 x = 0.3 和 y = 0.8 => y 的误差仅为 0.2 => 选择y=0.8)
  • x > 0.5 && y < 0.5
    -> 计算 x 与 1 的距离和 y 与 0 的距离,并选择“误差”较小的值

这是一种有效的方法还是有更好的方法?这个逻辑能以某种方式“翻译”成数学函数而不是 if-else 分支吗?

neural-network image-segmentation sigmoid
1个回答
0
投票

除非给出额外的信息/数据,否则唯一真正有效的方法是平均预测,不幸的是,即使这不是一个解决方案的真正问题,但通常有 2 条路径:

  1. 取对数赔率的算术平均值
    c(x,y) = exp([log(x) + log(y)]/2)
  2. 取概率的算术平均值
    c(x,y) = (x+y)/2

两者都有一些所需的属性而不是其他属性。在神经网络社区“2”。是一个典型的路径,对应于将您的模型集合视为“一个朴素的整体”。

现在,如果您有一些验证数据来进行模型选择,您可以训练混合系数,例如通过最大化你的表现

c(x,y|a) = a x + (1-a) y

对于不同的 a.

现在让我们分析你的启发式: 改写您的规则,您只是在说:如果两个模型都同意,请相信它们,否则选择“更确定”的那个。 这是一种复杂的表达“2”的方式。,快速证明:

.1) x<0.5, y<0.5 => (x+y)/2<0.5 thus it is classified as negative (and so does your rule)

.2) x>0.5, y>0.5 => (x+y)/2>0.5 因此它被归类为正数(你的规则也是如此)

.3a) x<0.5, y>0.5;并且 x “比 y 更接近 0”,这意味着 (x+y)/2 = (0.5-a + 0.5+b)/2 其中 a>b,因此 (x+y)/2 < 0.5 thus it is classified as negative (and so does your rule)

.3b) x<0.5, y>0.5; y 比 x 更接近 0,这意味着 (x+y)/2 = (0.5-a + 0.5+b)/2 其中 a 0.5 因此它被归类为正(你的也是规则) 4a 和 4b 是类似的。

TLDR;只是平均概率和阈值平均值。

© www.soinside.com 2019 - 2024. All rights reserved.