- 我正在尝试使用多层神经网络来实现部分可观测马尔可夫过程中的概率函数..
- 我认为神经网络的输入将是:当前状态、所选操作、结果状态; 输出是 [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/