從監督式到DAgger,綜述論文描繪模仿學習全貌

機器之心發表於2018-01-29

模仿學習是學習器嘗試模仿專家行為從而獲取最佳效能的一系列任務。目前主流方法包括監督式模仿學習、隨機混合迭代學習和資料聚合模擬學習等方法。本論文全面概述了當前的模擬學習演算法及其收斂性保障,有助於讀者深入瞭解這一領域。


模仿學習(Imitation Learning)背後的原理是是通過隱含地給學習器關於這個世界的先驗資訊,就能執行、學習人類行為。在模仿學習任務中,智慧體(agent)為了學習到策略從而儘可能像人類專家那樣執行一種行為,它會尋找一種最佳的方式來使用由該專家示範的訓練集(輸入-輸出對)。當智慧體學習人類行為時,雖然我們也需要使用模仿學習,但實時的行為模擬成本會非常高。與之相反,吳恩達提出的學徒學習(Apprenticeship learning)執行的是存粹的貪婪/利用(exploitative)策略,並使用強化學習方法遍歷所有的(狀態和行為)軌跡(trajectories)來學習近優化策略。它需要極難的計略(maneuvers),而且幾乎不可能從未觀察到的狀態還原。模仿學習能夠處理這些未探索到的狀態,所以可為自動駕駛這樣的許多工提供更可靠的通用框架。在此論文中,作者首先介紹了相關的通用框架,然後展示了一些主要的模仿學習演算法和保證收斂的方法。最後,作者們在現實應用上實驗了 DAgger 方法,並給出了結果。


論文:Global overview of Imitation Learning

從監督式到DAgger,綜述論文描繪模仿學習全貌


論文地址:https://arxiv.org/abs/1801.06503


摘要:模仿學習是學習器嘗試模仿專家級行為從而獲取最佳表現的一系列任務。近期,該領域提出了數種演算法。在此論文中,我們旨在給出這些演算法的整體回顧,展示他們的主要特徵並在效能和缺點上做出對比。


3. 頂尖演算法和收斂保證


從示範中學習(LfD,Learning from Demonstration)是一個從專家給出的軌跡中學習複雜行為的實踐框架,即使非常少或者不準確。我們在下面列出並對比了模型學習中最常用到的一些演算法,且在自動駕駛汽車上進行實驗對比這些模型演算法間的不同。下面這些演算法的理論證明和直觀定理展示在附錄部分。


3.1 監督學習


解決模仿學習的首個方法是監督學習。我們有一個由專家給出的訓練軌跡集合,其中單個訓練軌跡包含觀察結果的序列專家行為的序列。監督式模仿學習的背後動機是訓練一個分類器基於觀察來模仿專家的行為。


這是一種被動的方法,目的是通過被動的觀察全部軌跡學習到一種目標策略。監督式模仿學習的目標是在專家的驅動下於所有狀態上訓練一個策略,而專家只有在求解該目標時才提供資訊。此外,我們需要假不同軌跡中的專家行為是獨立同分布的。


這種方法的主要問題是它不能從失敗中學習。假設該模型在某個時間步驟衍生出最優化的軌跡,那就無法返回到專家看到過的狀態了,因此就會生成錯誤。總的來說,該樸素演算法難以泛化到未知場景,下面的這種方法改正了這種問題。


3.2 前饋訓練


前饋訓練演算法是 2012 年由 Ross 和 Bagnell 提出,它在每個時間步 t(t 屬於全部時間步 T)上訓練一種策略 π_t。即在每個 t 上,選擇機器學習策略 π_t 以模仿專家策略 π*。這種迭代性訓練在以下演算法 1 中有詳細描述:

從監督式到DAgger,綜述論文描繪模仿學習全貌

在最糟糕的情況中,我們與經典監督式學習有相同的收斂,但總體講,收斂是次線性的(sublinear),並且專家策略成功恢復了模型策略的錯誤。因此,前饋訓練演算法應該比之前演算法表現更好。


但是,前饋訓練法的一個主要缺點是它需要迭代所有的 T 週期,其中時間範圍 T 可以相當大。因此,假設策略是不穩定的,演算法將在實際應用中(T 過大或未定義)變得不切實際。後續的一些演算法克服了這一問題。


3.3 基於搜尋的結構預測(SEARN)


SEARN 的想法來自 Daumé III et al. (2009) [3],其並沒有學習一些全域性模型與搜尋(一般模型的標準設定),而是簡單地學習一個分類器以最優地搜尋每一個決策。演算法通過在每一步上遵循專家行動開始,迭代地收集示範並利用它們訓練新策略。根據之前所有訓練策略以及專家行動的混合,它通過採取行動編譯了新的 episodes。最後,它慢慢地學習遵循混合策略並停止依賴專家以決定其要採取的行動。


