「最優」是什麼意思
我們終於能精確地說出強化學習到底想找到什麼。一個策略是最優的(optimal),當沒有任何別的策略能從任何狀態取得更高的期望回報。值得注意的是,在有限的馬可夫決策過程(MDP)中,這樣的策略必定存在,而且有唯一的最優價值函數(optimal value function)V*(與 Q*)為所有最優策略所共享。最優策略(optimal policy)便容易讀出:在每個狀態,採取使 Q* 最大的動作——也就是相對於最優價值的貪婪選擇。
贝尔曼最优方程定义了 V*:求解 MDP 就是找到这个值,最优策略随之自然得出。
貪婪改進:依價值函數行動
假設你手上有某個當前策略 π 的價值函數——不是最優的,就只是你現在擁有的。關鍵的一步在此:建立一個新策略,相對於 Q_π 貪婪地行動,依你當前的估計挑選最好的動作。直覺上,你是在說「就這一步,做我目前知識所建議的最好的事,然後照舊繼續」。這個新的貪婪策略,就是改進的原料。
贪婪行动:改进后的策略在每个状态都选择 Q_π 值最高的动作。
策略改進定理
貪婪地行動真的有幫助,還是可能適得其反?策略改進定理(policy improvement theorem)給出了保證:相對於 V_π 的貪婪策略絕不會比 π 差,而且除非 π 本來就已是最優,否則嚴格更好。這是強化學習的理論基石——它擔保「先評估、再貪婪行動」是一座只升不降的階梯。優勢讓道理變得鮮明:貪婪改進挑的是優勢為正的動作,而那依定義就勝過策略當前的基線。
廣義策略迭代
把這兩塊放進一個迴圈,你就得到強化學習的主旋律。評估當前策略以取得其價值,接著對那個價值貪婪行動來改進策略;反覆進行。這支雙人舞——價值追著策略、策略追著價值——就是廣義策略迭代(generalized policy iteration,GPI),而幾乎每個演算法都是它的一個特例。
- 從任意策略 π 出發。
- 評估:對當前的 π 計算(或估計)V_π / Q_π。
- 改進:把 π 設成相對於那些價值貪婪的策略。
- 重複。評估與改進拉向同一個不動點——最優策略。
交互式网格世界,反复的评估与贪婪改进步骤收敛到最优策略。
各演算法如何實現 GPI
各種變體的差別,只在於改進前把評估做到多徹底。策略迭代(policy iteration)完整評估後才改進。價值迭代(value iteration)在兩次改進之間只做一次貝爾曼最優掃描——把兩步壓成一步。動態規劃(dynamic programming)在已知模型時這麼做;蒙地卡羅與時間差分法在模型未知時,改從抽樣得到的經驗來做;而策略梯度法則做「柔性」版本,一次一點地把策略推向高優勢的動作。
看見這個樣式,正是整個這條學習軌跡的報酬。回報定義目標、價值函數衡量進展、貝爾曼方程式讓價值可計算,而 GPI 則把衡量轉化為一個穩定改進的策略。你日後遇見的每一個演算法——從 DQN 到 PPO——都是運行這同一個迴圈的某種特定方式。