我需要一些帮助来解决使用Q学习算法的问题。
问题描述:
我有一个火箭模拟器,其中火箭正在采取随机路径并且有时也会崩溃。火箭有3种不同的发动机,可以开启或关闭。根据激活的发动机,火箭飞向不同的方向。
可以打开/关闭发动机的功能
任务:
构建Q-learning控制器,将随时转向火箭。
读取火箭角度的传感器可用作输入。
我的解决方案:
我有以下状态:
我还有以下行动:
以下奖励:
角度= 0,奖励= 100 所有其他角度,奖励= 0
问题:
现在问题是,这是奖励和状态的好选择吗?我能改进我的解决方案吗?从其他角度获得更多奖励会更好吗?
提前致谢
答案 0 :(得分:4)
16州x 7行动是一个非常小的问题。
其他角度的奖励将帮助您更快地学习,但可以根据您的动态创建奇怪的行为。
如果你没有动量,你可以减少状态数量,这将加快学习速度并减少内存使用量(已经很小)。要找到最佳状态数,请尝试减少状态数,同时分析多个游戏中的奖励/时间步长等指标,或多个游戏的平均误差(通过起始角度标准化)。某些州的陈述可能比其他陈述更好。如果没有,请选择收敛最快的那个。你的小Q表应该相对便宜。
如果你想快速学习,你也可以尝试Q-lambda或其他一些修改的强化学习算法来利用时间差异学习。
编辑:根据您的动态,这个问题实际上可能不适合作为马尔可夫决策过程。例如,您可能需要包括当前的轮换率。
答案 1 :(得分:2)
尝试将较小的奖励放在所需状态旁边的状态上。这将使您的代理人学会更快地上学。