约束Keras回归输出

约束Keras回归输出,keras,distribution,keras-layer,Keras,Distribution,Keras Layer,我使用Keras成功地训练了NN。然而,对少数样本的预测却大相径庭。现在,我想把预测限制在一个特定的区间(比如5到10),这是唯一一个区间,在这个区间,预测可能会对我的特定问题产生影响。更一般地说,我想强制输出为特定分布(例如标准正态分布)。 我试过Keras lambda图层 keras.layers.Lambda(函数,输出形状=None,掩码=None,参数=None) 以Keras概率分布为函数 (). 然而,它不是这样工作的。有没有办法将Keras回归中的预测限制在某个区间和/或分布?

我使用Keras成功地训练了NN。然而,对少数样本的预测却大相径庭。现在,我想把预测限制在一个特定的区间(比如5到10),这是唯一一个区间,在这个区间,预测可能会对我的特定问题产生影响。更一般地说,我想强制输出为特定分布(例如标准正态分布)。 我试过Keras lambda图层 keras.layers.Lambda(函数,输出形状=None,掩码=None,参数=None) 以Keras概率分布为函数 (). 然而,它不是这样工作的。有没有办法将Keras回归中的预测限制在某个区间和/或分布?
非常感谢

这就是为什么规范化数据标签是一个好的做法的原因之一,比如对
[0,1]
[-1,1]
范围进行规范化。然后,通过将
sigmoid
tanh
激活函数置于输出层,可以很容易地将神经网络输出限制在这些范围之一


这是通常对卷积对象检测器所做的,它应该可以很好地解决您的问题。神经网络无法输出概率分布,除非您的模型输出概率分布的参数,但仅规范化就可以很好地工作,而且更容易。

这就是为什么规范化数据标签是一种很好的做法的一个原因,比如对
[0,1]
[-1,1]
范围进行规范化。然后,通过将
sigmoid
tanh
激活函数置于输出层,可以很容易地将神经网络输出限制在这些范围之一


这是通常对卷积对象检测器所做的,它应该可以很好地解决您的问题。神经网络无法输出概率分布,除非您的模型输出概率分布的参数,但仅规范化工作很好,而且更容易。

谢谢。听起来不错。但是,对于tanh或sigmoid,间隔边缘上的值(在您的示例中接近0或1)可能变得非常不可能,对吗?但是,在我的例子中,边上的值可能同样可能。@蒂姆:不,边上的值不是不可能的。听起来不错。但是,对于tanh或sigmoid,间隔边缘上的值(在您的示例中接近0或1)可能变得非常不可能,对吗?但是,在我的情况下,边上的值可能同样可能。@Tim不,边值不太可能