RL是一個序列化決策過程,核心思想是通過與環境的不斷交互學習獲得最大回報;
大部分RL方法都是基於MDP的;MDP的本質是獲得一個可以使累計收益最大化的策略,並使用該策略選擇最佳動作;
動態規划是RL中的一個關鍵技術,適用於RL中已知模型求解最優策略的特殊情況,主要有 策略迭代 和 值迭代 兩種方法;
(RL中通常是不知道 獎勵值、轉移的新狀態及狀態轉移概率 的,往往采用 蒙特卡洛 和 時序差分 的方法。蒙特卡洛方法需要采樣一次完整的決策過程才可以對過程中的決策動作更新Q值,計算量較大,計算不方便,不能單步的改進動作Q值, 因此我們往往采用時序差分的方法,如Q-learning和Sarsa方法);
1. 策略迭代:
以某種策略開始,計算當前策略下的值函數;依據值函數更新策略,再依據更新后的策略更新值函數(需保證每個狀態的值函數都收斂后才更新策略);直到下一個狀態的值函數與前一個狀態的值函數不再發生變化;
策略迭代花費了大量時間進行策略評估的過程,但也易於證明其收斂性;
2. 值迭代:
為了縮短策略迭代過程中策略評估的時間,可將值迭代理解為策略迭代的改進版本;
策略迭代每次需要值函數完全收斂的情況下才進行策略更新,將對策略評估的要求放低,以此提升迭代速度;
改進方法:使用貝爾曼方程,將策略改進視為價值改進,讓策略函數與價值函數同時收斂,每一步求取最大的值函數,具體迭代公式如下:
對當前狀態s,對每一個可能的動作a都計算才去這個動作后下一個狀態的期望值,將最大的期望值作為當前狀態的價值函數,直到收斂;
與策略迭代相比,沒有等到狀態價值函數收斂再更新策略,而是根據貪心法尋找最優價值函數,值迭代的過程不會對應任何明確的策略;
值迭代是根據狀態期望值選擇動作,而策略迭代是先估計狀態值,再更新策略;