最大熵 IRL:承諾最少的解釋
最大熵 IRL(maximum-entropy IRL)用統計學的一條原則消解獎勵模糊性:在所有與資料相符的解釋中,偏好假設最少的那個。具體而言,它把專家建模成「以與軌跡回報之指數成正比的機率」來選擇軌跡——高獎勵軌跡的機率呈指數倍增,但每條軌跡都保有一些機率。
最大熵逆強化學習把軌跡建模為:總回報越高,出現機率越大——這是與示範資料一致、假設最少的分布。
這一個建模選擇同時做了三件事。它讓模型機率化(於是你能用最大概似法擬合它),它優雅地容忍不完美的示範(專家一個稍差的動作是不太可能、而非絕不可能),並且它唯一地選出一個獎勵——那個會讓所有軌跡等機率的零獎勵,再也無法擬合「明顯偏好某些路徑」的示範了。
為什麼熵是對的決勝規則
用最大概似法擬合最大熵模型,竟會自動重現特徵期望匹配:在最優處,模型的期望特徵等於專家觀察到的特徵。但在無限多個能匹配這些特徵的分布中,最大熵的那一個是最平坦的——它在約束允許的範圍內把機率盡量攤平,不編碼任何資料未強加的偏好。
在最大似然最佳點,模型的期望特徵等於專家的期望特徵——最大熵自動實現了特徵期望匹配。
這正是我們對決勝規則所要的性質:當示範無法唯一決定獎勵時,就退回到「加入最少隱藏假設」的那個解釋。實務上的代價是要計算一個對所有軌跡的正規化項(配分函數,partition function);在已知的小型 MDP 中可用動態規劃,在大型或未知的環境中則須近似——這個需求把整個領域推向以取樣為基礎的對抗式方法。
GAIL:把模仿當成雙人賽局
生成對抗模仿學習(generative adversarial imitation learning, GAIL)借用了生成對抗網路(generative adversarial network)的機制。兩個網路相互競爭:鑑別器(discriminator)試圖把專家的狀態–動作對和學習者的區分開來,而策略(即生成器)則試圖產生像專家的行為來騙過它。鑑別器的判定充當一個學出來的獎勵訊號,由策略以普通強化學習去最大化。
可互動的生成器-判別器極小極大博弈,演示 GAIL 的對抗結構。
GAIL 的突破在於它跳過了古典 IRL 對每個候選獎勵都重複的那次昂貴內層強化學習求解。它透過對抗賽局直接匹配狀態–動作對的分布,因而能擴展到高維連續控制——在那裡把完整的強化學習塞進外迴圈根本無望。代價是 GAN 式的訓練不穩定——兩個玩家可能來回擺盪而非收斂。
for iteration in range(N):
learner_data = rollout(policy) # generator samples
# 1) Train discriminator: expert = real, learner = fake
D = update_discriminator(expert_data, learner_data)
# 2) Use -log D(s,a) as the reward, improve the policy with RL
rewards = [-log(D(s, a)) for (s, a) in learner_data]
policy = rl_update(policy, learner_data, rewards)對抗式 IRL:還原可重複使用的獎勵
GAIL 模仿得漂亮,卻把獎勵丟掉了——它的鑑別器把獎勵和當前策略糾纏在一起,因此你無法抽出一個乾淨的獎勵來重複使用。對抗式逆向強化學習(adversarial inverse RL, AIRL)藉由結構化鑑別器來修正這點,使其中一部分可證明地收斂到一個與動態解耦的獎勵函數。於是你同時得到 GAIL 的可擴展性與 IRL 的可遷移獎勵。
那個解耦的獎勵就是戰利品。在平地上訓練 AIRL、還原出「有效率地前進」,再把這個獎勵丟到一個面對山坡或更強重力的機器人上重跑強化學習——策略會自行適應,因為意圖遷移了,即使最優動作已經改變。這種對動態變化的強健性,正是純模仿無法提供的。