强化学习与部分可观察马尔可夫决策过程

  • 我试图使用多层神经网络来实现部分可观察马尔可夫过程中的概率函数..
  • 我认为神经网络的输入应该是:当前状态、选择的动作、结果状态;输出是一个在[0,1]之间的概率(执行选择的动作在当前状态下会导致结果状态的概率)
  • 在训练过程中,我将上述输入输入到神经网络中,并且我教它对于每个已经发生的情况输出为1.0。

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

附注:我认为这是因为我只教它已经发生的情况,而没有教它未发生的情况..但我无法在每一步中教它对于每个未发生的动作输出为0.0!

有什么建议可以克服这个问题吗?或者可能有其他使用神经网络或实现概率函数的方法?


回答:

问题在于所有可能的后续状态的总和必须等于1。如果你这样构建你的网络,这一点无法保证。我想到的两个可能的替代方案,假设是离散状态。

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

从数学角度来看,这两个方法实际上大致等效。

在连续变量的情况下,你将不得不假设分布(例如多元高斯分布)并使用该分布的参数(例如均值和协方差标准差)作为输出。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注