我为类似于http://curvefever.io/的游戏实施了一个自定义的openai健身房环境,但采取了谨慎行动而不是连续行动。因此,我的代理人可以在每个步骤中进入左/上/右/下四个方向中的一个。然而,其中一个动作总会导致代理人崩溃,因为它无法反转"。
目前我只是让代理人采取任何行动,如果它做出无效动作就让它死掉,希望它最终会学会在那个状态下不采取行动。然而,我已经读过,可以设置使非法移动为零的概率,然后采样动作。还有其他方法可以解决这个问题吗?
答案 0 :(得分:1)
您可以尝试通过2次更改来解决此问题:
1:给出当前方向作为输入,并且如果它移动不会使其崩溃则给予+0.1的奖励,并且如果它向后移动直接使其崩溃则给予-0.7。
2:如果您使用神经网络和Softmax函数作为最后一层的激活函数,则在将其提供给Softmax函数之前,将神经网络的所有输出乘以正整数(置信度)。它可以在0到100的范围内,因为我有超过100的经验不会影响太多。更多整数是代理人对给定状态采取行动的信心越大。
如果你没有使用神经网络或说深度学习,我建议你学习深度学习的概念,因为你的游戏环境看起来很复杂,而神经网络会给你带来最好的结果。
注意:这将花费大量时间。所以你必须等待足够的训练算法。我建议你不要急着让它训练。我玩游戏,真的很有趣:)我希望为游戏制作AI :)