在gym里有个自动驾驶的模拟器,它的任务是把乘客从一个地方接起,在另一个地方放下,在这个过程中 需要小车至少遵守下面三个规则:
在正确的地点下车
尽量用最短的路径
不要出事故
如果要用强化学习来解决这个问题,需要明确state,action,reward是什么:
在这个过程会让小车自己学会判断在每个state要采取什么action,小车会在环境中不断地尝试来找到最优策略,这个学习过程的依据就是reward,如何设置奖励机制呢?
因为希望小车最后达成的是成功地将顾客在正确的位置放下,所以这时的奖励要有很大的正奖励
如果在错误位置将顾客放下,就要有惩罚
当小车在每个state上的方向错误时,会有轻微的惩罚,这样的惩罚会让小车迟到,那么有助于它找到最短路径
state 是指小车可能经过的位置,例如整个环境是个 5x5 的网格,在这个格子上有四个位置可以接送顾客,R, G, Y, B or[(0,0), (0,4), (4,0), (4,3)]
例如有个顾客想从 y 到 r,目的地是4个,顾客的位置是5=4个目的地+1个是在车内,所以小车的状态空间是 5×5×5×4=500 个。
action 空间有6个,在每个state上面可以向四个方向走,还有接顾客和放下顾客两个。
在网格中的四边是墙,如果小车在四周撞到了墙会得到-1的惩罚,这样让小车学着不要撞墙。
参考资料:
https://www.learndatasci.com/tutorials/reinforcement-q-learning-scratch-python-openai-gym/
网友评论