幾句話總結一個算法之Q-Learning與Sarsa

  • 與Policy Gradients的不一樣之處在於,這兩個算法評估某個狀態s執行某個動做a的指望獎勵,即Q(s,a)算法

  • Q(s,a) 有兩種方法計算方法,第一種直接查表或者模型預估,Q(s, a) = checkTable(s, a),這個在訓練初期是很是不許確的;第二種方法是經過"一步蒙特卡洛"方法獲取,假設執行a後狀態是s',且s'執行了動做了a',Q’(s, a) = 當前狀態獎勵 + 衰減係數 * Q(s',a'),近似於一個動態規劃問題,當遊戲結束,就只有當前狀態獎勵。但與動態規劃不一樣的是,這個遞歸關係不會等到遊戲結束以後才更新,而是走一步更新一次。學習

  • Q(s, a)表示了模型根據歷史數據的預測獎勵,而Q'(s,a)表示對當前行動的預測獎勵。一個好的模型,Q(s,a) 和 Q'(s,a)應該儘可能接近,同時又爲了迭代的穩定性,新的Q(s, a) 更新爲老Q(s,a)和Q'(s,a)的一個加權平均值(學習率控制)。spa

  • 由於這種方法預估的是獎勵值而不是機率分佈,因此通常採用獎勵最大的動做,這個訓練帶來了問題,由於在某些狀態下可能永遠只選擇某個動做,要解決這個方法,須要引入epsilon-greedy,即以大機率選擇最大獎勵動做,保證探索的聚焦性,同時以小几率隨機選擇某個動做,保證探索空間完備性。htm

  • 因爲引入了epsilon-greedy,在Q’(s, a) 迭代公式裏,s'該選擇哪一個動做a‘來計算出現兩種選擇,是選擇最大獎勵動做,仍是和當前s的選擇動做的策略保持一致以小几率隨機選擇某個動做?遞歸

  • 若是在s’選擇最大獎勵動做的貪心策略,就是Q learning,這個叫異策略(off-policy),若是是和當前s的選擇動做的策略保持一致,就是 Sarsa,這種也叫同策略(on-policy)遊戲

 

具體理解的例子能夠參考:http://mnemstudio.org/path-finding-q-learning-tutorial.htmget

相關文章
相關標籤/搜索