2017-08-07 66 views
0

这可能听起来很愚蠢,但我只是想知道在尝试预测时修改神经网络以获得概率密度函数而不是单个值的可能性一个标量。我知道,当你试图对图片或文字进行分类时,你可以得到每个班级的概率,所以我认为可能有办法用连续的值做类似的事情并绘制它。 (类似于具有贝叶斯优化的后验图)NN:输出概率密度函数而不是单个值

当部署预测模型并且可以提供比单个值更大的灵活性时,这样的细节可能是有趣的。

有没有人知道一种方法来获得这样的输出?

谢谢!

+0

你的问题是什么? – adrianmcmenamin

+0

model.predict_proba? – Paddy

+0

@Paddy我正在考虑更多关于连续输出的信息,比如你会用贝叶斯统计得到的结果。 –

回答

0

好吧所以我找到了这个问题的解决方案,虽然它增加了很多开销。

最初我认为keras回调可以使用,但尽管它提供了我想要的灵活性,例如:仅对测试数据进行训练或仅对一个子集进行训练,而不是对每个测试进行训练。看来,回调只能从日志中获得摘要数据。

因此,第一步是创建一个自定义度量标准,该度量标准可以与2个数组(真实值和预测值)进行任何度量标准相同的计算,并且一旦这些计算完成,将它们输出到文件中供以后使用使用。

然后,一旦我们找到一种方法来收集每个样本的所有数据,下一步就是实施一种方法,可以给出一个很好的误差度量。我目前正在实施一些方法,但最合适的一个似乎是贝叶斯引导(用户lmc2179有一个很棒的python实现)。我还实施了集成方法和高斯过程作为替代方案或用作其他度量和其他贝叶斯方法。

我会尝试查找在训练和测试阶段设置的keras中是否有内部元素,以查看是否可以为我的度量设置触发器。使用所有数据的主要问题是,一开始就会获得大量不可靠的数据点,因为网络未优化。一些数据过滤可能有助于移除大量这些点以改善错误预测结果。

我会更新,如果我发现任何有趣的事情。