Q 学习二十一点,奖励功能?

数据挖掘 强化学习
2021-10-05 18:29:13

我目前正在学习强化学习,并且已经建立了一个二十一点游戏。

游戏结束时有明显的奖励(支付),但有些动作不会直接导致奖励(数到 5),即使最终结果是否定的(输掉一手牌),也应该鼓励这种做法.

我的问题是这些行为应该得到什么奖励?

对于不会导致失败的击球,我可以硬编码一个积极的奖励(赢得一手牌的奖励的一部分),但感觉好像我没有正确解决问题。

此外,当我为获胜分配奖励时(在牌局结束后),我会更新与最后一个动作/状态对对应的 q 值,这似乎不是最理想的,因为这个动作可能不会直接导致获胜。

我认为的另一种选择是为序列中的所有动作/状态对分配相同的最终奖励,但是,即使会导致输手,也应该鼓励某些动作(例如击中计数 <10)。

注意:我的最终目标是将深度强化学习与 LSTM 结合使用,但我是从 q-learning 开始的。

2个回答

这取决于项目的目标。项目可以是从“纯”到“应用”的范围:

一个完全纯粹的项目只提供最少的信息。在二十一点奖励信号的情况下,它只会在每手牌结束时向代理提供赢、输或平局信息。

一个应用较多的项目可以在每手牌之前、期间或之后向代理提供更多信息。

一个应用项目很可能会更好地开始训练,更快地学习,并以更高的速度结束训练。但是,应用项目不太可能提供有关系统特定能力的证据。

对于纯项目和应用项目,奖励信号的数量和类型都是一个超参数,最好通过经验实验进行调整。

如果您包含额外的规则/“提示”,例如为计数 <10 提供奖励,则您正在添加专家知识。如果有足够的比赛,你的预期回报应该会更高,“正确”打球。您是否在算法中使用资格跟踪?