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

把離線強化學習當成序列建模

Decision Transformer 這一派乾脆丟掉價值函數,把強化學習當成「以回報為條件」的預測問題。它何時有效、何時失靈。

一個全然不同的框架

目前為止的一切,都是在貝爾曼這套機制內部對抗分佈偏移。序列建模的觀點則繞過它:忘掉價值迭代,把一條軌跡看成*一串符元(token)*,訓練一個 Transformer 去預測下一個動作——就像語言模型預測下一個字一樣。這裡沒有 `max`,所以也沒有高估可怕。離線強化學習於是變成在已記錄序列上的單純監督式學習(supervised learning)。

序列建模視角把一條軌跡當作詞元序列——狀態、動作、回報——並預測下一個詞元,而不是做價值迭代。

詞元化示意圖:將序列切分為詞元,映射到詞元 id,再變成嵌入向量。

Decision Transformer

代表方法是 Decision Transformer。它的關鍵動作是:餵給模型的不只是狀態與動作,還有*剩餘回報(return-to-go)——從每一步往後算的未來總獎勵。模型學到的關聯是:「若從這個狀態起前方還有這麼多獎勵,那當初記錄下來的動作就是這個*。」測試時,你只要把剩餘回報設成你想要的高數值、交給它目前的狀態、然後讀出動作即可。你是在「下令」要某種結果,而不是去最佳化它。

\hat{R}_t=\sum_{t'=t}^{T} r_{t'}

剩餘回報(return-to-go):決策 Transformer 所條件化的、從第 t 步起的未來總獎勵。

# Decision Transformer: trajectory as a token sequence, in time order
#   R_1, s_1, a_1, R_2, s_2, a_2, ...   where R_t = return-to-go at step t
#
# Train like a language model: predict each action token from everything before it.
# (cross-entropy for discrete actions, MSE for continuous ones)
#
# At deployment, you CONDITION on the return you want:
#   set R_1 = target_return       # "I want this much reward"
#   feed (R_1, s_1) -> model     -> a_1
#   act, observe r_1, s_2; set R_2 = R_1 - r_1; repeat
以回報為條件的預測:你要一個結果,模型就提出對應的動作。

Trajectory Transformer 與回報條件化

它的近親 Trajectory Transformer 走得更遠,直接建模整條軌跡——把狀態、動作、獎勵全部離散化成符元——再透過對「高回報延續」做束搜尋(beam search)來規劃,把序列建模與自迴歸(autoregressive)規劃融合在一起。兩者都屬於更廣的回報條件化策略(return-conditioned policies)家族:它們學的不是哪個動作最好,而是哪個動作會導向哪種回報,讓你在執行時自己撥動目標回報。

軌跡 Transformer 透過自迴歸生成下一個詞元、再對候選序列做束搜索來進行規劃。

自迴歸生成迴圈:將每個預測的詞元作為下一步的輸入回饋回去。

誠實面對其侷限

這個框架很優雅,但不是魔法。由於它本質上是以條件為前提的模仿——比起動態規劃,更接近加權的行為複製——它在拼接上會吃力:若沒有任何單一軌跡曾達到高回報,你硬去要一個高回報,可能得到前後不連貫的動作。像 IQL/CQL 這類以價值為基礎的方法,原則上能把許多平庸軌跡裡的好片段組合起來;而純粹的回報條件化往往做不到。

誠實的侷限所在:回報條件化的預測本質上是有監督的模仿,而非基於價值的強化學習。

有監督學習、無監督學習與強化學習三種範式的對比。