動態規劃
動態規劃(dynamic programming,DP)
當你完全掌握一個遊戲的規則——每個結果的機率、每個動作給的獎勵——其實不必真的去玩,就能算出最佳策略。動態規劃(dynamic programming)就是這樣一套方法:直接對已知的模型推理,把一個大問題(「這個狀態值多少?」)拆成許多小問題(「我下一步能到的那些狀態又如何?」)。
在強化學習裡,動態規劃就是把貝爾曼方程當成更新規則來用。你掃過每一個狀態,對每個狀態都把它後繼狀態的價值「回溯」回來,得到對自身價值更好的估計。一再重複這樣的掃描,估計就會收斂到真正的價值函數;接著對它取貪婪選擇,就得到最佳策略。策略迭代與價值迭代是兩個經典的動態規劃演算法。
麻煩在於動態規劃需要完整的模型,而且每次都要掃過所有狀態,所以它比較像是拿來對照的黃金標準,而不是能直接跑在真實機器人上的東西。強化學習的大半工作,其實就是在模型未知時,用樣本把動態規劃的答案重新找回來。
v_*(s)=\max_a\sum_{s',r}p(s',r\mid s,a)\big[r+\gamma v_*(s')\big]
貝爾曼最適方程——動態規劃要求解的一致性條件。
又稱
另見