强化学习和POMDP

时间:2010-05-01 16:04:40

标签: machine-learning probability neural-network reinforcement-learning markov-models

  • 我正在尝试使用多层NN在部分可观察马尔可夫过程中实现概率函数。
  • 我认为对NN的输入是:当前状态,选定动作,结果状态; 输出是[0,1]中的概率(概率,对当前状态执行选定的操作将导致结果状态)
  • 在训练中,我将之前说明的输入信息输入NN,并且我教过它已经发生的每个案例的输出= 1.0。

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

PS:我认为这是因为我教过它只发生了一些情况,但并非未发生的情况...... 但是我不能在剧集的每一步都教导它输出= 0.0每个未发生的动作!

有任何建议如何解决这个问题?或者可能是使用NN或实现prob函数的另一种方式?

由于

2 个答案:

答案 0 :(得分:2)

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

  1. 进行预测时,请针对每种可能的后续状态运行网络。然后,通过除以所有概率的总和来归一化。
  2. 每个可能的状态使用一个输出。然后,您可以使用softmax图层(如分类中所示)并解释范围从0到1的值,并总结为1作为概率。
  3. 从数学角度来看,这两个实际上大致相当。

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

答案 1 :(得分:0)

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

另外你是如何训练NN的?你尝试过使用其他方法吗?如何激活功能,也许尝试使用一些不同的功能。

使用神经网络,我认为在选择模型时会有一些试验和错误会有所帮助。 (对不起,如果这一切都不够具体。)