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

用學到的模型來規劃

把模型變成更好動作的兩種方式:在背景裡練習,或在做決定的當下搜尋。

這裡的「規劃」是什麼意思

在基於模型的強化學習裡,規劃(planning)意指用模型計算出更好的行為,而不必在真實世界中行動。既然能想像結果,你可以把這些想像出的經驗餵回一般的學習過程,也可以對未來的動作序列做明確的搜尋、選出最好的那一條。這兩種風格各有名稱,分清差別會左右你之後每一個設計決定。

背景規劃:Dyna

背景規劃(background planning)在決策之間改進策略或價值函數,這樣當智能體真正要行動時就能立即反應。經典做法是 Dyna 架構:把真實步驟與想像步驟交錯進行。每一次真實轉移都身兼兩職——它直接更新價值函數,改進模型,而模型又再生成額外的想像轉移、帶來更多價值更新。

Q(S,A)\leftarrow Q(S,A)+\alpha\Big[R+\gamma\max_{a}Q(S',a)-Q(S,A)\Big]

Dyna 把同样的一步价值更新用在想象出来的转移上,让每一点真实数据被反复利用。

Dyna 之所以出色,是因為它把稀少的真實資料反覆再利用許多次。一種稱為優先掃描(prioritized sweeping)的改良讓它更聰明:它不去想像隨機的狀態,而是把想像更新集中在價值估計剛剛變化最大的地方,讓規劃的力氣花在刀口上。

決策時規劃:模型預測控制

決策時規劃(decision-time planning)行動的當下才思考:當智能體到達某個狀態時,它模擬許多候選的未來,並選出最佳計畫的第一個動作。這裡的主力是借自古典控制的模型預測控制(model predictive control,MPC)。讓 MPC 穩健的訣竅是後退時域(receding horizon):只往前規劃一小段,只執行第一個動作,然後從新狀態帶著最新資訊重新規劃。

一個簡單的決策時規劃器

最基本的 MPC 規劃器只是隨機取樣動作序列、用模型展開(model rollouts)為每條序列評分,留下勝出者。它很粗糙,卻出奇有效,也是更花俏方法的種子。

a_{t:t+H}^{\star}=\arg\max_{a_{t:t+H}}\;\mathbb{E}\!\left[\sum_{k=0}^{H-1}\gamma^{k}\,r(\hat{s}_{t+k},a_{t+k})\right]

随机射击式 MPC 用模型展开得到的这一预测回报为每个计划打分,保留最优者,然后只执行它的第一个动作。

def plan(model, state, H, N):
    best_seq, best_return = None, -inf
    for _ in range(N):                      # N candidate plans
        seq = sample_action_sequence(H)     # H actions long
        s, total = state, 0
        for a in seq:                       # roll the model forward
            s, r = model.predict(s, a)
            total += r
        if total > best_return:
            best_return, best_seq = total, seq
    return best_seq[0]                       # execute only the first action
隨機射擊式 MPC:想像 N 條計畫、留最好的、執行一次、下一步再重新規劃。

基於搜尋的規劃:MCTS 一瞥

當動作是離散的、未來又劇烈分岔時(例如棋類遊戲),隨機射擊就太浪費了。蒙地卡羅樹搜尋(Monte Carlo tree search,MCTS)則生長出一棵搜尋樹,把更多想像展開花在有希望的分支上、修剪掉毫無希望的分支。它是一種決策時規劃,也支撐了像 AlphaZero 這樣的下棋里程碑。我們會在最後一篇指南深入討論。

蒙特卡洛树搜索生长出一棵偏斜的树,把模拟次数花在最有希望的着法上。

交互式蒙特卡洛树搜索:在搜索树中进行选择、扩展、模拟与价值回传。

選背景規劃還是決策時規劃?

  1. 需要瞬間反應(即時控制、快節奏遊戲)?倚重背景規劃,讓沉重的思考提前完成。
  2. 在決策當下有餘裕的算力、而模型只能信一半?帶有重新規劃的決策時規劃能甩掉模型誤差。
  3. 兩者都想要?許多現代系統兩者並用——用背景學習塑造價值函數,用決策時搜尋打磨最後一手。