### 强化学习玩具项目

我的学习和应用强化学习的玩具项目是:

  • 一个智能体尝试“安全”且“快速”地到达目标状态……
  • 但在途中会有投射物和火箭向智能体发射……
  • 智能体只能在火箭“靠近”时确定其位置,且带有一些噪声……
  • 然后智能体必须学会避免撞击这些火箭……
  • 智能体拥有随时间可充电的燃料,这些燃料在智能体移动时消耗……
  • 连续动作:向前加速 – 以角度转向

我需要一些提示和适合这种情况的强化学习算法的名称……

– 我认为这是POMDP,但可以将其建模为MDP并忽略噪声吗?

– 如果是POMDP,评估概率的推荐方法是什么?

– 在这种情况下,使用价值函数还是策略迭代更好?

– 我可以使用神经网络来建模环境动态而不是使用显式方程吗?

– 如果可以,有没有推荐的特定类型/模型的神经网络?

– 我认为动作必须离散化,对吗?


回答:

如果这是你第一次尝试强化学习,我建议从比这简单得多的项目开始。你可以从简单的开始,掌握要领,然后再转向像这样的更复杂的项目。我在强化学习领域工作了很长时间,对POMDP仍然感到困惑。现在我会尽力回答我能回答的问题。

我认为这是POMDP,但可以将其建模为MDP并忽略噪声吗?

是的。POMDP代表部分可观察马尔可夫决策过程。部分可观察部分指的是智能体无法完美地知道其状态,但可以基于观察进行估计。在你的案例中,你会将火箭的位置作为带有噪声的观察,基于智能体之前的知识,你可以更新它对导弹位置的信念。这增加了很多复杂性。使用火箭位置作为绝对值而不处理不确定性会更容易。这样你就不需要使用POMDP了。

如果是POMDP,评估概率的推荐方法是什么?

我不明白你的问题。你会使用某种形式的贝叶斯规则。也就是说,你会有一个信念状态的分布(在任何给定状态下的概率),这是你的先验分布,基于观察你会调整这个分布并得到后验分布。如果你需要更多信息,请查看贝叶斯规则。

在这种情况下,使用价值函数还是策略迭代更好?

我大部分经验是使用价值函数,并且发现它们相对容易使用/理解。但我不知道还能告诉你什么。我认为这可能是你的选择,我需要花时间在项目上才能做出更好的选择。

我可以使用神经网络来建模环境动态而不是使用显式方程吗?如果可以,有没有推荐的特定类型/模型的神经网络?

我对使用神经网络建模环境一无所知,很抱歉。

我认为动作必须离散化,对吗?

是的。你需要有一组离散的动作和一组离散的状态。通常,算法会为任何给定状态选择最佳动作,对于最简单的算法(如QLearning),你只需跟踪每个给定状态-动作对的值即可。

如果你正在学习这些内容,我推荐Sutton和Barto的文本。如果你想看到一个简单的强化学习算法示例,我在github上有一个非常简单的基类和使用它的示例(用Python编写)。abstract_rl类旨在为强化学习任务扩展,但非常简单。simple_rl.py是一个简单任务的示例(它是一个简单的网格,其中一个位置是目标,并使用QLearning作为算法),使用base_rl运行并将打印一些显示随时间变化的奖励图表的图表。两者都不太复杂,但如果你刚开始,可能会给你一些想法。我希望这对你有帮助。如果你有更多或更具体的问题,请告诉我。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注