Qlearning - 定义状态和奖励

时间:2013-06-11 17:00:39

标签: machine-learning reinforcement-learning q-learning reward

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

问题描述:

我有一个火箭模拟器,其中火箭正在采取随机路径并且有时也会崩溃。火箭有3种不同的发动机,可以开启或关闭。根据激活的发动机,火箭飞向不同的方向。

可以打开/关闭发动机的功能

enter image description here

任务:

构建Q-learning控制器,将随时转向火箭。

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

我的解决方案:

我有以下状态:

enter image description here

我还有以下行动:

  • 关闭所有引擎
  • 左侧引擎
  • 右引擎
  • 中间引擎
  • 左右开启
  • 左上和中间
  • 正确和中间

以下奖励:

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

问题:

现在问题是,这是奖励和状态的好选择吗?我能改进我的解决方案吗?从其他角度获得更多奖励会更好吗?

提前致谢

2 个答案:

答案 0 :(得分:4)

16州x 7行动是一个非常小的问题。

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

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

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

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

答案 1 :(得分:2)

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