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

獎勵、回報與折扣因子

獎勵是某一步的一個數字。回報則是整個故事。折扣因子決定智能體願意把未來放在心上多少。

獎勵與回報的差別

獎勵是環境在每一步交出來的單一數字——比方說,保持直立 +1、跌倒 −100。它本身很短視:分不出某一步究竟是漂亮的鋪陳,還是代價高昂的失誤。智能體真正在乎的是回報(return):從現在直到結束所收集到的獎勵。一步是一格畫面;回報是整部電影。

這道落差正是強化學習之所以困難的全部原因:現在的一步好棋,可能要等二十步之後才開花結果。要最佳化的是回報——而不是下一個獎勵——這就是強化學習與貪婪的「只看一步」思維的分水嶺。智能體要最大化的正式目標,是期望回報(expected return),也就是把環境中所有隨機性都平均掉之後的回報。

折扣因子 γ

如果一個任務可以永遠跑下去,總獎勵可能加總到無限大——而你沒辦法比較兩個無限大。解法就是折扣因子 γ,一個介於 0 與 1 之間的數。一個在 k 步之後才到來的獎勵,會被乘上 γ 的 k 次方,所以越遠的獎勵算得越輕。這讓折扣回報即使在無止盡的時域上,也會是一個有限、行為良好的數字。

def discounted_return(rewards, gamma=0.99):
    G, scale = 0.0, 1.0
    for r in rewards:        # rewards in time order
        G += scale * r
        scale *= gamma       # each step counts a little less
    return G

# rewards = [1, 1, 1, 1]  with gamma=0.9
# -> 1 + 0.9 + 0.81 + 0.729 = 3.439
折扣回報:每往未來多走一步,就再乘上一個 γ。
G_t = \sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1}

折扣回報:未來的每一步都再乘以一個 γ 因子。

γ 也編碼了耐心。靠近 0(比如 0.1)時,智能體很衝動,只追眼前的獎勵;靠近 1(比如 0.999)時,它很有遠見,願意為了日後更大的回報而犧牲當下。同樣的折扣概念,只要需要把未來的量與現在的量放上天平,就會在整個機器學習裡反覆出現。

時域:故事何時結束?

回報伸向未來有多遠,就是時域(horizon)。有限與無限時域的區分,是你最先要做的設計選擇之一:

  1. 有限時域——任務持續固定的步數,像一場 200 手的對局。智能體規劃時應該把時鐘放在心上。
  2. 無限時域——任務可能無限期跑下去,像平衡一根竿子或管理一台伺服器。在這裡,折扣因子正是讓回報保持有限的關鍵。

許多真實任務天然地分成一塊塊,稱為回合(episodes)。回合式 MDP(episodic MDP)在每個回合之後重新開始:遊戲結束、機器人抵達目標或跌倒,然後時鐘歸零。回合給學習提供了乾淨、可比較的單位——每一個都是一次從頭到尾的完整嘗試。

一個分幕式網格世界:每一輪在智能體到達目標或失敗時結束,隨後時鐘重置,開始新的一幕。

互動式網格世界,每一幕在目標或失敗格子處結束,然後重新開始。

吸收狀態把回合俐落地收尾

在數學裡,一個回合究竟是怎麼結束的?透過吸收狀態(absorbing state)——一個智能體進得去卻永遠出不來、而且此後永遠給零獎勵的終端狀態。「遊戲結束」與「抵達目標」都是吸收狀態。這樣建模,讓單一個無限時域公式也能描述回合式任務:回合「永遠繼續」,但無傷大雅地停泊在吸收狀態上,什麼也不再收集。

P(s \mid s, a) = 1,\qquad R(s, a) = 0 \quad \forall a

用符號寫出吸收性終止狀態:任何動作都讓你停留在 s,並且此後永遠只得到零獎勵。