我目前正在学习强化学习,我已经构建了一个21点游戏。
在游戏结束时有一个明显的奖励(支付),但是一些行为并不直接导致奖励(命中次数为5),这应该得到鼓励,即使最终结果是负面的(松手)。
我的问题是,这些行为应该得到什么回报?
我可以硬编码一个积极的奖励(赢得手的奖励的一小部分),因为点击不会导致崩溃,但我感觉我没有正确地处理问题。
此外,当我为胜利分配奖励时(在牌结束后),我更新对应于最后一个动作/状态对的Q值,这似乎不是最优的,因为这个动作可能没有直接导致胜利。
我认为的另一个选择是将相同的结束奖励分配给序列中的所有动作/状态对,但是,应该鼓励某些动作(比如在计数<10时命中),即使这会导致失去一只手。
注意:我的最终目标是将deep-RL与LSTM结合使用,但我从q-learning开始。
发布于 2020-02-13 06:04:23
我想说的是,从简单的开始,使用游戏规定的奖励。如果你赢了,你将得到+1的奖励,如果你输了-1。
看起来你想奖励一些基于人类知识的行为。也许可以从使用epsilon greedy开始,让代理发现所有操作。使用折扣超参数,它决定了未来奖励的重要性,看看它是否有一些有趣的策略。
这个博客是关于RL和Blackjack的。https://towardsdatascience.com/playing-blackjack-using-model-free-reinforcement-learning-in-google-colab-aa2041a2c13d
https://stackoverflow.com/questions/59994850
复制相似问题