我是RL新手,我做得最好的是openAI gym中的CartPole。在CartPole中,API自动提供了给定动作的奖励。当我只有像素数据,而没有 "魔法函数 "可以告诉我某个动作的奖励时,我应该如何决定奖励。
比如说,我想在《GTA圣安地列斯》中制作一个自动驾驶机器人。我所能获得的输入是原始像素。我怎么才能算出它某一动作的奖励呢?
你需要编造一个奖励,代理你想要的行为--这其实不是小事。
如果在屏幕的固定部分有一些代表分数的数字,那么你可以用老式的图像处理技术来读取这些数字,让这些数字成为你的奖励函数。
如果在屏幕的固定部分有一个固定比例和方向的最小地图,那么你可以用减去你的角色到目标的距离作为奖励。
如果UI中没有固定的元素可以用来代理奖励,那么你的日子就不好过了,除非你能以某种方式访问控制台的内部变量来代理奖励(例如使用你的PC的位置坐标)。