3

我需要一些帮助来解决使用 Q 学习算法的问题。

问题描述:

我有一个火箭模拟器,其中火箭走的是随机路径,有时也会坠毁。火箭有 3 种不同的引擎,可以开启或关闭。根据启动的发动机,火箭会飞向不同的方向。

提供关闭/打开引擎的功能

在此处输入图像描述

任务:

构造一个始终朝上的Q-learning控制器。

读取火箭角度的传感器可作为输入。

我的解决方案:

我有以下状态:

在此处输入图像描述

我还有以下操作:

  • 所有引擎关闭
  • 左引擎开启
  • 右引擎开启
  • 中置引擎开启
  • 左右开
  • 左边和中间
  • 右边和中间

以及以下奖励:

角度 = 0,奖励 = 100 所有其他角度,奖励 = 0

问题:

现在问题来了,这是奖励和状态的一个好的选择吗?我可以改进我的解决方案吗?其他角度有更多的奖励会更好吗?

提前致谢

4

2 回答 2

4

16 个状态 x 7 个动作是一个非常小的问题。

其他角度的奖励将帮助您更快地学习,但之后可能会根据您的动态创建奇怪的行为。

如果你没有动力,你可能会减少状态的数量,这将加速学习并减少内存使用(这已经很小)。要找到最佳状态数,请尝试减少状态数,同时分析多个游戏的奖励/时间步长等指标,或多个游戏的平均误差(通过起始角度标准化)。一些状态表示可能比其他状态表现好得多。如果不是,请选择收敛速度最快的那个。这对你的小 Q 表来说应该相对便宜。

如果你想快速学习,你也可以尝试 Q-lambda 或其他一些改进的强化学习算法来利用时间差异学习。

编辑:根据您的动态,此问题实际上可能不适合作为马尔可夫决策过程。例如,您可能需要包括当前的旋转速率。

于 2013-06-11T20:26:08.540 回答
2

尝试将较小的奖励放在所需状态旁边的状态上。这将使您的代理学会更快地上升。

于 2013-07-10T21:00:09.913 回答