Sarsa算法
在给定环境的起始状态s,并且初始化策略πϵ−greedy\pi^{\epsilon-greedy}πϵ−greedy和Q值后,agent使用该策略与环境交互,产生动作a、新状态s’和奖励回馈r:
a=πϵ−greedy(s)s′,r=environment(a)a=\pi^{\epsilon-greedy}(s)\\
s',r=environment(a)a=πϵ−greedy(s)s′,r=environment(a)
在状态s’上再根据策略πϵ−greedy\pi^{\epsilon-greedy}πϵ−greedy选择动作a’:
a′=πϵ−greedy(s′)a'=\pi^{\epsilon-greedy}(s')a′=πϵ−greedy(s′)
从而生成序列信息段<s,a,r,s′,a′><s,a,r,s',a'><s,a,r,s′,a′>。根据下式对状态动作对<s,a><s,a><s,a>的Q值进行更新:
Q(s,a)=Q(s,a)+α(r+γQ(s′,a′)−Q(s,a))Q(s,a)=Q(s,a)+\alpha(r+\gamma Q(s',a')-Q(s,a))Q(s,a)=Q(s,a)+α(r+γQ(s′,a′)−Q(s,a))
再根据下式对策略π\piπ进行改进:
π(s)={argmaxa′′(Q(s,a′′)), 以概率1−ϵ随机选取动作, 以概率ϵ\pi(s)=\begin{cases}
argmax_{a''}(Q(s,a'')), \ \ \ \ \ \ \ \ \ \ \ 以概率1-\epsilon \\
随机选取动作, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 以概率\epsilon
\end{cases}
π(s)={argmaxa′′(Q(s,a′′)), 以概率1−ϵ随机选取动作, 以概率ϵ
再在<s′,a′><s',a'><s′,a′>的基础上执行以上过程,基本遵循的就是从策略改进到策略评估的不断循环。
Q-learning算法
在给定环境的起始状态s,并且初始化策略π\piπ和Q值后,agent在该策略中引入ϵ−greedy\epsilon-greedyϵ−greedy,并与环境交互,产生动作a、新状态s’和奖励回馈r:
a=πϵ−greedy(s)s′,r=environment(a)a=\pi^{\epsilon-greedy}(s)\\
s',r=environment(a)a=πϵ−greedy(s)s′,r=environment(a)
再关闭ϵ−greedy\epsilon-greedyϵ−greedy,根据原策略在状态s’上时选择动作a’:
a′=π(s′)a'=\pi(s')a′=π(s′)
从而生成序列信息段<s,a,r,s′,a′><s,a,r,s',a'><s,a,r,s′,a′>。根据下式对状态动作对<s,a><s,a><s,a>的Q值进行更新:
Q(s,a)=Q(s,a)+α(r+γQ(s′,a′)−Q(s,a))Q(s,a)=Q(s,a)+\alpha(r+\gamma Q(s',a')-Q(s,a))Q(s,a)=Q(s,a)+α(r+γQ(s′,a′)−Q(s,a))
再根据下式对策略π\piπ进行改进:
π(s)=argmaxa′′(Q(s,a′′))\pi(s)=argmax_{a''}(Q(s,a''))π(s)=argmaxa′′(Q(s,a′′))
再在<s′,a′><s',a'><s′,a′>的基础上执行以上过程,不断循环。
关系
Q-learning算法衍生自Sarsa,但是在策略评估和策略改进时的策略并不相同。Q-learning算法的出发点是:策略上引入ϵ−greedy\epsilon-greedyϵ−greedy是为了更好地评估策略本身,而不是为了最终使用,假设对所有的Q值评估精确了,策略在探索和利用中应该是完全倾向于利用的。因此Q-learning算法在评估采样时引入ϵ−greedy\epsilon-greedyϵ−greedy,在改进策略时关闭ϵ−greedy\epsilon-greedyϵ−greedy。