簡言之,該演算法試圖學習一個分類器,引導我們通過搜尋空間。它的運作是通過保持當前策略以試圖使用它生成新的訓練資料,進而學習一個新策略(新分類器)。當學習了一個新分類器之後,我們用舊分類器進行插值。這一迭代如圖 2 所示。

從監督式到DAgger,綜述論文描繪模仿學習全貌

然而,這一基於搜尋的結構預測可能過於樂觀,並在實踐中面臨挑戰,這主要因為其初始化方法不同於最優策略。下面我們將詳細描述克服這一問題的其他方法。


3.4 隨機混合迭代學習(SMILe)


SMILe 同樣由 Ross 和 Bagnell (2010)[2] 提出,以糾正前饋訓練演算法中的一些困難問題。它是一個基於 SEARN 的隨機混合演算法,利用其優點可以使實現更加簡單,而且與專家的互動要求也較低。它在多次迭代中訓練一個隨機靜態策略,接著利用訓練策略的「幾何」隨機混合。


具體而言,我們從一個完全遵循專家行動的策略π_0 開始。在每次迭代中,我們訓練一個策略π_i 以在以前的策略π_i-1 誘導的軌跡下模仿專家。接著,我們將新的訓練策略新增到先前的幾何折扣因子α(1 − α)^(i−1) 的策略混合中。因此,新的策略π_i 是 i 策略的混合,其中使用專家行動的概率為 (1 − α)^ i。演算法 3 描述了 SMILe 演算法。

從監督式到DAgger,綜述論文描繪模仿學習全貌

從監督式到DAgger,綜述論文描繪模仿學習全貌

圖 1:前饋訓練和 SMILe 演算法在自動駕駛汽車上的對比


這一方法的主要優勢是我們可以隨時中斷過程,以便不考慮太大或未定義的時間範圍。不幸的是,由於其隨機政策,模型並不穩定。


3.5 基於歸約(Reduction)的主動模擬學習(RAIL)


Ross et al. (2011) [4] 提出的 RAIL 背後的原理是對獨立同分布 (i.i.d) 主動學習器 L_a 執行一個包含 T 次呼叫的序列。我們注意到在 T 次呼叫全部發出之前就很可能能夠很好地找到一個有用的靜態策略,這有助於緩解前向迴圈的缺陷。實際上,這種主動學習器可以在一個時間點範圍內提出查詢請求,我們預計在之前的迭代中學習到的策略可能能夠在整個範圍內都取得不俗的表現。


具體而言,RAIL 會以顯著不同的方式執行 T 次迭代:在每次迭代中都學習一個新的可以應用於所有時間步驟的靜態策略。該模型的 t+1 次迭代會根據之前策略的狀態分佈學習一個新策略,這個新策略會在預測專家動作上實現較低的誤差率。演算法 4 給出了 RAIL 演算法的描述。

從監督式到DAgger,綜述論文描繪模仿學習全貌

RAIL 是一種理想化的演算法,其目的是用於實現理論目標的分析。但是,主要由於在早期迭代中使用了未標註的狀態分佈(可以與 d_π∗ 有很大的差異),這種演算法在實際應用上可能有很多低效的地方。


3.6 資料集聚合(Dagger)


3.6.1 DAgger


Ross 和 Bagnell 在 2010 年提出了 DAgger [5] 演算法來解決從示範中學習的問題。DAgger 是一種迭代式的策略訓練演算法,使用了一種歸約到線上(reduction to online)的學習方法。在每次迭代中,我們都在該學習器所遇到過的所有狀態上重新訓練主要分類器。DAgger 的主要優勢是使用了專家(expert)來教學習器如何從過去的錯誤中恢復過來。這是一種基於 Follow-The-Leader 演算法(每一次迭代都是一個線上學習示例)的主動式方法(我們需要讀取專家本身)。


我們從完全由專家教授的第一個策略 π_0 開始,執行 π_0,看學習器訪問了什麼配置。我們生成一個新的資料集,其中包含有關如何從 π_0 的錯誤中恢復的資訊。因為我們希望同時有來自 π_0 和 π_1 的資訊,所以我們聯合使用起始的僅有專家的軌跡和新生成的軌跡來訓練 π_1。我們在每次迭代過程中都重複這一過程。我們選擇在驗證測試上表現最好的策略。

從監督式到DAgger,綜述論文描繪模仿學習全貌

