我试图训练一个强化学习智能体,使用Unity-ML来玩一个无休止的跑步游戏。
游戏很简单:障碍从侧面逼近,智能体必须在正确的时机跳过它。
作为观察者,我知道下一个障碍物的距离。可能的动作是0-空闲;1-跳跃。游戏时间越长,奖励越多。
不幸的是,智能体无法学会克服第一个可靠的障碍。我猜这是因为这两个动作的不平衡太高了,因为理想的策略应该是大多数时候什么都不做(0),只在非常特定的时间点跳(1)。此外,跳跃期间的所有动作都是无意义的,因为智能体不能在空中跳跃。
我如何改进学习,使其仍然收敛?有什么建议要看一下吗?
当前培训师配置:
EndlessRunnerBrain:
gamma: 0.99
beta: 1e-3
epsilon: 0.2
learning_rate: 1e-5
buffer_size: 40960
batch_size: 32
time_horizon: 2048
max_steps: 5.0e6谢谢!
发布于 2018-07-16 23:47:31
如果看不到用于强化学习算法的确切代码,就很难说出来。以下是一些值得探讨的步骤:
Academy对象的Frameskip属性来避免它的第一个obstacle.time_horizon和max_steps为游戏提供了足够的跑道来完成一集吗?希望这对你有所帮助,并祝你好运!
https://stackoverflow.com/questions/51348410
复制相似问题