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

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

    PS:我想这是因为我教它只发生过案例,而不是未发生过的..
    但是我不能在剧集中的每一步都教它对于每个未发生的 Action 输出=0.0!

    任何建议如何克服这个问题?或者可能是使用 NN 或实现 prob 功能的另一种方式?

    谢谢

    最佳答案

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

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

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

    对于连续变量,您必须假设分布(例如多元高斯分布)并使用该分布的参数(例如均值和协方差标准差)作为输出。

    关于machine-learning - 强化学习和 POMDP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2750608/

    10-12 18:11