首先,Q-learning与SARSA的最大不同就是更新Q表的方式不同。具体地,表现如下:
1)首先理解什么是Q表?
Q表是指构建一个表格,行:某时刻的状态s(state),列:该时刻该状态下可能采取的所有动作a(action),Q(s,a)的值是该状态下,采取该动作能够获得收益的期望,并通过每个动作带来的奖赏更新Q表,如下表格所示:
Q表 |
a1 |
a2 |
… |
an |
s1 |
Q(s1,a1) |
Q(s1,a2) |
… |
Q(s1,a1) |
s2 |
Q(s2,a1) |
Q(s2,a2) |
… |
Q(s2,an) |
… |
… |
… |
… |
… |
sm |
Q(sm,a1) |
Q(sm,a2) |
… |
Q(sm,an) |
2)Q-learning采用的off-policy,SARSA采用的是on-policy,两者的区别如下:
此处引用别人的一句解释:“因为强化学习的训练样本是需要agent与环境(仿真环境)交互获得的,如果直接使用学习获得的当前最优策略(目标策略,target policy)当做与环境交互获得训练样本的策略(行为策略,behavior policy),那么这种方法就是on-policy的;如果目标策略与行为策略不同,则是off-policy的。”
参考: https://www.zhihu.com/question/57159315/answer/385357567
具体的算法表现更加直观:
故Q-learning更新Q表的公式:
Q(S,A)←Q(S,A)+α[R+γmaxaQ(S′,a)−Q(S,A)];
SARSA更新Q表的公式:
Q(S,A)←Q(S,A)+α[R+γQ(S′,A′)−Q(S,A)];
3)为什么引入马尔可夫决策过程(Markov Decision Process,MDP)?
参考:https://www.cnblogs.com/pinard/p/9426283.html
实际环境模型中,做出某一个状态s的概率不仅跟上一次的状态有关,也与上上次,甚至一开始的状态都有关系,所以这样的建模求解方式太过复杂,于是简化模型,假设此刻的状态s仅与上一个状态有关,即为马尔可夫决策过程。
利用MDP会让代理(agent)接收reward,则在时刻t的将来回报为
Rt=k=0∑Tγkrt+k+1,
γ∈(0,1]为折扣因子。
此时的MDP的价值函数为:
Rt在策略π下的期望,即
qπ(s,a)=Eπ(Gt∣St=s,At=a)=Eπ(Rt+1+γRt+2+γ2Rt+3+...∣St=s,At=a)
利用贝尔曼方程有:(一个状态的价值由该状态的奖励以及后续状态价值按一定的衰减比例联合组成)
qπ(s,a)=Eπ(Rt+1+γqπ(St+1,At+1)∣St=s,At=a)
总结:MDP的作用是为了简化模型,贝尔曼方程的引用是为了呈现t时刻与t+1时刻的价值函数的关系。
【以上为参考后总结,附有相关链接】