Uber提出有創造力的POET:自行開發更困難環境和解決方案

近日,Uber 發文介紹了一種開放式方法 POET(Paired Open-Ended Trailblazer),可自行開發難度遞增的環境及其解決方案,還可以實現不同環境中的智能體遷移,促進進化。

Uber AI 實驗室注重開放性(open-endedness),開放性為機器學習自行開發多樣化和不斷增加的「課程」提供可能。擁有海量數據通常能夠助力機器學習取得成功,因此 Uber 正在努力設計能夠無限量生成自己所需訓練數據的算法。

在普通的機器學習實踐中,研究人員確定一個特定問題(例如像 ImageNet 這樣的分類問題或者像《蒙特祖瑪的復仇》這樣的電子游戲),然后重點尋找或設計一個可實現最佳性能的算法。然而,有時我們不僅僅想解決已知問題,未知問題也十分重要。這些可能是對暴露(和解決)問題至關重要的邊緣案例(如安全應用),但也可能是重要的基石,其解決方案可能有助于在更具挑戰性的問題上取得進展。因此,Uber 正在探索不斷提出越來越復雜和多樣化的問題及解決方案的算法。

要生成問題和解決方案的一個重要原因是,這是解決一系列極其困難的挑戰的唯一現實方法。要了解其中原因,請類比課程在教育中的重要作用。為什么要設置課程呢?因為如果沒有事先掌握基礎技能,就很難學習高級技能或概念。這個原則不僅適用于課堂上的學生,也適用于學習算法:正如這個項目的結果所示(不久后會公開),如果將難以或不可能直接學習的任務分解成一個個「墊腳石」任務,那事情就變得簡單多了,實際上這就是課程的作用。

然而,雖然原則上課程對某些任務來說必不可少,但在實踐中我們面臨的問題是,我們不知道適合給定任務的課程是什么,而且我們也不知道能夠學習的任務范圍,要是它們會在正確的時間和順序受到攻擊就好了。事實上,我們很快會發現,最好的課程往往是反直覺的,甚至是逆向的(即學習難的任務會為簡單的任務找到更好的解決方案)。因此,雖然課程通常是手動設計的,但只有讓在學習者學習課程的同時設計課程,才能揭示所有可能的課程內容。

開放性展示了自生成課程和許多其它課程的好處:在最好的情況下,它可以無限地生成新任務,智能體也能夠解決日益多樣化和復雜的挑戰。

自然進化是研究開放性的最初靈感來源之一,其復雜性近乎永恒。進化實際上是一個無限的過程,它在這條不斷向前的路上創造了地球上所有形式的生命,這個過程仍在繼續。值得注意的是,人類智能的產生也來自這個過程。雖然進化計算領域受開放性的啟發,但沒有任何進化算法接近自然,它們更像收斂到全局最優的傳統機器學習算法,而不是生成一個能遍歷所有可能生命形式的生命之樹(或者更抽象地說,是一系列挑戰(比如夠著高高樹上的葉子)和解決方案(比如長頸鹿和毛毛蟲))。

雖然關于開放性的以往研究主要集中在創造人工世界(通常與人造生命領域相關),例如 Tierra、Avida、Evosphere 和 Chromaria,但深度神經進化的最新進展使開放性變得實用,并可以與機器學習相結合。與傳統的進化算法(如遺傳算法、進化策略等)相比,這可以歸類為黑箱優化,受開放性概念啟發的現代神經進化算法更側重于發散(divergence)和發現「踏腳石」,例如查新(novelty search)、局部競爭查新、MAP-Elites、最小標準協同進化(MCC)、創新引擎(Innovation Engines)和 CMOEA。有趣的是,Uber AI 實驗室最近取得了一項名為 Go-Explore 的突破,它在《蒙特祖瑪的復仇》和 Pitfall 中取得了破紀錄的表現,這項突破也受到了這些想法的啟發。最小標準協同進化(MCC)算法尤其值得注意,它突出了在協同進化動態中創建新環境的潛力,盡管它沒有采取在其環境中明確優化解決方案的步驟。此外,創新引擎引入了在不同任務間切換目標的想法,即將智能體從一個環境遷移到另一個更優的環境,從而利用一組不斷擴展的「踏腳石」來促進發展。

