一、SARSA算法
这章木有神马好讲得啦,Q Learning 与 SARSA算法的主要区别在于Q[state,action]的更新函数不同,具体可见code。
另外,Q Learning属于off-policy 算法,即它在更新Q函数时,所用的Q[new_state,:].max() 即 max_action,在new_state下,不一定被智能体用到;而SARSA属于on-policy算法,即它在更新Q函数时,所用的Q[new_state,new_action]一定会在new_state下,被智能体所用到。
智能体在走有陷阱的迷宫时,用Q Learning算法可以获得宝藏,而用SARSA算法则不能,原因在于,Q Learning在做action的时候更激进,更大胆(即其更新Q[state,action]时用的是Q[new_state,:].max()),而SARSA在做action的时候更谨小慎微(即其更新Q[state,action]时用的是Q[new_state,n_action]);