如果这是您的第一次强化学习实验,我建议您从比这更简单的东西开始。您可以从简单的事情开始,然后转向像这样的更复杂的项目。我在使用 POMDP 时遇到了麻烦,我已经在 RL 中工作了很长一段时间。现在我会尽量回答我能回答的问题。
我认为它是 POMDP ,但我可以将其建模为 MDP 并忽略噪音吗?
是的。POMDP 代表部分可观察马尔可夫决策过程。部分可观察部分是指智能体不能完全知道自己的状态,但可以根据观察进行估计。在您的情况下,您会将火箭的位置作为可能产生一些噪音的观测值,并且根据特工先前的知识,您可以更新它对导弹位置的信念。这增加了很多复杂性。将导弹位置用作绝对位置会容易得多,而不必处理不确定性。那么您就不必使用 POMDP。
如果是 POMDP,评估概率的推荐方法是什么?
我不明白你的问题。您将使用某种形式的贝叶斯规则。也就是说,您将拥有某种分布,即您的信念状态(处于任何给定状态的概率),这将是您的先验分布,并且根据观察,您将对其进行调整并获得后验分布。如果您需要更多信息,请查看贝叶斯规则。
在这种情况下使用哪个更好:价值函数或策略迭代?
我的大部分经验都是使用价值函数,并且发现它们相对容易使用/理解。但我不知道还能告诉你什么。我认为这可能是您的选择,我将不得不花时间在项目上做出更好的选择。
我可以使用 NN 来模拟环境动力学而不是使用显式方程吗?如果是,是否有特定类型/型号的 NN 可以推荐?
抱歉,我对使用 NN 建模环境一无所知。
我认为动作必须离散化,对吗?
是的。你必须有一个离散的动作列表和一个离散的状态列表。通常,该算法将为任何给定状态选择最佳动作,而对于最简单的算法(例如 QLearning),您只需跟踪每个给定状态-动作对的值。
如果您只是学习所有这些东西,我会推荐Sutton 和 Barto文本。此外,如果您想查看 RL 算法的简单示例,我有一个非常简单的基类和一个在github上使用它的示例(用 Python 编写)。abstract_rl 类旨在针对 RL 任务进行扩展,但非常简单。simple_rl.py 是一个简单任务的示例(它是一个简单的网格,以一个位置为目标,它使用 QLearning 作为算法)使用 base_rl 可以运行并打印一些显示随时间推移的奖励的图表。两者都不是很复杂,但如果你刚刚开始,可能有助于给你一些想法。我希望这会有所帮助。如果您有任何更多或更具体的问题,请告诉我。