POET 概要

Uber 發布了 Paired Open-Ended Trailblazer (POET),它結合了這些想法,明確地將這一系列研究推向生成新的任務、優化解決方案,以及在任務間遷移智能體,以實現其它方案無法取得的進展。為了證明這一方法,Uber 研究人員將 POET 用于創建和解決兩足步行環境(改編自 OpenAI Gym 中的 BipedalWalker 環境),其中每個環境 E_i 與一個神經網絡控制的智能體 A_i 配對,該智能體 Ai 嘗試學習如何在該環境行走。下圖展示了示例環境和智能體:

Uber提出有創造力的POET:自行開發更困難環境和解決方案

圖 1:兩足步行環境示例。

Uber提出有創造力的POET:自行開發更困難環境和解決方案

圖 2:POET 概覽。

如圖 2 所示,POET 開始于一個與隨機初始化的智能體 A_0 配對的簡易環境 E_0,然后不斷增長,不過環境和智能體一直是一對一配對的。在整個過程中,POET 旨在實現兩個目標:(1) 將環境向多樣性和復雜性演化;(2) 優化智能體以求解其配對環境。在單次運行期間,POET 會產生一系列復雜的環境及其解決方案。下圖展示了 POET 發現的一個有趣的環境和解決方案:

Uber提出有創造力的POET:自行開發更困難環境和解決方案

圖 3:POET 發現的有趣環境和解決方案示例。

為了進化環境,POET 首先決定當前有哪些環境適合復現,判定標準是配對智能體必須滿足的分數閾值。此要求可避免將計算資源浪費在當前過于困難的問題上。接下來,適當的環境突變(復制并稍微更改)以生成候選子環境,其配對智能體初始化為與母環境中相同的智能體。最后,POET 評估候選子環境,按最小標準篩選,根據新穎性排名,最后納入排名最高的候選環境。在這項工作中,最小標準是配對智能體適應度分數的下限和上限,它過濾掉對于當前智能體群體而言過于簡單或過于復雜的環境。新穎性為創造更多樣化的環境(挑戰)帶來壓力——這是對候選環境與先前環境異同的定量測量。鑒于計算資源受限,一旦環境數量達到上限,在接納新環境前,POET 將刪除最舊的環境。

在這些實驗中,研究者使用最新的進化策略(ES)變體來優化智能體以獲得最大的環境回報,但任何強化學習或黑箱優化算法都可以實現。大多數情況下,智能體都經過了優化,可以在與其配對的環境中進行改進。重要的是,POET 還會定期進行遷移實驗,以驗證在一個環境中優化的智能體是否可以作為在另一環境中獲得更好性能的「跳板」。這樣,通過遷移測試,POET 可以充分利用其多個智能體—環境對的多樣性,即不會錯過任何利用現有「跳板」的機會。存在兩種類型的遷移(圖 4):直接遷移,來自源環境的智能體在目標環境中直接進行評估,以及提議遷移(proposal transfer),智能體在目標環境中執行一個 ES 優化步驟(以防將有用的技能從源環境遷移到目標環境時需要一些優化)。如果遷移后的結果更好,則替換目標環境中的現有配對智能體。

Uber提出有創造力的POET:自行開發更困難環境和解決方案

圖 4:POET 有兩種類型的遷移:直接遷移和提議遷移。只有遷移在目標環境上的性能優于當前配對智能體時,遷移才會發生(由虛線表示)。

觀察開放式發現

