首页 > 解决方案 > 约束 Keras 回归输出

问题描述

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

标签: kerasdistributionkeras-layer

解决方案


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

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


推荐阅读