穩(wěn)定訓(xùn)練、數(shù)據(jù)高效,清華大學(xué)提出「流策略」強(qiáng)化學(xué)習(xí)新方法SAC Flow
本文介紹了一種用高數(shù)據(jù)效率強(qiáng)化學(xué)習(xí)算法 SAC 訓(xùn)練流策略的新方案,可以端到端優(yōu)化真實(shí)的流策略,而無需采用替代目標(biāo)或者策略蒸餾。SAC FLow 的核心思想是把流策略視作一個 residual RNN,再用 GRU 門控和 Transformer Decoder 兩套速度參數(shù)化。SAC FLow 在 MuJoCo、OGBench、Robomimic 上達(dá)到了極高的數(shù)據(jù)效率和顯著 SOTA 的性能。
作者來自于清華大學(xué)和 CMU,通訊作者為清華大學(xué)教授丁文伯和于超,致力于強(qiáng)化學(xué)習(xí)算法和具身智能研究。
研究背景
流策略(Flow-based policy)最近在機(jī)器人學(xué)習(xí)領(lǐng)域十分熱門:它具有建模多峰動作分布的表達(dá)能力,且比擴(kuò)散策略更簡潔好用,因此被廣泛應(yīng)用于先進(jìn)的 VLA 模型,例如 π_0、GR00T 等。想要跳出數(shù)據(jù)集的約束,進(jìn)一步提高流策略的性能,強(qiáng)化學(xué)習(xí)是一條有效的路,已經(jīng)有不少工作嘗試用 on-policy 的 RL 算法訓(xùn)練流策略,例如 ReinFlow [1]、 Flow GRPO [2] 等。但當(dāng)我們使用數(shù)據(jù)高效的 off-policy RL(例如 SAC )訓(xùn)練流策略時總會出現(xiàn)崩潰,因?yàn)榱鞑呗缘膭幼鹘?jīng)歷「K 步采樣」推理,因此反向傳播的「深度」等于采樣步數(shù) K。這與訓(xùn)練經(jīng)典 RNN 時遇到的梯度爆炸或梯度消失是相同的。
不少已有的類似工作都選擇繞開了這個問題:要么用替代目標(biāo)避免對流策略多步采樣的過程求梯度 (如 FlowRL [3]),要么把流匹配模型蒸餾成單步模型,再用標(biāo)準(zhǔn) off-policy 目標(biāo)訓(xùn)練 (如 QC-FQL [4])。這樣做是穩(wěn)定了訓(xùn)練,但也拋棄了原本表達(dá)更強(qiáng)的流策略本體,并沒有真正在訓(xùn)練一個流策略。而我們的思路是:發(fā)現(xiàn)流策略多部采樣本質(zhì)就是 sequential model ,進(jìn)而用先進(jìn)的 sequential model 結(jié)構(gòu)來穩(wěn)住訓(xùn)練,直接在 off-policy 框架內(nèi)端到端優(yōu)化真實(shí)的流策略。

使用 off policy RL 算法訓(xùn)練流策略會出現(xiàn)梯度爆炸。本文提出,我們不妨換一個視角來看,訓(xùn)練流策略等效于在訓(xùn)練一個 RNN 網(wǎng)絡(luò)(循環(huán)計(jì)算 K 次),因此我們可以用更高效現(xiàn)代的循環(huán)結(jié)構(gòu)(例如 GRU,Transformer)。

