獎勵與回報的差別
獎勵是環境在每一步交出來的單一數字——比方說,保持直立 +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折扣回報:未來的每一步都再乘以一個 γ 因子。
γ 也編碼了耐心。靠近 0(比如 0.1)時,智能體很衝動,只追眼前的獎勵;靠近 1(比如 0.999)時,它很有遠見,願意為了日後更大的回報而犧牲當下。同樣的折扣概念,只要需要把未來的量與現在的量放上天平,就會在整個機器學習裡反覆出現。
時域:故事何時結束?
回報伸向未來有多遠,就是時域(horizon)。有限與無限時域的區分,是你最先要做的設計選擇之一:
- 有限時域——任務持續固定的步數,像一場 200 手的對局。智能體規劃時應該把時鐘放在心上。
- 無限時域——任務可能無限期跑下去,像平衡一根竿子或管理一台伺服器。在這裡,折扣因子正是讓回報保持有限的關鍵。
許多真實任務天然地分成一塊塊,稱為回合(episodes)。回合式 MDP(episodic MDP)在每個回合之後重新開始:遊戲結束、機器人抵達目標或跌倒,然後時鐘歸零。回合給學習提供了乾淨、可比較的單位——每一個都是一次從頭到尾的完整嘗試。
互動式網格世界,每一幕在目標或失敗格子處結束,然後重新開始。
吸收狀態把回合俐落地收尾
在數學裡,一個回合究竟是怎麼結束的?透過吸收狀態(absorbing state)——一個智能體進得去卻永遠出不來、而且此後永遠給零獎勵的終端狀態。「遊戲結束」與「抵達目標」都是吸收狀態。這樣建模,讓單一個無限時域公式也能描述回合式任務:回合「永遠繼續」,但無傷大雅地停泊在吸收狀態上,什麼也不再收集。
用符號寫出吸收性終止狀態:任何動作都讓你停留在 s,並且此後永遠只得到零獎勵。