【问题标题】:Reinforcement learning And POMDP强化学习和POMDP
【发布时间】:2011-02-14 14:08:29
【问题描述】:
- 我正在尝试使用多层神经网络来实现部分可观察马尔可夫过程中的概率函数..
- 我认为 NN 的输入是:当前状态、选择的操作、结果状态;
输出是 [0,1] 中的概率(概率。对当前状态执行选定的操作将导致结果状态)
- 在训练中,我将前面所述的输入输入到 NN 中,然后我教它输出 = 1.0 的每个已经发生的情况。
问题:
对于几乎所有测试用例,输出概率接近 0.95 .. 没有输出低于 0.9!
即使对于几乎不可能的结果,它也给出了很高的概率。
PS:我认为这是因为我只教它发生的情况,而不是未发生的情况。
但我不能在剧集中的每一步都教它输出=0.0 的每个未发生的动作!
有什么建议可以解决这个问题吗?或者可能是使用 NN 或实现 prob 函数的另一种方式?
谢谢
【问题讨论】:
标签:
machine-learning
probability
neural-network
reinforcement-learning
markov-models
【解决方案1】:
在拟合 NN 时,您可能想要拟合更广泛的数据,在训练中是否有任何数据想要拟合到更接近 0 的概率?如果没有,我怀疑你可能会得到糟糕的结果。作为第一步,我会尝试在训练数据集中选择一些不同的东西。
另外你是如何训练神经网络的?您是否尝试过使用其他方法?激活函数怎么样,也许可以尝试使用一些不同的函数。
对于神经网络,我认为在选择模型时进行一些反复试验会有所帮助。 (抱歉,如果所有这些都不够具体。)
【解决方案2】:
问题是所有可能的以下状态的总和必须等于 1。如果您这样构建网络,则无法保证。我想到了两种可能的选择,我假设离散状态。
- 进行预测时,针对每个可能的后续状态运行网络。然后,通过除以所有概率的总和进行归一化。
- 每个可能的后续状态使用一个输出。然后,您可以使用 softmax 层(如在分类中)并解释从 0 到 1 并总和为 1 的值作为概率。
从数学的角度来看,这两者实际上大致等价。
在连续变量的情况下,您必须假设分布(例如多元高斯)并使用该分布的参数(例如均值和协方差标准差)作为输出。