遷移可以產生意想不到的效果,這些效果都是產生重要進化的「跳板」。在一個示例中,原始環境是平坦的地面,其配對的智能體學習在沒有完全站立的情況下向前移動。該步態表示局部最優,因為如果智能體直立,可以實現更有效的步態。在迭代 400 次后,該環境生成帶有路障的子環境。最初的子智能體從母環境中繼承了低膝行走步態,這樣可以實現在惡劣的環境中移動,但是它經常會因為以前沒有遇到過的障礙而出錯。最終,子環境中的智能體學會站起來并跳過障礙。

然后,在一個證明遷移潛力的演示中,該技能在 1175 次迭代時被遷移回母環境。現在,原始平坦環境中的智能體是直立的智能體,這樣搜索過程就脫離了低膝局部最優。這個新的直立策略專注于新的平坦環境,能產生更快的步態。在不允許遷移的情況下,我們在平坦環境中對原始的低膝步態進行了長時間的優化,從而確認了如果沒有遷移就不會發現這種更有效的直立步態(即,搜索陷入局部最優)。

上面一部分形象地展示在原文圖5中,讀者可查閱原文。

通過改變舊環境創建新環境,POET 實際上是構建多個重疊的課程。從目前的「踏腳石」中合理地解決環境的最低標準意味著課程正逐漸建立,新穎性激發了各種挑戰,而這些挑戰都發生在同一個階段。在一次運行中不斷產生此類解決方案的能力本身就很有趣,但是如果所獲得的技能不能直接從頭開始學習,那么這種能力的重要性就凸顯出來了。更有趣的是,這些高級技能的對應課程本身并不容易被人類事先構想出來。換句話說,如果我們逐步引導學習者完成針對最終目標環境的一系列人為設計的難度升級任務,仍然無法達到 POET 掌握的技能,該怎么辦?這個假設意味著 POET 需要找到解決方案和引導它們的課程。

Uber 研究人員通過收集由 POET 生成和解決的困難環境來驗證這一假設,然后設計簡單的增量課程,以便從頭開始重新實現相同端點。每個簡單的課程都反映了這樣一個事實:逐漸增加課程難度——無解!實際上,如圖 6 所示,對 POET 以這種方式發現的在更具挑戰性的環境中的行為進行的復現嘗試都沒有實現。

圖 6 中的每個玫瑰圖是一組實驗,其中紅色五邊形表示 POET 創建和解決的環境。每個五邊形的五個頂點表示粗糙度、間隙和障礙寬度的上下限。以紅色五邊形為目標,五個藍色五邊形表示五種獨立運行的直接路徑課程控制算法(使用相同的 ES 優化算法)能夠解決的最接近目標的環境。課程從簡單、平坦的環境開始,每當問題充分解決時(根據 POET 中的相同標準),環境會稍微改變,使其更接近目標環境(與 POST 相同的環境變化數量)。顯然,控制算法不僅無法解決 POET 創建和解決的環境,而且可解決的環境范圍比起 POET 的范圍窄得多(這意味著 POET 智能體可以處理更廣泛的多樣性),這兩者都證明了 POET 優于直接建立課程。

Uber提出有創造力的POET:自行開發更困難環境和解決方案

圖 6:基于課程的學習(藍色)無法在 POET 發明的各種挑戰性環境中復盤 POET 的表現(紅色)。請注意,每個藍色五邊形都是基于直接路徑課程的控制的運行,始終未能達到紅色目標的水平。

結論和未來的工作

由于其發散和對「墊腳石」的充分利用,POET 實現了廣泛的技術應用,這可能是任何傳統方式都無法實現的。此外,POET 能夠自己創造挑戰,而不是依賴人類創造。許多挑戰和解決它們的技能集都是在一次運行中發現的,而不是依賴于不同運行的隨機初始化和特性來產生興趣多樣性。原則上,通過對環境空間進行更復雜的編碼,POET 可以長期持續甚至無限地創建新的挑戰及其解決方案。開放性之所以吸引人,不僅因其在提供困難問題解決方案和所需技能方面有實際價值,還因為它令我們吃驚的創造力。由于有這種驚喜存在,POET 的輸出通常很有趣,POET 也不依賴用于優化的學習算法,因此它可以與任何 RL(或其他)方法結合。

