從價值到更好的策略
假設你已經評估完一個策略,現在知道它的價值函數。你能做得更好嗎?策略改進(policy improvement)說:可以,幾乎總是可以。在每個狀態,用 動作價值函數(action-value function)往前看一步——也就是採取每個動作、之後再遵循舊策略的價值——然後切換到看起來最好的那個動作。這個總是挑選最高價值動作的新策略,就是對那些價值而言的 貪婪策略(greedy policy)。
策略改進:在每個狀態選擇使一步前瞻價值最大的動作。
這感覺簡單到不太可信——一次只在一個狀態貪婪地切換動作,難道不會適得其反嗎?畢竟改變你在這裡的做法,會改變之後能抵達的地方?這篇的深刻結論是:它從不會適得其反。
策略改進定理
策略改進定理(policy improvement theorem)保證貪婪策略在每一個狀態都至少和原策略一樣好——在任何地方都不會更差。而且如果貪婪策略在任何地方都沒有嚴格更好,那麼這兩個策略就都已經是最佳的了。因此每一輪「先評估、再貪婪」要嘛改進策略,要嘛證明你已經完成。
策略改進定理:若貪心動作在每個狀態都不更差,則新策略處處優於舊策略。
策略迭代:評估—改進迴圈
策略迭代(policy iteration)就只是交替執行這兩個步驟,直到策略不再變化。因為確定性策略的數量有限,而每一輪都嚴格改進(否則停止),所以它會在有限次迭代內抵達 最佳策略(optimal policy)——而且次數往往出乎意料地少。
- 初始化一個任意策略。
- 策略評估:計算當前策略的價值函數(第 2 篇的掃描)。
- 策略改進:把新策略設為對該價值函數貪婪。
- 若策略沒有改變,停止——它是最佳的。否則回到步驟 2。
策略迭代:交替進行評估(E)與改進(I),策略與價值一同攀升至最優的 (π*, v*)。
廣義策略迭代
這裡是一個比 DP 本身更長壽的統合觀念。你不需要在改進之前把策略完全評估好。廣義策略迭代(generalized policy iteration, GPI)是任意評估過程與任意改進過程彼此拉扯的鬆散之舞——做幾次評估掃描、做一次部分的貪婪更新,以任何粒度反覆進行。只要兩者都持續朝一致性推進,這對組合就會收斂到最佳價值函數與最佳策略。
強化學習循環圖:智能體採取動作,環境回傳狀態與獎勵,循環往復。