雷鋒網 AI 科技評論按:NIPS 2018 的錄用論文近期已經陸續揭開面紗,強化學習毫不意外地仍然是其中一大熱門的研究領域。來自加州大學伯克利分校人工智慧實驗室(BAIR)的研究人員分享了他們獲得了 NIPS 2018 spotlight 的研究成果:Visual Reinforcement Learning with Imagined Goals。他們提出了一種只需要圖片即可進行視覺監督的強化學習方法,使得機器人能夠自主設定目標,並學習達到該目標。下面是雷鋒網(公眾號:雷鋒網)對該博客的部分編譯。
對於機器人,我們希望它能夠在非結構化的複雜環境中實現任意目標,例如可以完成各種家務的私人機器人。想要實現這個目標,一個有效的方法是使用深度強化學習,這是一種強大的學習框架,機器人通過最大化獎勵函數學到各種行動。然而,經典的強化學習方法通常使用人工設計的獎勵函數訓練機器人去完成任務。例如,通過每個盤子和器具在桌子上的當前位置和目標位置之間的距離設計獎勵函數來訓練機器人布置餐桌。這種方法需要人為每個任務單獨設計獎勵函數,還需要例如物體檢測器之類的額外系統作為輔助,這會使得整個系統變得昂貴且脆弱。此外,如果想要機器能夠執行各種瑣碎的小任務,需要在每個新任務上重複強化學習的訓練過程。
儘管在模擬環境中設計獎勵函數並建立傳感器系統(門角度測量傳感器,物體檢測傳感器等)相當容易,但是到了現實生活中,這種方法並不實用,如最右圖所示。
我們的算法只使用視覺就能夠訓練解決多種問題的智能體,而沒有使用額外的設備。上面一行展示了目標圖片,下面一行展示了該策略達到這些目標的過程
在下面的博客中,我們將討論一個無人工監督的,可以同時學習多個不同任務的強化學習算法。對於能夠在無人工幹預的情況下學會技能的智能體(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)是在真實的狀態信息上操作(比如物體的笛卡爾位置),這就很容易手動設計目標分布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 使得它能夠解決這些任務將是令人興奮的。
via Berkeley Blog,雷鋒網 AI 科技評論編譯
雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。