JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

價值函數:評估狀態、動作與策略

V 評估狀態、Q 評估動作,而優勢函數則分離出一個動作勝過基線多少。

價值=從這裡起算的期望回報

策略告訴智能體該做什麼;價值函數則告訴它處境有多好。其定義正是我們在第 1 篇搭起的橋:一個狀態的價值,就是若你從那裡出發、並依循你的策略所將收集到的期望折扣回報。價值把一整片糾結的未來,壓縮成每個狀態一個數字——恰恰是智能體比較選項時所需的總結。

狀態價值函數 V

狀態價值函數(state-value function)V_π(s) 是從狀態 s 出發、之後依循策略 π 的期望回報。V 高代表「是個好位置」。一個帶有制勝攻勢的西洋棋局面價值高;少了一個皇后的局面價值低——不論輪到誰走。由於 V 依賴於 π,強策略與弱策略會給同一個狀態指派不同的價值。

在网格世界中探索:每个格子的价值反映从该处出发的期望回报——高价值标记着'值得待的好位置'。

网格世界中各格子按其状态价值着色,展示Q学习估计的期望回报。

動作價值函數 Q

我們常想要更細的資訊:不只是「這個狀態有多好?」,而是「在這個狀態採取這個動作有多好?」那就是動作價值函數(action-value function)Q_π(s, a)——在狀態 s 採取動作 a、其後依循 π 的期望回報。Q 是價值法強化學習的主力:若你有了 Q_π,選最好的動作易如反掌——挑 Q 最大的那個 a。這正是 Q 學習(Q-learning)與 DQN 直接估計 Q 的原因。

V 與 Q 緊密相連:一個狀態的價值,是其各動作價值、依策略採取每個動作的頻率加權後的平均。反過來,Q 則是一個獎勵,加上你落腳之處的折扣 V。

V_\pi(s)=\sum_{a}\pi(a\mid s)\,Q_\pi(s,a),\qquad Q_\pi(s,a)=\sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma\,V_\pi(s')\bigr]

V 是按策略加权的动作价值平均,而 Q 是一步奖励加上落点状态的折扣价值。

優勢:比平均好多少?

把 V 從 Q 中減去,你就得到優勢(advantage):A(s, a) = Q(s, a) − V(s)。它回答的問題比單看 Q 更銳利:「在這個狀態,這個動作比我平常會做的更好還是更差?」優勢為正代表「高於該狀態的基線——多做這個」;為負則代表「低於平均——少做」。優勢是行動者–評論者(actor-critic)與策略梯度法天然的學習訊號,因為它剝除了狀態本身有多好,只分離出該動作的貢獻。

A_\pi(s,a)=Q_\pi(s,a)-V_\pi(s)

优势函数从动作价值中减去状态的基线价值,提取出某个动作比平均水平好多少。

基線:扣掉你早已知道的部分

為什麼要減去 V 呢?因為變異數。原始回報雜訊很大;從同一個好狀態出發的兩次運行可能都顯得「很高」,即使其中一個動作明顯更好。基線扣除(baseline subtraction)的想法,是把每個回報拿去和一個參考值——通常是 V(s)——相比,於是我們對差值、而非絕對水準作反應。關鍵在於:扣除一個不依賴動作的基線,會讓策略梯度保持無偏,同時大幅削減其變異數——這也是幾乎每個現代方法都使用基線(並用 GAE 來把優勢估計好)的原因。

  1. 估計 V(s):在當前策略下,該狀態的期望回報。
  2. 估計 Q(s, a):在那裡實際採取動作 a 的期望回報。
  3. 優勢 = Q(s, a) − V(s):該動作相對於狀態基線的優勢。
  4. 把策略推向優勢為正的動作,並遠離為負的。

回顧