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 這類以價值為基礎的方法,原則上能把許多平庸軌跡裡的好片段組合起來;而純粹的回報條件化往往做不到。

诚实的局限所在:回报条件化的预测本质上是有监督的模仿,而非基于价值的强化学习。

有监督学习、无监督学习与强化学习三种范式的对比。