Artificial intelligence Q-learning和SARSA有什么区别?
虽然我知道这是开策略,而不是关策略,但当查看他们的公式时,(对我来说)很难看出这两种算法之间有什么区别 根据书(由萨顿和巴托)。在SARSA算法中,给定一个策略,相应的动作值函数Q(在状态s和动作a中,在时间步t)即Q(st,at)可以如下更新 Q(st,at)=Q(st,at)+α*(rt+γ*Q(st+1,at+1)-Q(st,at)) 另一方面,Q-学习算法的更新步骤如下 Q(st,at)=Q(st,at)+α*(rt+γ*maxaq(st+1,a)-Q(st,at)) 也可以写成 Q(st,at)=(1-α)*Q(st,at)+α*(rt+γ*maxaq(st+1,a)) 式中,γ(γ)是贴现因子,rt是在时间步t从环境中获得的奖励 这两种算法之间的差异是因为SARSA只查找下一个策略值,而Q-learning查找下一个最大策略值吗 TLDR(以及我自己的答案) 感谢所有从我第一次问起就回答这个问题的人。我玩过Q-Learning,从经验上理解了两者的区别。所有这些都相当于您选择下一个最佳操作的方式,从算法角度来看,这可能是平均、最大或最佳操作,具体取决于您选择如何实施 另一个主要区别是这种选择何时发生(例如,在线与离线),以及这种选择如何/为什么会影响学习。如果你在2019年读到这篇文章,并且是一个动手的人,那么处理RL玩具问题可能是理解差异的最佳方式 最后一个重要的注意事项是,Suton和Barto以及Wikipedia对于下一个州的最佳/最大行动和奖励经常有混合、混淆或错误的公式表示: r(t+1) 事实上 r(t)Artificial intelligence Q-learning和SARSA有什么区别?,artificial-intelligence,reinforcement-learning,q-learning,sarsa,Artificial Intelligence,Reinforcement Learning,Q Learning,Sarsa,虽然我知道这是开策略,而不是关策略,但当查看他们的公式时,(对我来说)很难看出这两种算法之间有什么区别 根据书(由萨顿和巴托)。在SARSA算法中,给定一个策略,相应的动作值函数Q(在状态s和动作a中,在时间步t)即Q(st,at)可以如下更新 Q(st,at)=Q(st,at)+α*(rt+γ*Q(st+1,at+1)-Q(st,at)) 另一方面,Q-学习算法的更新步骤如下 Q(st,at)=Q(st,at)+α*(rt+γ*maxaq(st+1,a)-Q(st,at)) 也可以写成 Q(s
希望这能帮助任何陷入困境的人。是的,这是唯一的区别。在策略上,SARSA学习与其遵循的策略相关的操作值,而在策略下,Q-Learning学习与贪婪策略相关。在一些常见条件下,它们都收敛到实值函数,但收敛速度不同。Q-Learning的收敛速度稍慢,但有能力在改变政策的同时继续学习。此外,当与线性近似相结合时,Q-学习不能保证收敛 实际上,在ε-贪婪策略下,Q-Learning计算Q(s,a)和最大动作值之间的差值,而SARSA计算Q(s,a)和平均动作值和最大动作值的加权和之间的差值: Q-学习:Q(st+1,at+1)=maxaQ(st+1,a)
SARSA:Q(st+1,at+1)=ε·meansaq(st+1,a)+(1-ε)·maxaQ(st+1,a)你的Q学习公式中有一个索引错误。 萨顿和巴托的第148页 Q学习中的Q(st,at) 这是你的: Q-学习:Q(St,At)=Q(St,At)+a[R(t+1)+折扣*最大Q(St+1,At)-Q(St,At)] 应改为 Q-Learning:Q(St,At)=Q(St,At)+a[R(t+1)+折扣*最大Q(St+1,a)-Q(St,At)]
正如您所说,您必须找到更新等式的最大Q值。通过更改a,您将获得一个新的Q(St,At)。小心地说,给你最大Q值的a不是下一个动作。在这个阶段,你只知道下一个状态(St+1),在进入下一轮之前,你想用St+1更新St(St当我学习这一部分时,我发现它也很混乱,所以我把R.Sutton和A.G.Barto的两个伪代码放在一起,希望让区别更清楚 蓝色框突出显示两种算法实际不同的部分。数字突出显示更详细的差异,稍后解释 TL;NR:
| | SARSA | Q-learning |
|:-----------:|:-----:|:----------:|
| Choosing A' | π | π |
| Updating Q | π | μ |
其中π是ε-贪婪策略(例如,ε>0且有探索),μ是贪婪策略(例如ε==0,无探索)
| | SARSA | Q-learning |
|:-----------:|:-----:|:----------:|
| Choosing A' | π | π |
| Updating Q | π | μ |
- Sarsa使用行为策略(即代理在环境中生成经验所使用的策略,通常是epsilon贪婪策略)选择+1处的附加操作,然后使用Q(St+1,At+1)(按gamma贴现)作为更新目标计算中的预期未来回报
- Q-learning不使用行为策略来选择+1处的附加操作。相反,它将更新规则中的预期未来回报估计为maxA Q(St+1,A)。此处使用的max运算符可被视为“遵循”完全贪婪的策略。代理实际上不是