- 我试图使用多层神经网络来实现部分可观察马尔可夫过程中的概率函数..
- 我认为神经网络的输入应该是:当前状态、选择的动作、结果状态;输出是一个在[0,1]之间的概率(执行选择的动作在当前状态下会导致结果状态的概率)
- 在训练过程中,我将上述输入输入到神经网络中,并且我教它对于每个已经发生的情况输出为1.0。
问题是:
几乎所有测试用例的输出概率都接近0.95..没有输出低于0.9!即使对于几乎不可能的结果,它也给出了如此高的概率。
附注:我认为这是因为我只教它已经发生的情况,而没有教它未发生的情况..但我无法在每一步中教它对于每个未发生的动作输出为0.0!
有什么建议可以克服这个问题吗?或者可能有其他使用神经网络或实现概率函数的方法?
回答:
问题在于所有可能的后续状态的总和必须等于1。如果你这样构建你的网络,这一点无法保证。我想到的两个可能的替代方案,假设是离散状态。
- 在进行预测时,对每个可能的后续状态运行网络。之后,通过所有概率的总和进行归一化。
- 为每个可能的后续状态使用一个输出。你可以使用一个softmax层(如分类中所用)并将范围从0到1且总和为1的值解释为概率。
从数学角度来看,这两个方法实际上大致等效。
在连续变量的情况下,你将不得不假设分布(例如多元高斯分布)并使用该分布的参数(例如均值和协方差标准差)作为输出。