强化学习(五) - 无模型学习(Sarsa、Q-Learning)

上一节主要讲了Monte-Carlo learning,TD learning。这两个方法都是在给定策略下来估计价值函数V(s)。
但是我们的目标是想得到最优策略

基于模型的策略优化过程分为策略评估和策略改进。从一个策略 π 和 v(s) 函数开始,先利用当前策略 π估算v值,然后通过v值来更新策略 π。交替迭代,最后会收敛到最优策略和最优价值函数。

那么对于模型未知的情况,是否还能使用呢?答案是不能。

模型未知的情况下无法知道当前状态的所有可能的后续状态,进而无法确定在当前状态下应该采取哪个动作是最好的。解决这个问题是利用Q(s,a)来代替V(s)。这样即使不知道当前状态的所有后续状态,我们也可以根据已有的动作来选择
这样策略评估与策略改进就变成:从一个策略 π 和初始的 Q(s,a) 开始,先利用当前策略 π 估算q值,然后通过q值来更新策略 π。交替迭代,最后会收敛到最优策略和最优价值动作函数。


不过利用Q(s,a)来代替V(s)有一个问题是,因为不知道当前状态能够执行的所有动作,所以只选择当前最好的动作可能会陷入局部最优。 所以需要偶尔去尝试新的动作,这就是探索(exploration)。


Sarsa、Q-Learning

蒙特卡罗学习需要完整的episode才能更新,而TD learning可以做到单步更新。Q-learning和sarsa都是基于TDL来更新当前行为值函数的。
唯一不同的是在Q-learning中,行动策略(产生数据的策略)和要评估的策略不是一个策略,因此称之为异策略(off-policy)。而在sarsa中,正好相反,也就是行动策略(产生数据的策略)和要评估的策略是一个策略,称之为同策略(on-policy)

Sarsa(on-policy)

处于状态 s’ 时,利用 e-greedy 选择了用于更新Q值的a’,而且在下一轮循环也采取了该动作 a’。
即:用于计算的动作a’,就是下一步采取的动作
在这里插入图片描述

Q-Learning(off-policy)

处于状态 s’ 时,计算了在 s’ 时要采取哪个 a’ 可以得到最大的 Q 值,但在下一轮循环时并没有采取这个用于计算的动作 a’,而是重新根据 e-greedy 选的 a。
即:用于计算的动作a’,并不是下一步采取的动作
在这里插入图片描述
off-policy方法行为策略和估计策略是分离的,行为策略是用来做决策的,也就是选择下一步动作的,而估计策略是确定的,例如贪心策略,用来更新值函数的。这种分离的优点是估计策略是确定的,同时行为策略能够持续抽样所有可能的动作。




参考:
强化学习(五):Sarsa算法与Q-Learning算法
时间差分方法Q-learning和sarsa的区别



        </div>

猜你喜欢

转载自blog.csdn.net/wei2white/article/details/83745797
今日推荐