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

演算法:約束策略,或不信任價值

BCQ、CQL、IQL、AWR——離線強化學習真正能用的演算法家族,以及該選哪一個的清楚準則。

兩種悲觀的方式

幾乎每個實用的離線演算法,都在兩種策略中選一種。策略約束:讓學出的策略貼近行為策略(behavior policy),使它只會提出資料支撐得起的動作——這一家族就是策略約束法(policy-constraint methods)。價值悲觀:策略隨它去,但把價值函數訓練成主動不信任分佈外動作,使那些動作永遠看起來不吸引人。有些現代方法則悄悄地兩者並用。

BCQ——只考慮合理的動作

批次約束 Q 學習 (BCQ) 是把分佈偏移問題真正搬上檯面的方法。它的訣竅是:訓練一個資料的生成模型,只提出該模型認為「可能出現」的動作,然後在那個受限集合上取 `max`,而不是在所有動作上取。如此一來,危險的未見動作根本連候選都不是,因此外插誤差從源頭就被掐斷了。

BCQ 訓練一個資料的生成模型(條件 VAE),只提出它認為可信的動作——絕不查詢未見過的動作。

變分自編碼器:編碼器將輸入映射到潛空間,解碼器再重建,此處用於生成符合分布的動作。

CQL——把幻影價值壓下去

保守 Q 學習 (CQL) 攻擊的是價值這一側。在一般的貝爾曼損失之外,它加上一個正則項,壓低目前策略會挑選的動作(很可能是分佈外)的 Q 值,並抬高資料中確實出現過的動作的 Q 值。結果是一個可被證明為「真實價值下界」的 Q 函數——高估根本無從形成。

Q(s,a) \leftarrow Q(s,a) + \alpha\left[r + \gamma \max_{a'} Q(s',a') - Q(s,a)\right]

CQL 所依據的貝爾曼更新;對下一動作取最大值之處,正是未見動作高估悄然潛入之處——所以 CQL 加了一項把這些值壓低。

# Conservative Q-Learning (CQL): Bellman loss + a pessimism penalty
bellman_loss = (Q(s, a) - (r + gamma * V(s_next))) ** 2

# Push DOWN Q on actions the policy samples (likely OOD);
# pull UP Q on the action actually logged in the data.
pessimism = logsumexp_over_a(Q(s, a)) - Q(s, a_in_data)

loss = bellman_loss + alpha * pessimism
CQL = 一般價值學習,再加一個讓未見動作看起來更差(而非更好)的項。

IQL 與 AWR——根本不去查未見的動作

隱式 Q 學習 (IQL) 採取最乾淨的立場:絕不對任何資料集以外的動作評估 `Q`。它用狀態價值的「分位期望(expectile)回歸」來逼近資料中最佳動作的價值,使貝爾曼目標永遠只用真正發生過的動作。接著它用優勢加權回歸 (AWR)萃取策略——這是一種加權的行為複製:當某個資料動作的估計優勢愈高,就愈用力地去複製它。簡單、穩定,而且經常勝出。

IQL 仍然學習網格世界式的 Q 值,但只評估資料中出現過的動作——絕不對未見動作取最大值。

互動式網格世界,逐格學習 Q 值;只評估資料中出現過的動作。

共通的主軸

把這四個方法再看一遍,你會發現同一種直覺穿著不同的外衣:對未知的悲觀。BCQ 限制動作集合、CQL 給價值設下界、IQL 拒絕看資料外、AWR 倚賴模仿。不論你選哪一個,都是用一點點保守換取安全——而這筆交易,正是讓離線強化學習值得信賴的原因。