我是这个 AI/机器学习的新手,并且正在玩一些 OpenAI Gym。在查看环境时,我遇到了Blackjack-v0
环境,这是游戏的基本实现,其中状态是玩家和庄家的手数以及玩家是否有可用的 A。这些动作只会被击中或站立,如果玩家获胜,可能的奖励为 1,如果玩家失败,则为 -1,如果是平局,则为 0。
所以,这让我开始思考这个游戏的更真实的环境/模型会是什么样子,考虑到当前的平衡和其他因素,并且有多种动作,比如下注 1-10 欧元和击中或站立。
这让我想到了我的实际问题:
- 据我了解,在神经网络中(我猜我还不是很好)输入将是状态,输出是可能的动作以及网络认为它们有多好/将会有多好。但是现在有两个不同的动作空间,适用于不同的游戏状态(下注或玩),所以有些动作是没有用的。处理这种情况的正确方法是什么?
我猜一个答案是如果网络猜测到一个无用的动作,则给予某种负奖励,但在这种情况下,我认为奖励应该是实际赌注(负奖励)和实际获胜(如果有的话)。因此,这将导致游戏如何进行的一些偏差,因为它应该以一定数量的余额开始,如果余额为 0 或在指定数量的回合之后结束。
我想,限制时间步长也不是一种选择,因为它应该限制在回合中,因此,例如,它不会在下注步骤之后结束。
因此,对于一个无用的步骤,奖励将为 0,状态将保持不变,但是对于神经网络,它采取多少无用的步骤并不重要,因为它对实际结果没有任何影响。
推论问题:
- 应该分成两个神经网络吗?一个用来投注,一个用来玩?