1. 程式人生 > >UC伯克利 NIPS2018 Spotlight論文:依靠視覺想象力的多工強化學習

UC伯克利 NIPS2018 Spotlight論文:依靠視覺想象力的多工強化學習

來源 | AI科技評論

編譯 | 高雲河

AI 科技評論按:NIPS 2018 的錄用論文近期已經陸續揭開面紗,強化學習毫不意外地仍然是其中一大熱門的研究領域。來自加州大學伯克利分校人工智慧實驗室(BAIR)的研究人員分享了他們獲得了 NIPS 2018 spotlight 的研究成果:Visual Reinforcement Learning with Imagined Goals。他們提出了一種只需要圖片即可進行視覺監督的強化學習方法,使得機器人能夠自主設定目標,並學習達到該目標。下面是 AI 科技評論對該部落格的部分編譯。

對於機器人,我們希望它能夠在非結構化的複雜環境中實現任意目標,例如可以完成各種家務的私人機器人。想要實現這個目標,一個有效的方法是使用深度強化學習,這是一種強大的學習框架,機器人通過最大化獎勵函式學到各種行動。然而,經典的強化學習方法通常使用人工設計的獎勵函式訓練機器人去完成任務。例如,通過每個盤子和器具在桌子上的當前位置和目標位置之間的距離設計獎勵函式來訓練機器人佈置餐桌。這種方法需要人為每個任務單獨設計獎勵函式,還需要例如物體檢測器之類的額外系統作為輔助,這會使得整個系統變得昂貴且脆弱。此外,如果想要機器能夠執行各種瑣碎的小任務,需要在每個新任務上重複強化學習的訓練過程。

儘管在模擬環境中設計獎勵函式並建立感測器系統(門角度測量感測器,物體檢測感測器等)相當容易,但是到了現實生活中,這種方法並不實用,如最右圖所示。

我們的演算法只使用視覺就能夠訓練解決多種問題的智慧體,而沒有使用額外的裝置。上面一行展示了目標圖片,下面一行展示了該策略達到這些目標的過程。

在下面的部落格中,我們將討論一個無人工監督的,可以同時學習多個不同任務的強化學習演算法。對於能夠在無人工干預的情況下學會技能的智慧體(agent),它必須能夠為自己設定目標(goal),與環境互動,並評估自己是否已經達到目標,並朝目標方向改善其行為。在我們的演算法中這一切都是通過最原始的觀測(影象)來實現的,並沒有手動設計的額外裝置(如物體檢測器)。比如想要讓機器人到達指定位置狀態,只需給他一張目標狀態的影象,機器人就可以學習到到達指定位置的方法。在演算法中,我們引入了一個能夠設定抽象目標,並向目標主動學習的系統。我們還展示了智慧體如何通過這些自主學習技能來執行各種使用者指定的目標(例如推動物體,抓取物體,開門等),而無需針對每個任務的額外訓練。文章的最後展示了我們的方法足夠有效,可以在現實世界的 Swayer 機器人中工作。機器人可以自主學習設定目標並實現目標,在僅有影象作為系統輸入的前提下,將目標推到指定位置。

給定目標的強化學習

想要實現強化學習,首先要面對一個問題:我們應該如何表示世界的狀態和想要達到的目標呢?在多工情況下,列舉機器人可能需要注意的所有物件是不現實的:物件的數量和型別在不同情況下會有所不同,並且想準確檢測出它們還需要專用的視覺處理方法。換一種思路,我們可以直接在機器人的感測器上操作,用機器人相機感測器捕捉到的圖片表示當前真實世界的狀態,將我們希望世界是什麼樣子的圖片作為目標。想要為機器人制定新任務,使用者只需提供一個目標影象即可,比如希望盤子下圖樣子的圖片。在未來,這項工作可以擴充套件到更復雜的方式來指定目標,比如通過語言或者演示等來指定。

               目標任務:將世界變成影象中的樣子

強化學習的核心思路是訓練機器人最大化獎勵函式。對於給定目標的強化學習方法,獎勵函式的一種選擇是當前狀態和目標狀態之間距離的相反數,因此最大化獎勵函式即等價於最小化當前狀態到目標狀態的距離。

