我有两种不同的神经网络架构。它们都用于图像分割。我通过它们运行单个输入并得到两个 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 分支吗?
除非给出额外的信息/数据,否则唯一真正有效的方法是平均预测,不幸的是,即使这不是一个解决方案的真正问题,但通常有 2 条路径:
c(x,y) = exp([log(x) + log(y)]/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;只是平均概率和阈值平均值。