- 論文鏈接:https://arxiv.org/abs/2509.25756
- 項(xiàng)目網(wǎng)站:https://sac-flow.github.io/
- 代碼倉庫:https://github.com/Elessar123/SAC-FLOW
核心思想:Flow rollout ≈ Residual RNN
把每一步的中間動作
作為隱狀態(tài),
作為輸入,那么 Euler 積分
就等價于一個 residual RNN 的單步前向。于是對流策略的 K 步采樣過程進(jìn)行反傳就,等價于對一個 RNN 網(wǎng)絡(luò)反傳!這也難怪以往的 off-policy 訓(xùn)練會遇到不穩(wěn)定的問題。既然如此,就把流策略中的速度網(wǎng)絡(luò)
換成為循環(huán)而生的現(xiàn)代的穩(wěn)定結(jié)構(gòu):
- Flow-G(GRU,gated velocity) :給速度網(wǎng)絡(luò)加上 GRU 風(fēng)格的門控結(jié)構(gòu) ,自適應(yīng)決定「保留當(dāng)前動作」還是「寫入新動作」,抑制梯度放大。
- Flow-T(Transformer, decoded velocity) :用 Transformer decoder 對「動作 - 時間 token」做 state-only cross-attention + 預(yù)歸一殘差 FFN ,每一步都在全局 state 語境下穩(wěn)態(tài)細(xì)化;保持 Markov 性,不做時間位點(diǎn)之間的自回歸混合。

流策略的速度網(wǎng)絡(luò)參數(shù)化方式,從 sequential model 的視角進(jìn)行展示。
對應(yīng)的速度網(wǎng)絡(luò)參數(shù)化
- Flow-G: 用門控
去調(diào)和「保留
」 和「寫入候選
」:
這與 GRU 的更新過程一一對應(yīng)。 - Flow-T: 給「動作 - 時間 token」與「全局 state token」分別編碼,然后在 decoder 里做 state-only cross-attention (自注意僅作對角 / 逐位置變換,不跨時間混合,為了保留 flow 模型的 Markov 性質(zhì)),再用 pre-norm 和殘差 FFN 構(gòu)成的多層 Decoder Layer ,最后線性投影到速度
。
我們的方法:SAC Flow
1.讓 SAC 真正能訓(xùn)練流策略:noise-augmented 對數(shù)似然
在直接訓(xùn)練 SAC Flow 之前,還有一個關(guān)于 SAC 的小問題需要解決。SAC 需要
做熵正則化,但確定性的 K 步采樣沒法直接給出可積的密度。因此,SAC Flow 在每步 rollout 里加高斯噪聲 + 配套漂移修正 ,保證末端動作分布不變,同時把路徑密度分解為單步高斯似然的連乘,從而得到可計(jì)算、可微的
。這樣,SAC 的 actor/critic loss 都可以直接用流策略多步采樣的對數(shù)似然來表示。
2.兩種訓(xùn)練范式都能用
- From-scratch :對于 dense-reward 任務(wù),SAC flow 可以 from scratch 直接訓(xùn)練。
- Offline-to-online :對于 sparse-reward 且有示例數(shù)據(jù)的任務(wù),SAC flow 支持先在數(shù)據(jù)集上預(yù)訓(xùn)練,再進(jìn)行在線微調(diào)。微調(diào)時,需要在 SAC actor 里加一個正則項(xiàng)目
。
訓(xùn)練偽代碼如下:

實(shí)驗(yàn)結(jié)果:穩(wěn)定、快速、樣本效率高!

在 From-scratch 條件下,我們主要測試了 Mujoco 的環(huán)境上的表現(xiàn)。Flow-G 和 Flow-T 達(dá)到了 SOTA 的性能水平。同時可以發(fā)現(xiàn),在稀疏獎勵任務(wù)中,from-scratch 是不夠的,需要使用 offline pretrain。