我們可以訓練一個策略來最大化獎勵函式,這樣學習一個給定目標的 Q 函式就可以達到目標狀態。一個給定目標的 Q 函式 Q(s,a,g) 能夠告訴我們,在給定狀態 s 和目標 g 時,行動 a 的好壞。比如,一個 Q 函式可以告訴我們:「如果我拿著一個盤子(狀態 s)並且想把盤子放在桌子上(目標 g),那麼舉手(行動 a)這個動作有多好?」一旦將此 Q 函式訓練好,就可以通過執行下面的優化策略來提取給定目標的策略:

該公式可以簡單的總結為:「根據 Q 函式選擇最好的行動」。通過使用這個過程,我們能夠得到最大化所有獎勵函式之和的策略,即達到不同目標。

Q學習流行的一大原因是:它能夠以離線策略的形式執行,即我們訓練 Q 函式所需的所有資訊僅為(狀態,行動,下一步狀態,目標,獎勵)的取樣:(s, a, s', g, r)。這些資料可以通過任何策略收集到,而且可以被多個任務重複利用。因此一個簡單的給定目標的Q學習演算法流程如下:

訓練過程中的最大瓶頸在於收集資料。如果我們能夠人工生成更多資料,我們就能夠在理論上學習解決多種任務,甚至不需要與真實世界互動。然而不幸的是,想得到準確的真實世界模型相當困難,所以我們通常不得不依賴於取樣以得到(狀態-行動-下一狀態)的資料:(s,a,s')。然而,如果我們能夠修改獎勵函式 r(s, g), 我們就可以反過頭重新標註目標,並重新計算獎勵,這樣就使得我們能夠在給定一個(s, a, s')元組的情況下,人工生成更多資料。所以我們可以將訓練過程修改為如下:

這種目標重取樣的方法的好處是,我們可以同時學習如何一次實現多個目標,而無需從環境中獲取更多資料。總的來說,這種簡單的修改可以大大加快學習速度。

要想實現上述方法,需要有兩個主要假設:(1)知道獎勵函式的形式。(2)知道目標的取樣分佈 p(g)。之前有研究者使用這種目標重標註策略的工作( Kaelbling '93 , Andrychowicz '17 , Pong '18,https://people.csail.mit.edu/lpk/papers/ijcai93.ps)是在真實的狀態資訊上操作(比如物體的笛卡爾位置),這就很容易手動設計目標分佈p(g)和獎勵函式。然而,在目標狀態是影象的基於視覺的任務上,這兩個假設在實際中都不成立。首先,我們不清楚應該使用哪種獎勵函式,因為與當前狀態影象與目標狀態影象之間的畫素級距離可能在語義上沒有任何意義。其次,因為我們的目標是影象,對於第二個假設,我們需要知道一個目標影象的分佈 p(g),使得我們可以從中對目標影象進行取樣。然而影象的分佈相當複雜,手動設計目標影象的分佈是一個相當困難的任務,影象生成仍然是一個活躍的研究領域。因此,為了解決這兩個問題,在我們的演算法中我們希望智慧體能夠自主想象出自己的目標,並學習如何實現這些目標。

使用想象的目標的強化學習

影象作為一種高維資訊,直接進行處理相當困難。因此可以通過學習影象的表示,並使用這種表示來代替影象本身,以減輕給定目標影象的 Q 強化學習的挑戰。關鍵問題是:這種表示應該滿足哪些屬性?為了計算語義上有意義的獎勵,需要一種能夠捕捉到影象變化隱變數的表示。此外,需要一種能夠輕鬆生成新目標的方法。

我們通過首先訓練一個生成隱變數的模型來實現這個目標,我門使用了一個變分自動編碼機(variational autoencoder, VAE)。該生成模型將高維觀察 X,如影象,轉換到低維隱變數 z 中,反之亦然。訓練該模型使得隱變數能夠捕捉影象中變化的潛在變數,這與人類解釋世界和目標的抽象表示類似。給定當前影象 x 和目標影象 xg,將它們分別轉換為隱變數 z 和 zg。然後使用這些隱變數來表示強化學習演算法的狀態和目標。在這個低維隱空間上而不是直接在影象上學習Q函式和策略能夠有效加快學習的速度。

智慧體將當前影象(x)和目標影象(xg)編碼到隱空間,使用隱空間中的距離作為獎勵函式。

使用影象和目標的隱變量表示也解決了另一個問題:如何計算獎勵。使用隱空間中的距離來作為智慧體的獎勵,而不是使用畫素級的距離。在完整論文中,我們展示了這種方法與最大化達到目標的概率的目的相符合,而且能夠提供更有效的學習訊號。

這種生成模型也很重要,因為它使得智慧體能夠更容易地在隱空間中生成目標。特別的是,我們的生成模型能夠使在隱變數空間中的取樣變得不重要:我們只是從VAE先驗中取樣隱變數。我們使用這種取樣機制主要有兩種原因:首先,它為智慧體設定自己的目標提供了一種機制。智慧體只是從生成模型中對隱變數的值進行取樣,並嘗試達到該隱目標。第二,該重取樣機制也可以被用於上面提到的重新標記目標的過程中。因為生成模型經過訓練,可以將真實影象編碼到先驗影象中,所以從隱變數先驗中取樣可以生成有意義的隱目標。

即使沒有人提供目標,智慧體也能夠生成它自己的目標

總之,影象的隱變數能夠(1)捕捉場景的潛在因素,(2)提供有意義的距離進行優化,(3)提供有效的目標取樣機制,允許我們有效訓練能夠在畫素上直接操作的給定目標的強化學習智慧體。我們將這個整個方法稱為具有想象目標的強化學習(reinforcement learning with imagined goals, RIG).

實驗

我們進行了實驗,以測試 RIG 是否具有足夠的取樣效率,能夠在合理的時間內訓練好真實世界的機器人策略。我們測試了機器人的兩種能力:達到使用者指定的位置,和將物體推到目標影象所示的位置。機器人首先將輸入的目標影象對映到隱空間中,作為自己的目標來學習。我們可以使用解碼器從隱空間映射回圖片來視覺化機器人想象中的目標。在下面的動圖中,上面顯示瞭解碼出來的“想象”中的目標,而下面一行顯示了實際策略執行的情況

機器人設定它自己的目標(上圖),練習達到這個目標(下圖)

通過設定自己的目標,機器人可以自主的訓練達到不同的位置而無需人為參與。只有當人想要機器人執行特定任務時,才需要人類參與。此時,給予機器人目標影象。因為機器人已經通過練習,能夠實現很多種目標,可以看到它在沒有經過額外訓練的情況下,即能實現這個目標。

人類給一個目標影象(上圖),機器人達到這個目標(下圖)

下面展示了使用 RIG 訓練了將物體推到指定區域的策略:

左:Sawyer機器人初始化。右:人類給出一個目標圖片(上圖),機器人達到該目標(下圖)

直接從影象訓練強化學習的策略可以輕鬆地在不同的任務中切換,如使機器人到達某個位置變成推動某個物體。只需改變一下物體重新拍一下照片即可。最後,儘管直接根據畫素進行工作,這些實驗並沒有花費很長時間。到達指定位置,只需一小時的訓練時間,而推動物體到某位置需要 4.5 小時。許多真實世界的機器人強化學習需要真實的機器人狀態資訊如物體的位置。然而,這通常需要更多的機器,購買並設定額外的感測器或者訓練物體檢測系統。相比這下,本方法只需 RGB 相機就可以直接從影象中進行工作。

對於更多結果,包括各部分對效能的提升以及與基準方法的對比,大家可以閱讀原始論文:https://arxiv.org/abs/1807.04742 

未來發展方向

我們已經證明,可以直接從影象訓練真實世界的機器人策略,同時可以以高效的方式實現各種任務。這個專案有很多令人興奮的後續發展。可能有一些任務無法用目標影象表示,但是可以用其他模態的資訊來表示(如語言和演示)。此外,我們雖然提供了一種機制來對自主探索的目標進行取樣,但我們能否以更有理論指導的方式選擇這些目標來進行更好的探索?結合內部動機的思路能夠使得我們的模型更積極的選擇能夠更快達到目標的策略。未來的另外一個方向是訓練更好的生成模型,使其能夠理解動態資訊。將環境的動態資訊編碼能夠使隱空間更適合於強化學習,從而加快學習速度。最後,有些機器人任務的狀態難以用感測器捕捉到,例如操縱可變性物件或者處理數量可變的物件的場景。進一步拓展 RIG 使得它能夠解決這些任務將是令人興奮的。