動態規劃

動態規劃(dynamic programming,DP)

當你完全掌握一個遊戲的規則——每個結果的機率、每個動作給的獎勵——其實不必真的去玩,就能算出最佳策略。動態規劃(dynamic programming)就是這樣一套方法:直接對已知的模型推理,把一個大問題(「這個狀態值多少?」)拆成許多小問題(「我下一步能到的那些狀態又如何?」)。

在強化學習裡,動態規劃就是把貝爾曼方程當成更新規則來用。你掃過每一個狀態,對每個狀態都把它後繼狀態的價值「回溯」回來,得到對自身價值更好的估計。一再重複這樣的掃描,估計就會收斂到真正的價值函數;接著對它取貪婪選擇,就得到最佳策略。策略迭代與價值迭代是兩個經典的動態規劃演算法。

麻煩在於動態規劃需要完整的模型,而且每次都要掃過所有狀態,所以它比較像是拿來對照的黃金標準,而不是能直接跑在真實機器人上的東西。強化學習的大半工作,其實就是在模型未知時,用樣本把動態規劃的答案重新找回來。

v_*(s)=\max_a\sum_{s',r}p(s',r\mid s,a)\big[r+\gamma v_*(s')\big]

貝爾曼最適方程——動態規劃要求解的一致性條件。

又稱
DP