【问题标题】:Constrain Keras regression output约束 Keras 回归输出
【发布时间】:2026-01-28 04:50:02
【问题描述】:

我使用 Keras 成功训练了一个神经网络。然而,对少数样本的预测却大相径庭。现在,我想将预测限制在某个区间(比如 5 到 10),这是唯一可能针对我的特定问题进行预测的区间。更一般地说,我想强制输出具有特定分布(例如标准正态)。 我试过 Keras lambda 层 keras.layers.Lambda(函数,输出形状=无,掩码=无,参数=无) 以 Keras 概率分布为函数 (https://www.tensorflow.org/probability)。 但是,它不能以这种方式工作。有没有办法将 Keras 回归中的预测限制在某个区间和/或分布? 非常感谢!

【问题讨论】:

    标签: keras distribution keras-layer


    【解决方案1】:

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

    这通常用于卷积对象检测器,它应该可以很好地解决您的问题。神经网络没有办法输出概率分布,除非你的模型输出概率分布的参数,但是仅仅标准化就可以很好地工作并且更容易。

    【讨论】:

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