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