3
  • 我正在尝试使用多层神经网络在部分可观察马尔可夫过程中实现概率函数..
  • 我认为 NN 的输入是:当前状态、选择的操作、结果状态;输出是 [0,1] 中的概率(概率。对当前状态执行选定操作将导致结果状态)
  • 在训练中,我将前面提到的输入输入到 NN 中,然后我教它输出 = 1.0 的每个已经发生的情况。

问题:
对于几乎所有测试用例,输出概率接近 0.95.. 没有输出低于 0.9!即使对于几乎不可能的结果,它也给出了很高的概率。

PS:我认为这是因为我只教它发生的情况,而不是未发生的情况。但是我不能在剧集中的每一步都教它输出= 0.0 为每个未发生的动作!

有什么建议可以解决这个问题吗?或者可能是使用 NN 或实现 prob 功能的另一种方式?

谢谢

4

2 回答 2

2

问题是所有可能的以下状态的总和必须等于 1。如果您这样构建网络,则无法保证。我想到了两种可能的选择,我假设离散状态。

  1. 进行预测时,为每个可能的后续状态运行网络。然后,通过除以所有概率的总和进行归一化。
  2. 每个可能的后续状态使用一个输出。然后,您可以使用 softmax 层(如在分类中)并将值解释为从 0 到 1 并且总和为 1 的概率。

从数学的角度来看,这两者实际上大致等价。

In the case of continuous variables, you will have to assume distributions (e.g. a multivariate Gaussian) and use the parameters of that distribution (e.g. mean and covariance stdev) as outputs.

于 2010-05-03T12:54:48.747 回答
0

在拟合 NN 时,您可能想要拟合更广泛的数据,在训练中是否有任何数据想要拟合到更接近 0 的概率?如果没有,我怀疑你可能会得到糟糕的结果。作为第一步,我会尝试在训练数据集中选择一些不同的东西。

另外你是如何训练神经网络的?您是否尝试过使用其他方法?激活函数怎么样,也许可以尝试使用一些不同的函数。

对于神经网络,我认为在选择模型时进行一些反复试验会有所帮助。(对不起,如果这一切还不够具体。)

于 2010-05-01T16:39:51.723 回答