基本概念
Sarsa
Sarsa算法与Q-Learning算法极为相似,‘sarsa’五个字母的含义即s(当前状态),a(当前行为),r(奖励),s(下一步状态),a(下一步行为),也就是说我们在进行这一步操作时已经想到当前s对应的a,并且想好了下一个s’和a’。Sarsa的使用的数学模型如下:
Sarsa算法的伪代码如下:
Q-learning和Sarsa的区别:
Q-learning算法和Sarsa算法都是从状态s开始,根据当前的Q-table使用一定的策略( ϵ − g r e e d y \epsilon-greedy ϵ−greedy)选择一个动作 a ′ a' a′,然后观测到下一个状态 s ′ s' s′,并再次根据Q-table选择动作 a ′ a' a′。只不过两者选取a’的方法不同。根据算法描述,在选择新状态 s ′ s' s′的动作 a ′ a' a′时,Q-learning使用贪心策略( ϵ − g r e e d y \epsilon-greedy ϵ−greedy),即选取值最大的 a ′ a' a′,此时只是计算出哪个 a ′ a' a′可以使 m a x Q ( s ′ , a ∗ ) maxQ(s',a^*) maxQ(s′,a∗)取到最大值,并没有真正采用这个动作 a ′ a' a′;而Sarsa则是仍使用 ϵ − g r e e d y \epsilon-greedy ϵ−greedy 策略,并真正采用了这个动作 a ′ a' a′ 。