最終,Uber 設想將 POET 從這一概念初步證明中的 2D 障礙課程擴展到廣泛的相關領域,以實現更多開放式發現。例如,雖然 parkour 已經在人類設計的障礙課程中進行 3D 探索,但 POET 可以同時為他們發明全新課程和解決方案。POET 同樣可以生產吸引人的新型軟體機器人,以應對只有軟體機器人才能解決的獨特挑戰。在更實際的層面上,它可以生成自動駕駛的模擬測試課程,既可以展示邊緣案例,也可以展示解決方案。甚至更奇特的應用,例如發明新的蛋白質或化學過程,以解決各種應用領域中的問題。任何問題空間都有可能產生不同的變化,POET 可以為它們開辟道路。

該研究的相關論文已發布,介紹了更多技術細節,源代碼稍后也會發布。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449647.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449647.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449647.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring boot 報錯:Your ApplicationContext is unlikely to start due to a @ComponentScan of the default p

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 ** WARNING ** : Your ApplicationContext is unlikely to start due to a ComponentScan of the default package. Your ApplicationCo…

jl1.如何設置元素的寬高包含元素的邊框和內邊距

jl1.如何設置元素的寬高包含元素的邊框和內邊距 方法一: 文檔地址:http://www.w3school.com.cn/cssref/pr_box-sizing.asp CSS3 box-sizing屬性: box-sizing: border-box; 抱歉,由于我的粗心,導致之前標題中的錯誤。目…

C語言編譯過程總結詳解

源文:http://bbs.dzsc.com/space/viewspacepost.aspx?postid76976 C語言的編譯鏈接過程要把我們編寫的一個c程序(源代碼)轉換成可以在硬件上運行的程序(可執行代碼),需要進行編譯和鏈接。編譯就是把文本形…

DataFrame合并