Offline-to-online 訓(xùn)練結(jié)果。其中灰色背景下的前 1e6 step 是 offline 訓(xùn)練,后 1e6 steps 是 online 微調(diào)。
From-scratch
- SAC Flow-T / Flow-G 在 Hopper、Walker2D、HalfCheetah、Ant、Humanoid、HumanoidStandup 上穩(wěn)定更快收斂 ,最終回報(bào)更高。
- 相比擴(kuò)散策略基線(如 DIME 、QSM ),F(xiàn)low -based 方法普遍收斂更快。在此基礎(chǔ)上,SAC Flow 進(jìn)一步超過 FlowRL (因?yàn)?FlowRL 使用 Wasserstein 約束限制了性能)。
- 在最難的 sparse-reward 任務(wù)中(如 Robomimic-Can、OGBench-Cube-Double),從零探索仍然很難,這也說明了 offline-to-online 訓(xùn)練的必要性。
Offline-to-online
- 在 OGBench 的 Cube-Triple / Quadruple 等高難度任務(wù)中,SAC Flow-T 收斂更快,整體成功率領(lǐng)先或持平現(xiàn)有 off-policy 基線(FQL、QC-FQL )。
- 在 Robomimic benchmark 中,我們使用了較大的正則化約束限制,因此 SAC Flow 的表達(dá)能力受到限制,表現(xiàn)與 QC-FQL 接近。但在同等在線數(shù)據(jù)量下,我們的表現(xiàn)依然優(yōu)于 on-policy 的基線算法 ReinFlow。
消融實(shí)驗(yàn):
1.穩(wěn)定梯度,防止梯度爆炸
我們直接用 SAC 微調(diào)流策略(Naive SAC Flow),其梯度范數(shù)在反傳路徑上呈現(xiàn)爆炸趨勢 (綠色)。而 Flow-G / Flow-T 的梯度范數(shù)保持平穩(wěn)(橙色、紫色)。對應(yīng)地,SAC Flow-T 和 Flow-G 的性能顯著更優(yōu)。

(a)不同采樣步上的梯度范數(shù)。(b) from-scratch 訓(xùn)練中, Ant 環(huán)境下如果直接用 SAC 訓(xùn)練流策略,會導(dǎo)致訓(xùn)練崩潰。(c) 在 offline-to-online 訓(xùn)練中,直接 SAC 訓(xùn)練流策略依然效率較低,不夠穩(wěn)定。
2.對采樣步數(shù)魯棒
SAC Flow 對 K (采樣步數(shù))是魯棒的:在 K=4/7/10 條件下都能穩(wěn)定訓(xùn)練。其中 Flow-T 對采樣深度的魯棒性尤其強(qiáng)。

與類似工作的核心區(qū)別
- FlowRL 使用 Wasserstein-2 約束的替代目標(biāo)。與之相比,SAC Flow 則直接端到端優(yōu)化標(biāo)準(zhǔn) SAC loss,避免「目標(biāo) - 模型錯位」。
- DIME / QSM 等擴(kuò)散策略方法同樣使用了替代目標(biāo)。
- FQL / QC-FQL 則把流策略首先蒸餾單步模型,然后再做 off-policy RL。相比之下,SAC Flow 不需要蒸餾為單步模型,保留了流模型的建模能力。
什么時候用 Flow-G?什么時候用 Flow-T?
- Flow-G :參數(shù)量更小、結(jié)構(gòu)更簡潔,在需要快速收斂或計(jì)算預(yù)算有限的場景。
- Flow-T :當(dāng)環(huán)境更復(fù)雜、需要更強(qiáng)的條件建模和深度時,F(xiàn)low-T 的穩(wěn)定性和上限更好。
結(jié)語
SAC Flow 的關(guān)鍵詞只有三個:序列化 、穩(wěn)定訓(xùn)練、數(shù)據(jù)高效。把流策略視作序列模型,進(jìn)而能夠用 GRU / Transformer 的成熟經(jīng)驗(yàn)穩(wěn)定梯度回傳。加上一些輔助技巧,我們可以直接使用 off-policy RL 的代表算法 SAC 來訓(xùn)練流策略,從而實(shí)現(xiàn)數(shù)據(jù)高效、更快、更穩(wěn)的收斂。后續(xù),我們將繼續(xù)推動 SAC-flow 在真實(shí)機(jī)器人上的效果驗(yàn)證,提升 sim-to-real 的魯棒性。



































