作者:Salvatore Candido
Loon和Google AI如何實(shí)現(xiàn)世界上第一次在量產(chǎn)航空航天系統(tǒng)(a production aerospace system)中應(yīng)用強(qiáng)化學(xué)習(xí)算法。
驅(qū)動(dòng)一個(gè)超壓氣球穿過平流層只有兩個(gè)簡單的選擇:上升或下降。盡管如此,巧妙地駕馭氣球還是很復(fù)雜的。由于各種原因,導(dǎo)航特別適合于自動(dòng)化1,在Loon上,我們一直大力利用自動(dòng)化系統(tǒng),努力高效地將氣球引導(dǎo)到需要連接的人和地方。
因?yàn)闅馇螂S風(fēng)飛行,所以在一種非常真實(shí)的方式中,我們所能希望做的就是有效地在平流層中漂移。即使采用傳統(tǒng)的方法,反射性地遵循特定的,有界的算法調(diào)動(dòng)出來的飛行軌跡有時(shí)很有趣,甚至非常漂亮。當(dāng)我們發(fā)布關(guān)于我們100萬小時(shí)的飛行和有趣的緊急導(dǎo)航行為時(shí),什么是人工智能的話題擺在我的面前,因?yàn)槟菚r(shí),我們剛剛啟動(dòng)了基于深度強(qiáng)化學(xué)習(xí)的飛行控制系統(tǒng)的處女航。在我們?yōu)槲覀兊钠搅鲗舆B接任務(wù)改進(jìn)Loon導(dǎo)航系統(tǒng)的持續(xù)努力中,Loon和谷歌AI的一小群同事一直致力于開發(fā)一個(gè)利用深度強(qiáng)化學(xué)習(xí)(RL)的更強(qiáng)大的導(dǎo)航系統(tǒng),它是一種機(jī)器學(xué)習(xí)技術(shù),使智能體能夠在交互環(huán)境中利用自身行為和經(jīng)驗(yàn)的反饋進(jìn)行反復(fù)學(xué)習(xí)。這與自動(dòng)化系統(tǒng)遵循工程師手工制作的固定程序的傳統(tǒng)方法形成了對比。當(dāng)我們第一次開始探索這項(xiàng)技術(shù)的時(shí)候,我們并不總是清楚RL對于長時(shí)間自主穿越平流層的高空平臺(tái)是否可行。結(jié)果表明,RL對于平流層氣球群是可行的。如今,Loon的導(dǎo)航系統(tǒng)最復(fù)雜的任務(wù)是通過一種算法來解決的,這種算法是由計(jì)算機(jī)在模擬氣球?qū)Ш降膶?shí)驗(yàn)中學(xué)習(xí)的。據(jù)我們所知,這是世界上第一次在量產(chǎn)航空航天系統(tǒng)中部署強(qiáng)化學(xué)習(xí)。
今天,我們很榮幸與大家分享我們?nèi)绾卧谧匀唤缰腥〉眠@一突破性成果的技術(shù)細(xì)節(jié),并在這篇文章中討論為什么RL對Loon如此重要,以及我們將世界各地的人們聯(lián)系起來的使命。導(dǎo)航氣球變得越來越復(fù)雜駕駛氣球穿越平流層一直很困難。如本文所述,該系統(tǒng)必須應(yīng)對時(shí)變風(fēng)、氣球周圍風(fēng)場的局部可見度、復(fù)雜的系統(tǒng)模型和約束條件,如并非總是有足夠的功率進(jìn)行理想的機(jī)動(dòng);以及在長期規(guī)劃范圍內(nèi)的頻繁決策機(jī)會(huì)。在我們的傳統(tǒng)導(dǎo)航系統(tǒng)?中,即使通過大幅簡化問題(讀作:用導(dǎo)航性能換取更簡單、計(jì)算效率更高的算法),問題仍然非常復(fù)雜。在傳統(tǒng)體制內(nèi)推動(dòng)更大的進(jìn)步和效率已經(jīng)達(dá)到了復(fù)雜的程度,坦率地說,這讓我們大家都很頭疼。除了這個(gè)令人頭痛的問題,我們的挑戰(zhàn)不僅僅是更好地解決同一個(gè)任務(wù)(盡管這很重要)。在考慮整體連通性任務(wù)時(shí)的其他挑戰(zhàn)——例如飛行系統(tǒng)星座的低空協(xié)調(diào)、導(dǎo)航具有增強(qiáng)能力的新高空平臺(tái),以及調(diào)整當(dāng)前戰(zhàn)術(shù)以處理Loon多樣化產(chǎn)品線所需的新類型導(dǎo)航目標(biāo)——增加了任務(wù)的復(fù)雜性任務(wù)。強(qiáng)化學(xué)習(xí)是一種用來解決這些挑戰(zhàn)的有趣技術(shù)。
它不僅使我們能夠比我們現(xiàn)在使用的人類設(shè)計(jì)的算法更好地操縱氣球,而且能夠迅速應(yīng)對這些新的挑戰(zhàn),使我們的導(dǎo)航系統(tǒng)能夠管理新飛行器和不同用途的“l(fā)oon”艦隊(duì)。RL已經(jīng)存在了很長一段時(shí)間,但由于以深度神經(jīng)網(wǎng)絡(luò)的形式注入了高容量函數(shù)逼近器,該領(lǐng)域經(jīng)歷了一次復(fù)興。在深度學(xué)習(xí)的世界中“夢游”幾年前,我們啟動(dòng)了代號為“夢游計(jì)劃”的Loon 導(dǎo)航RL項(xiàng)目,這是Loon和谷歌人工智能團(tuán)隊(duì)在蒙特勒爾的一次秘密合作。利用我當(dāng)時(shí)的一些朋友和同事,我們決定讓團(tuán)隊(duì)再次聚在一起,嘗試一些瘋狂的東西。谷歌人工智能不僅容納了地球上一些最杰出的人,而且他們的團(tuán)隊(duì)也有跨 Alphabet 工作的自由度,而且,像我們一樣,他們喜歡做瘋狂的事情。這次合作非常合適。為了證明RL在平流層氣球?qū)Ш街械目尚行?,我們的第一個(gè)目標(biāo)是展示我們可以用機(jī)器學(xué)習(xí)一種替代我們當(dāng)時(shí)的導(dǎo)航控制器的方法。坦率地說,我們想確認(rèn),通過使用RL,一臺(tái)機(jī)器可以建立一個(gè)導(dǎo)航系統(tǒng),相當(dāng)于我們自己建立的。在高層次上,我們的方法是建立一個(gè)新的分布式訓(xùn)練系統(tǒng),該系統(tǒng)利用Loon專有的平流層氣球模擬和一個(gè)學(xué)習(xí)者使用分布式Q-learning?來理解數(shù)千萬個(gè)模擬飛行小時(shí)。
所學(xué)習(xí)的用于飛行控制的深度神經(jīng)網(wǎng)絡(luò)被適當(dāng)?shù)陌踩WC層包裹,以確保智能體安全駕駛。通過我們的模擬基準(zhǔn),我們不僅能夠復(fù)制,而且利用RL大大改善我們的導(dǎo)航系統(tǒng)。是時(shí)候開始真正的飛行了。夢游到現(xiàn)實(shí)世界(機(jī)器:1/Sal:0)盡管現(xiàn)在強(qiáng)化學(xué)習(xí)讓人興奮不已,但在像Loon這樣的生產(chǎn)型航空航天系統(tǒng)中,大規(guī)模部署強(qiáng)化學(xué)習(xí)以實(shí)現(xiàn)持續(xù)運(yùn)行,這在以前從未實(shí)現(xiàn)過。盡管新方法在我們的仿真中取得了成功,但由于仿真與真實(shí)世界的差異,RL系統(tǒng)面臨的一個(gè)共同挑戰(zhàn)是從仿真過渡到真實(shí)系統(tǒng)。我們第一次飛行演示的目的是評估這是否會(huì)成為一次表演。2019年7月,我們在秘魯上空的平流層中,用這個(gè)代號為cannelloni7?的機(jī)器學(xué)習(xí)控制器駕駛了一個(gè)loon氣球。作為對比,我們使用老一代的導(dǎo)航系統(tǒng)一種叫做Statier的算法在附近駕駛另一個(gè)loon氣球。
在整個(gè)試驗(yàn)過程中,兩個(gè)系統(tǒng)都能夠完全自主運(yùn)行,無需任何人為干預(yù)。為了測試RL和Statier的有效性,我們測量了兩個(gè)氣球在一段時(shí)間內(nèi)與Loon的Romer盒子的距離,這是我們用來測量LTE服務(wù)水平的一種設(shè)備。從某種意義上說,正是這臺(tái)機(jī)器它花了幾周的時(shí)間構(gòu)建了它的控制器——而我則是和我的團(tuán)隊(duì)一起,花了很多年的時(shí)間仔細(xì)地微調(diào)了我們傳統(tǒng)的控制器,這是基于十年來使用氣球的經(jīng)驗(yàn)。我們很緊張…希望我們能夠輸?shù)暨@場比賽。cannelloni7不僅僅能通過算法實(shí)現(xiàn)在真實(shí)(非模擬)平流層中的有效導(dǎo)航,它的性能還超過了傳統(tǒng)的系統(tǒng),在整個(gè)測試過程中,它減少了氣球的漂移,使氣球始終靠近Romer盒子。機(jī)器1,Sal 0。您可以在下面的圖表中看到結(jié)果。
更有趣的是我們觀察到的主觀事物。雖然人們可能認(rèn)為純機(jī)器學(xué)習(xí)的系統(tǒng)比手工設(shè)計(jì)的系統(tǒng)要“粗糙”,但我們觀察到的情況恰恰相反。左下方是Stati軌跡的片段。對比右側(cè)同一時(shí)間段的夢游軌跡,你可以看到一條更加平滑的飛行軌跡。完整地說,它幾乎更接近于你所期望的人類控制。
我和我的同事Sameera Ponda一起觀看了測試過程。當(dāng)我們研究“l(fā)oon”的導(dǎo)航系統(tǒng)時(shí),兩個(gè)人一直盯著漂浮在平流層?的氣球,我們對早期RL測試中觀察到的一些優(yōu)雅行為感到驚訝??吹竭@個(gè)系統(tǒng)已經(jīng)學(xué)會(huì)了在一個(gè)高度局部化的風(fēng)場中平穩(wěn)地定位,我們就清楚地知道RL是有效的。
由RL控制器產(chǎn)生的高度局部跟蹤模式圖。太平洋上空39天接下來我們著手做一個(gè)更系統(tǒng)、更全面的測試1?。我們在太平洋平流層的赤道位置部署了代號為perciatelli4411的最新版本的新學(xué)習(xí)控制器,在那里傳統(tǒng)的導(dǎo)航系統(tǒng)被認(rèn)為表現(xiàn)出色。實(shí)驗(yàn)參數(shù)與我們進(jìn)行的第一次測試相似,目標(biāo)是保持在一個(gè)確定地點(diǎn)50公里以內(nèi)。測試進(jìn)行了39天,RL控制器駕駛一組氣球飛行了近3000個(gè)小時(shí)。結(jié)果非常好??偟膩碚f,RL系統(tǒng)更經(jīng)常地將氣球保持在所需位置的范圍內(nèi),同時(shí)使用更少的能量。
顯然,loon離一個(gè)特定地點(diǎn)越近越好,因?yàn)樗転槟抢锏娜藗兲峁└€(wěn)定的服務(wù)。然而,電力使用幾乎同樣重要。loon系統(tǒng)是太陽能驅(qū)動(dòng)的系統(tǒng),收集的能量是一種珍貴的商品。它不僅為導(dǎo)航提供動(dòng)力,而且還為通信設(shè)備提供動(dòng)力,以達(dá)到駕駛目的。用更少的能量來控制氣球意味著更多的能量可以連接人們到互聯(lián)網(wǎng)、信息和其他人。我們注意到一些非常有趣的圖案。這是一個(gè)龜兔賽跑的情況,StationKeeper傾向于直奔目標(biāo),perciatelli44采取更慢,更穩(wěn)定的做法。
正如寓言中所說,這些差異反映了實(shí)現(xiàn)這一目標(biāo)的兩種根本不同的方法。StationKeeper一開始就進(jìn)入狀態(tài),試圖更快地接近目標(biāo)位置,經(jīng)常飛過,需要倒車。有趣的是,這正是我們熟悉的需要使用圖8模式的場景。相比之下,perciatelli44并沒有盡可能頻繁或快速地接近目標(biāo)位置,而是更專注于簡單地留在目標(biāo)區(qū)域內(nèi),盡可能被動(dòng)地駐扎。這種方法消耗的能量要少得多,在其他情況下也可以利用,比如一旦完全偏離范圍,就需要進(jìn)行更重要的機(jī)動(dòng)。RL投入批量運(yùn)行確認(rèn)性能后,我們開始啟動(dòng)深度學(xué)習(xí)控制器進(jìn)入正常運(yùn)行。從做一次某件事情到所有的時(shí)間都在大批量復(fù)制,通常有大量的工作要做,這是一個(gè)工程常數(shù)。在這種罕見的情況下,轉(zhuǎn)換快速而順利地進(jìn)行,幾乎在每個(gè)方面上都有性能改進(jìn)。我們發(fā)現(xiàn)RL非常適合于實(shí)際批量系統(tǒng)的規(guī)劃和控制。雖然在進(jìn)行更多計(jì)算(評估替代動(dòng)作序列)來規(guī)劃更高質(zhì)量的決策和使用簡化模型(如線性化控制器)來適應(yīng)更小的計(jì)算包線之間通常存在權(quán)衡,但RL將大部分昂貴的計(jì)算轉(zhuǎn)移到agent訓(xùn)練。這意味著大部分繁重的計(jì)算發(fā)生在飛行開始之前。在整個(gè)飛行過程中,我們的機(jī)隊(duì)控制系統(tǒng)只需要運(yùn)行一個(gè)“廉價(jià)”的功能,即當(dāng)氣球在平流層中漂移時(shí),一分鐘接一分鐘地運(yùn)行一個(gè)深度神經(jīng)網(wǎng)絡(luò)。在前文我們討論了氣球的有效移動(dòng),但是這個(gè)計(jì)劃系統(tǒng)的批量數(shù)據(jù)中心工作負(fù)載賦予了短語“有效漂移”的第二個(gè)含義。
我們的導(dǎo)航系統(tǒng)在實(shí)時(shí)關(guān)鍵路徑中的簡單計(jì)算任務(wù)所產(chǎn)生的復(fù)雜、高質(zhì)量的行為,為解決以前不實(shí)用的氣球群的復(fù)雜編隊(duì)開辟了新的可能性。這個(gè)氣球是人工智能嗎?在尼爾·阿姆斯特朗看來,這一看似簡單的基于RL的氣球飛行的小步對loon來說是一個(gè)巨大的飛躍。這種方法的關(guān)鍵區(qū)別在于,我們不是在建造一臺(tái)真正擅長引導(dǎo)氣球穿過平流層的特定導(dǎo)航機(jī)器,而是在建造一臺(tái)能夠利用我們的計(jì)算資源,來建造最初由我這樣的工程師設(shè)計(jì)的導(dǎo)航機(jī)器的機(jī)器。除了超越工程師所能創(chuàng)造的質(zhì)量之外,這種方法還允許我們擴(kuò)展到比一小群人在傳統(tǒng)時(shí)間尺度上使用傳統(tǒng)方法所能完成的更復(fù)雜和眾多的任務(wù)。要利用高空平臺(tái)為幾十億未聯(lián)網(wǎng)的人中的更多人帶來互聯(lián)互通,質(zhì)量和規(guī)模都是必需的。Loon和Google人工智能團(tuán)隊(duì)希望,在Loon之外,我們在平流層導(dǎo)航方面的工作可以作為一個(gè)證據(jù),證明RL可以用來控制復(fù)雜的、真實(shí)世界的系統(tǒng),從而實(shí)現(xiàn)基本的連續(xù)和動(dòng)態(tài)活動(dòng)。我們認(rèn)為loon的區(qū)域駐留任務(wù)突出了RL的一些方面,這些方面是團(tuán)隊(duì)需要解決的重要開放研究問題。關(guān)于Loon,我們將繼續(xù)與我的同事Marc Bellemare領(lǐng)導(dǎo)的Google AI Montreal RL團(tuán)隊(duì)合作,不僅改進(jìn)平流層氣球的導(dǎo)航,而且?guī)椭绊慠L領(lǐng)域如何發(fā)展,以用于越來越多的像Loon一樣的系統(tǒng)。
在我上一篇關(guān)于loon的導(dǎo)航系統(tǒng)的文章中,我問了一個(gè)問題:我們是否在和人工智能打交道。我的回答是不確定的。這次我的回答更加微妙。雖然一個(gè)在平流層中高效飄浮的超壓氣球不可能變得有知覺,但我們已經(jīng)從自己設(shè)計(jì)它的導(dǎo)航系統(tǒng)過渡到讓計(jì)算機(jī)以數(shù)據(jù)驅(qū)動(dòng)的方式構(gòu)建它。即使這不是阿西莫夫小說的開頭,這也是一個(gè)好故事,也許是值得稱之為人工智能的東西。閱讀這項(xiàng)工作的技術(shù)細(xì)節(jié),請參閱我們在《nature》上發(fā)表的論文。1氣球?qū)Ш叫枰址置朊氲仃P(guān)注細(xì)節(jié),必須觀看緩慢移動(dòng)的氣球(就像在平流層那么高的高度看著油漆慢慢變干)、大量數(shù)據(jù)的持續(xù)同化和漫長的規(guī)劃視野。這些因素使得這個(gè)問題更適合機(jī)器人而不是人類導(dǎo)航。2我們的飛行時(shí)間記錄是312天,通常我們的氣球會(huì)在高空停留數(shù)百天。3我們只直接觀察氣球位置和航跡上的風(fēng)。數(shù)值天氣模型的預(yù)報(bào)雖然是科學(xué)和工程的奇跡,但并不總是準(zhǔn)確的。?如果我們要評估每一個(gè)可能的決策序列,我們需要檢查3960個(gè)不同的備選方案,而不是開始考慮我們檢查的結(jié)果會(huì)有不確定性,因?yàn)槲覀儗︼L(fēng)并不是完全的了解。如果我們把這當(dāng)作一個(gè)搜索問題,不用說,即使有積極的改善和啟發(fā)式優(yōu)化算法幫助排序,我們最終得到的也可能是個(gè)次優(yōu)解。?Loon的傳統(tǒng)導(dǎo)航系統(tǒng)融合了高斯過程等機(jī)器學(xué)習(xí)技術(shù)和傳統(tǒng)控制理論,多年來,我們利用專家構(gòu)建了極其有效的控制規(guī)則。?Q-學(xué)習(xí)是一種算法,通過在agent考慮的特定情況下(Q-函數(shù))創(chuàng)建每個(gè)動(dòng)作的優(yōu)度表示(Q-函數(shù))來決定要采取什么動(dòng)作,Q-函數(shù)是通過經(jīng)驗(yàn)學(xué)習(xí)的。分布式Q學(xué)習(xí)是我的同事Marc Bellemare和他的合作者Will Dabney和Remi Munos在Deepmind開發(fā)的一種變體,它考慮的是結(jié)果的分布(概率意義上),而不是預(yù)期的結(jié)果。?這個(gè)挑戰(zhàn)眾所周知,它有一個(gè)特定的名字:sim2real gap(從仿真到現(xiàn)實(shí)的鴻溝)。?由于我和同事龔軍之間的一個(gè)奇怪的內(nèi)部笑話,RL系統(tǒng)所有主要的飛行控制器釋放都是以一個(gè)面食命名的。?可能沒什么好寫的。1?一場比賽可以是隨機(jī)的,但在整個(gè)賽季的過程中,最好的球員和球隊(duì)脫穎而出。11再加上意大利面。12其中一個(gè)飛行器,巧合的是,我們創(chuàng)紀(jì)錄的312天飛行系統(tǒng),可以在《自然》論文附錄中學(xué)習(xí)控制器飛行路徑16中看到。13RL用于許多物理系統(tǒng),但不經(jīng)常用于長時(shí)間和難以按下重置按鈕的情況。