1.2 Q-Learning算法
Q-Learning算法是强化学习的一种方法,Q-Learning算法可以解决Dijkstra算法存在的一些问题。
Q-Learning算法的步骤:
Q-Learning算法的两个重要地方:一个是策略的选择。策略选择是符合一定的概率分布,策略的选择有多种方式。二是Q表的更新。在Dijkstra算法中也有一张状态值表,状态值的计算是由Dijkstra第一次执行得到一张表,同时存在一问题在状态数量多的情况下,计算量极具增加。Q-Learning算法中的Q表不是一次性计算得来的,是一次次试验不断迭代更新Q表值。在Q表不断迭代过程中,也可以利用之前的经验来加快行为状态函数的收敛。
表2.2 Q表一次迭代
状态 | 上 | 下 | 左 | 右 |
s1 | — | -1 | — | -1 |
s2 | — | -1.5 | -1 | -1 |
s3 | — | — | — | — |
s4 | — | -1 | -1.1 | -1.5 |
s5 | — | -1 | -1.5 | — |
s6 | -1 | -1 | — | -1.5 |
…… | …… | …… | …… | …… |
经过n此迭代,Q表收敛可以找到一条道终点的路径,Q表的收敛速很慢,没有次更新只能借助下一个状态,对与终点的影响需要n步迭代才能体现出来。Q-Learning在有目标反馈奖励的时候,Q表收敛速度快,会留下一条通向目标的痕迹。在无目标反馈奖励时,只有障碍物产生反馈负奖励,可能会出现阻碍最优路径。对于无人机这种环境,是没有目标函数的即没有目标点或者有多个目标点。可以设置向前移动为目标,移动的越远奖励越高,有了目标函数,Q表的收敛速度明显增快。在图2.1的环境下,设置α=0.5,γ=0.1,策略均概率选取行为,向前移动(向右)一步奖励1,其他方向奖励0,遇到障碍物奖励-5,Q表迭代一次时无人机智能体移动的示意图2.5所示:
图2.5 无人机移动示意图
这样设计虽然有利于前向移动,但不利于左右移动的行为的学习,还会在某一处前后徘徊,无法大胆的向前探索。由于无人机的特性可以禁止向后飞行,并且尽可能的保持原来的航线。回报函数离航线越远负奖励越大,每移动一步奖励-1,目标函数奖励最小。Q表迭代一次时无人机智能体移动的示意图2.6所示:
图2.6 无人机移动示意图