SEARN [3] 和 DAgger 之間的主要演算法差異是每次迭代過程中分類器的學習以及將它們組合成一個策略方面。DAgger 可以組合在所有迭代中獲得的訓練訊號,與之相反,SEARN 僅在第 i 次迭代上訓練,即不聚合資料集。SEARN 是第一種實用的方法,之後是 DAgger。DAgger 對複雜問題和簡單問題都適用;當收集的資料越多時,它的效果就越好,但僅需少量迭代就有效果。所以對手寫識別和自動駕駛等很多應用而言,DAgger 都很有用。


3.6.2 DAgger by coaching


使用 DAgger 時,策略空間可能與學習策略空間相距甚遠,這會限制學習能力,也可能無法根據狀態推斷得到資訊。為了防止出現這種情況,HHH Daumé III 等人在 2012 年提出了 DAgger by coaching 演算法 [6]。使用這一演算法,我們可以執行易於學習的動作,即在學習器的學習能力範圍內。當動作太難時,教練(coach)會降低目標然後漸進地教授。


演算法 5 描述了 DAgger 演算法和 DAgger by coaching 演算法。

從監督式到DAgger,綜述論文描繪模仿學習全貌

圖 2:在自動駕駛汽車任務上的 DAgger 演算法圖示

從監督式到DAgger,綜述論文描繪模仿學習全貌

圖 3:在手寫字元識別任務上的 DAgger、SMILe、SEARN 和監督式方法的表現比較。基準只是一個獨立預測每個字元的支援向量機(SVM)。α=1(相當於純策略迭代方法)和 α=0.8 的 SEARN 和 DAgger 在這一任務上表現更好(來自 DAgger 原論文 [5])。


3.7 使用示範的近似策略迭代(APID)


對於之前的演算法,我們都假設專家能表現出最優行為並且它們的示範是充分足夠的。在真實世界中,這些假設並不總是有效的;為了解決這一艱難問題,我們將專家資料和互動資料結合到了一起(即混合 LfD 和 RL)。因此,APID(2013)[7] 尤其關注專家示範很少或不是最優的情況。這是一種使用近似策略迭代(API)方法正則化過的 LfD,其關鍵思想是使用專家的建議來定義線性約束,這些線性約束可以引導 API 所執行的優化。


具體來說,我們設定一個 API 的環境,然後使用專家提供的額外資訊(儘管這些資訊很少或不準確)。V^π 和 Q^π 表示 π 的價值函式和動作-價值函式,V∗ 和 Q∗ 表示最優策略 π∗ 的價值函式和動作-價值函式。我們有一個互動資料集 從監督式到DAgger,綜述論文描繪模仿學習全貌 分別對應一個專家示例集合 從監督式到DAgger,綜述論文描繪模仿學習全貌,也就是一個包含 n 個示例的(狀態,動作)對樣本分別對應於一個包含 m 個示例的(狀態、示範動作)對。為了編碼專家的次優性,我們為動作-價值最優策略增加了一個變數,以允許偶爾違反約束條件。最後,我們得到一個有約束的優化問題。在這種方法中,我們不必獲取確切的 Bellman 運算元 T^π,只需要樣本即可,由此我們可以使用 Projected Bellman 誤差。


3.8 聚合值以進行模擬(AggreVaTe)


Ross 和 Bagnell (2014) [8] 提出的 AggreVaTe 是 DAgger 演算法的一種擴充套件,可以學習選擇動作以最小化專家的 cost-to-go(總成本),而不是最小化模擬其動作的 0-1 分類損失。第一次迭代中,我們通過觀察執行該任務的專家來被動地收集資料。在每個軌跡中,在一個一致的隨機時間 t,我們探索狀態 s 中的動作 a,並觀察執行該動作後專家的 cost-to-go Q。


我們使用從監督式到DAgger,綜述論文描繪模仿學習全貌表示在狀態 s 執行動作 a 的期望未來 cost-to-go,之後再執行 t-1 個步驟的策略 π。


和 DAgger 演算法完全一樣,AggreVaTe 通過與學習器互動來收集資料,方式如下:


  • 在每次迭代中,我們都使用當前學習器策略 π_i 來執行任務,在一個一致的隨機事件 t 中斷,探索當前狀態 s 中的動作 a,之後將控制回過來提供給專家,繼續直到達到時間範圍 T。

  • 結果在當前策略 π_i 所訪問過的狀態分佈下,得到專家 (s, t, a, Q) 的 cost-to-go 的新示例。

  • 然後我們聚合資料集,並在所連線的資料集上訓練策略 π_(i+1)。


下圖是對此演算法的完整描述:

從監督式到DAgger,綜述論文描繪模仿學習全貌


相關文章