Bet*_*moo 3 machine-learning reinforcement-learning neural-network
我的学习和应用强化学习的玩具项目是:
- 代理人试图"安全地"和"快速地" 达到目标状态....
- 但是有代理人在路上发射了射弹和火箭.
- 代理人可以确定火箭的位置 - 有一些噪音 - 只有当他们"接近"时
- 然后代理人必须学会避免撞到这些火箭上......
- 代理人可以使用时间燃料来补充 - 在代理人运动中消耗
- 连续动作:加速前进 - 转动角度
我需要一些适合这种情况的RL算法的提示和名称.
- 我认为它是POMDP,但我可以将其建模为MDP并忽略噪声吗?
- 如果是POMDP,评估概率的推荐方法是什么?
- 在这种情况下哪个更好用:值函数或策略迭代?
- 我可以使用NN来模拟环境动态而不是使用显式方程吗?
- 如果是,是否建议使用特定类型/型号的NN?
- 我认为行动必须离散化,对吗?
我知道学习这样一个话题需要花费时间和精力,但我很想......
如果你不能回答所有问题,你可以回答一些问题......
谢谢
如果这是你第一次进行强化学习的实验,我会建议从比这简单得多的东西开始.您可以从简单的事情开始,然后转移到像这样的更复杂的项目.我在使用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并打印一些显示奖励的图表.两者都不是很复杂,但如果你刚刚开始可能会有助于给你一些想法.我希望这有帮助.如果您有任何更多或更具体的问题,请与我们联系.