1.3 多步Q-Learning算法
Q-Learning一步步更新Q表,收敛速度慢,就是在当前状态下探测后序状态对当前状态的影响,若可以得到n步状态的评估,可以加速当前状态的收敛。修改Q(s,a)表的更新公式,
从公式中可以看出来由原来的学习一步变成要学习n步,这n步才使用贪婪策略来预测未来n步每一步状态的行为进行学习,这样可以探索更远距离的状态对当前状态的影响,更利于对当前状态的评价,n的取值不可太大,不然就接近TD算法,需要对完整序列进行计算,效率低。如此更新还存在当未来状态未被智能体发现时,只有预测与环境行进n此交互才能计算,并且计算无意义。这是前向更新需要预测未来状态,后向更新只需要记录进过的状态、行为及回报就可以更新。只需要在Q-Learning算法中加入后向更新函数就可以。在状态S执行Q-Learning算法b步骤后,遍历记录的之前状态执行更新,记录之前状态获得回报,更新
直至之前的n步更新:
与Q-Learning算法的更新方式与了一些区别,不再使用贪婪策略进行需要下一状态的预测,因为这是已经发生了的行为,可直接使用。这是使用向后更新,在这Q-Learning算法可以不必执行借助预测下一步状态的Q(s,a)更新,即可去掉b步骤,此算法便是Sarsa(γ)算法。从更新方式可以看出与Sarsa算法的相似,所以称为Sarsa(γ)算法,Sarsa算法在Q(s,a)表更新时不用预测下一步状态的行为,直接使用当前状态的行为。