我学习和应用强化学习的玩具项目是:
-代理试图“安全”和“快速”达到目标状态。
-但是,有一些弹药和火箭以这种方式射向了特工。
-探员只有在“靠近”火箭的情况下,才能确定火箭的位置-有一些噪音-
-然后,特工必须学会避免撞向这些火箭。
-代理人可以随时间充电-代理人运动中消耗的燃料
-连续动作:向前加速-转弯
我需要适合这种情况的RL算法的提示和名称。
-我认为它是POMDP,但是我可以将其建模为MDP并忽略噪声吗?
-如果是POMDP,建议的概率评估方法是什么?
-在这种情况下,哪个更好使用:值函数或策略迭代?
-我可以使用NN代替动态方程来模拟环境动力学吗?
-如果是,是否有推荐的特定类型的NN模型?
-我认为动作必须离散化,对吗?
我知道学习这样一个主题需要花费时间和精力,但我很想..
如果您不能全部回答,则可以回答一些问题。
谢谢
最佳答案
如果这是您第一次进行强化学习实验,我建议您从比这简单得多的方法开始。您可以从简单入手,掌握其中的内容,然后再移至更复杂的项目,例如此项目。我在使用POMDP时遇到麻烦,并且我已经在RL中工作了一段时间。现在,我将尝试回答我可以回答的问题。
我认为它是POMDP,但是我可以将其建模为MDP并忽略噪声吗?
是。 POMDP代表部分可观察的马尔可夫决策过程。部分可观察的部分是指代理无法完全知道其状态,但可以根据观察值对其进行估计的事实。在您的情况下,您会将火箭的位置视为可能会产生噪音的观测值,并且根据特工的先前知识,您可以更新对导弹位置的看法。这增加了很多复杂性。将导弹的位置用作绝对值,而不必处理不确定性会容易得多。然后,您将不必使用POMDP。
如果是POMDP,建议的概率评估方法是什么?
我不明白你的问题。您将使用某种形式的贝叶斯规则。也就是说,您将具有某种分布,即您的信念状态(处于任何给定状态的概率),这就是您的先验分布,根据观察结果,您可以对此进行调整并得到后验分布。如果需要更多信息,请查看贝叶斯规则。
在这种情况下,使用哪个更好:值函数或策略迭代?
我的大部分经验是使用价值函数,并发现它们相对易于使用/理解。但是我不知道还能告诉你什么。我认为这可能是您的选择,我将不得不花时间在项目上以做出更好的选择。
我可以使用NN代替动态方程来模拟环境动力学吗?如果是,是否建议使用特定类型的NN?
对使用NN建模环境一无所知。
我认为动作必须离散化,对吗?
是。您将必须有一个离散的动作列表和一个离散的状态列表。通常,算法将为任何给定状态选择最佳操作,而对于最简单的算法(例如QLearning),您只需跟踪每个给定状态操作对的值即可。
如果您只是学习所有这些东西,我会推荐Sutton and Barto文本。另外,如果您想看一个简单的RL算法示例,我有一个非常简单的基类,以及一个在github(用Python编写)中使用它的示例。 abstract_rl类用于RL任务,但非常简单。 simple_rl.py是一个简单任务的示例(它是一个简单的网格,其中一个位置作为目标,并且使用QLearning作为算法),并且可以运行base_rl并打印一些图形,这些图形显示随着时间的推移而获得的奖励。两者都不是很复杂,但是如果您刚入门,可能会帮助您提供一些想法。希望对您有所帮助。让我知道您是否还有更多或更多具体问题。