獲取數據后,需要對數據進行合并,通常是日期,也有對相同公司進行合并 下面就研究數據合并的常用方法: 目錄 append merge concat 首先創建幾個DataFrame,作為樣本材料進行練習: df1 pd.DataFrame(np…

回顧小程序2018年三足鼎立歷程,2019年BAT火力全開

從 2018 年開年,小程序就成為了互聯網巨頭加緊布局的開始。微信小程序先發制人,且擁有 10 億月活躍用戶,如此巨大的流量往往使眾多后來者望而卻步。 但這里不包括阿里和百度。其實螞蟻金服團隊早在 2017 年 9 月便開始籌劃小程序,…

promise之我見

在我們平時的方法中有很多方法是promise封裝的, 有些函數后邊跟的then和catch 就是promise的方法,先看一下pormise的特點 (1)對象的狀態不受外界影響。Promise對象代表一個異步操作,有三種狀態:pending&…

2020-11-26

import datetime last[date] last[date].apply(lambda x:datetime.datetime.strptime(str(x),%Y%m%d).strftime(%Y/%m/%d)) cu.rename(columns{"Unnamed: 0":"date"},inplaceTrue) traindatapd.DataFrame(traindata,dtypenp.float) list 轉化Data Frame …

CPP虛析構函數

#include<iostream> using namespace std;class base {public:base(){};virtual ~base(){}; };// 在類聲明中聲明純虛析構函數 //base::~base() {}class father: public base {public:~father(){cout << "father" << endl;} };int main() {base* a…

學習過程中的一些想法

2019.01.18 問題描述&#xff1a;在學習響應式布局視頻教程的時候&#xff0c;遇到了一些不是特別明白的知識點&#xff0c;比如&#xff1a;媒體查詢、視口&#xff0c;視頻中會講解使用的那一部分東西&#xff0c;不太影響我繼續看視頻&#xff08;能大概理解&#xff09;&am…

idea 新建springboot 的 web 項目

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 IDAE中新建web項目見&#xff1a;IntelliJ IDEA中新建JAVA WEB項目、maven項目 默認已有一個 maven 的 web 項目&#xff1a;gentle --…

PHP工程師需要掌握的知識(轉載)

掌握PHP基礎、文件操作、面向對象編程、CURL擴展。掌握Linux環境下面LAMP環境搭建、LNMP環境搭建。了解基本的HTTP協議和計算機網絡知識。熟悉常用的算法與數據結構知識&#xff0c;隊列、棧、隊、圖、樹、排序算法等。熟悉前端HTML、CSS、jQuery、BootStarp等知識。熟悉常用的…

讀碼,解碼,轉換

import chardet f open(ff2.csv,rb) data f.read() chardet.detect(data){encoding: GB2312, confidence: 0.99, language: Chinese}

從全棧式解決方案到情感化,揭秘問眾智能切入車載語音市場的最佳姿勢...

*問眾智能CEO張亞 如果說語音交互是車載場景的最佳方式&#xff0c;未來誰掌握車內語音交互“話語權”&#xff0c;誰就將主宰車輛智能網聯的新時代。 經過多年的漸進式發展&#xff0c;語音交互的價值正逐步走出單純“控制方式”的狹隘理解&#xff0c;向業內人眼中的“智能…

浮想——我和CSDN走過了3個時代(長文,無耐心讀完者勿入)

上周末公司年會&#xff0c;董事長蔣濤同學分享了他13年的創業經歷。 算起來&#xff0c;這已經是我第1、2、3、4、5、6、7年參加CSDN的年會了。場面上&#xff0c;這也是最大的一次&#xff0c;也是蔣濤同學講話時間最長的一次。下午時光&#xff0c;寶貝正在我懷里沉沉的睡著…

CentOS7的yum安裝mysql

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、mariadb 查看CentOS7中是否已經安裝了mariadb數據庫,若安裝了mariadb數據庫&#xff0c;先卸載mariadb數據再安裝MySQL。若沒有安裝m…

3530: [Sdoi2014]數數

3530: [Sdoi2014]數數 鏈接 分析&#xff1a; 對給定的串建立AC自動機&#xff0c;然后數位dp。數位dp的過程中&#xff0c;記錄當前在AC自動機的哪個點上&#xff0c;保證不能走到出現了給定串的點。 代碼&#xff1a; #include<cstdio> #include<algorithm> #inc…

阿里云日志添加要查詢字段

第一步&#xff1a;在API基控制器&#xff08;base文件下&#xff09;下面 $arr 就是我要接受的所有參數值&#xff0c;而 msg_id就是我以后要在阿里云日志中查詢的字段&#xff0c;以此字段統計某些數據 $arr 是前臺API接口傳過來的數據 &#xff0c;這里我需要使用 $arr[id] …

總理整節從事量化交易員所做工作與代碼

數據獲取&#xff08;期權數據&#xff09; 本人從事領域為量化期權領域&#xff08;皇冠上的明珠&#xff0c;真好聽&#xff0c;可是做起來&#xff0c;難度真是&#xff08;滴-------------&#xff09;&#xff09;。從最開始的手動從三大所復制粘貼期權數據&#xff0c;到…

Docker 上安裝、啟動 MySQL (圖解)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. 在docker倉庫中搜索mysql的鏡像&#xff1a; docker search mysql 下載鏡像&#xff1a; docker pull mysql 2. 查看本地鏡…

關于 std::set/std::map 的幾個為什么

2013-01-20 std::set/std::map &#xff08;以下用 std::map 代表&#xff09; 是常用的關聯式容器&#xff0c;也是 ADT&#xff08;抽象數據類型&#xff09;。也就是說&#xff0c;其接口&#xff08;不是 OO 意義下的 interface&#xff09;不僅規定了操作的功能&#xff…