0

我已经为一个类似于http://curvefever.io/的游戏实现了一个自定义的 openai 健身房环境,但是使用谨慎的操作而不是连续的操作。所以我的代理可以在每一步中向左/上/右/下四个方向之一前进。然而,这些动作之一总是会导致代理自己崩溃,因为它不能“逆转”。

目前我只是让代理采取任何行动,如果它采取无效行动就让它死亡,希望它最终会学会在那种状态下不采取那种行动。但是,我读过可以将非法移动为零的概率设置为,然后对动作进行采样。有没有其他方法可以解决这个问题?

4

1 回答 1

1

您可以尝试通过 2 个更改来解决此问题:

1:将当前方向作为输入,如果采取不使其崩溃的移动,则可能给予 +0.1 奖励,如果向后移动直接使其崩溃,则给予 -0.7。

2:如果您使用神经网络和 Softmax 函数作为最后一层的激活函数,则将神经网络的所有输出乘以一个正整数(置信度),然后再将其传递给 Softmax 函数。它可以在 0 到 100 的范围内,因为我的经验超过 100 不会有太大影响。整数越大,代理对给定状态采取行动的信心就越大。

如果你不使用神经网络或者说,深度学习,我建议你学习深度学习的概念,因为你的游戏环境看起来很复杂,神经网络会给出最好的结果。

注意:这将花费大量时间。所以你必须等待足够的时间来训练算法。我建议你不要着急,让它训练。我玩了这个游戏,它真的很有趣 :) 我希望为游戏制作 AI :)

于 2017-11-07T09:42:55.250 回答