强化学习玩具项目

时间:2010-05-17 00:12:45

标签: machine-learning neural-network reinforcement-learning

我的学习和玩具项目申请强化学习是:
- 代理尝试“安全地”达到目标状态& “快” ......
- 但是有一些射弹和火箭是在代理人的路上发射的 - 代理人可以确定火箭的位置 - 有一些噪音 - 只有当他们“接近”时 - 然后代理必须学会避免崩溃进入这些火箭...... - 代理具有 - 可充电的时间 - 燃料,其在代理运动中消耗 - 持续行动:加速前进 - 转弯角度


我需要一些适合这种情况的RL算法的提示和名称。
- 我认为这是POMDP,但我可以将其建模为MDP并忽略噪音吗? - 如果是POMDP,评估概率的推荐方法是什么? - 在这种情况下哪个更好用:价值函数或政策迭代?
- 我可以使用NN来模拟环境动态而不是使用显式方程吗? - 如果是,是否建议使用特定类型/型号的NN? - 我认为行动必须离散化,对吧?

我知道学习这样一个话题需要花费时间和精力,但我很想...... 如果你不能回答所有问题,你可以回答一些问题。
感谢

2 个答案:

答案 0 :(得分:7)

如果这是你第一次进行强化学习的实验,我建议从比这简单得多的东西开始。您可以从简单的事情开始,然后转移到像这样的更复杂的项目。我在使用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并打印一些显示奖励的图表。两者都不是很复杂,但如果你刚刚开始可能会有助于给你一些想法。我希望这有帮助。如果您有任何更多或更具体的问题,请与我们联系。

答案 1 :(得分:0)

我可以使用NN来模拟环境动态而不是使用显式方程吗?如果是,是否建议使用特定类型/型号的NN?

是的,已知神经网络能够解决预测任务。但是,这取决于你如何定义你的任务:你是否希望你的算法只学习在知道它的动态时控制环境,或者你想学习在未知环境中解决任务?后一种情况在RL中更为常见。

我认为行动必须离散化,对吧?

不,他们不一定是。例如,Actor-Critic解决方案适用于连续操作。我也听说过基于高斯过程的RL。通过谷歌很容易找到这两种解决方案的大量资料。