華人博士用強化學習回收了SpaceX火箭
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
馬斯克旗下的SpaceX可以說帶火了“火箭回收”這一話題。
這不,連粉絲們都已經(jīng)開始摩拳擦掌,用自己的方式挑戰(zhàn)起了這個技術(shù)難題。
例如一位來自密歇根大學的華人博士,就用強化學習試了一把回收火箭!
他根據(jù)現(xiàn)實中的星艦10號一通進行模擬,還真在虛擬環(huán)境中穩(wěn)穩(wěn)地完成了懸停和著陸!

這個項目迅速在Reddit上引發(fā)了大批網(wǎng)友們的關(guān)注:

那么,他是如何實現(xiàn)的呢?
給火箭回收設(shè)立“獎勵機制”
要在模擬環(huán)境中回收火箭,那么大一只構(gòu)造復雜的火箭肯定是不能直接抱來用的。
于是,這位SpaceX的鐵桿粉絲首先基于氣缸動力學,將火箭簡化為一個二維平面上的剛體:

這個火箭的底部安裝有推力矢量發(fā)動機,能夠提供不同方向的可調(diào)的推力值(0.2g,1.0g和2.0g);同時,火箭噴嘴上還增加了一個角速度約束,最大轉(zhuǎn)速為30°/秒。
火箭模型所受到的空氣阻力則設(shè)定為與速度成正比。
現(xiàn)在,這個模型的一些基本屬性就能夠以下面兩個集合來表示:
- 動作空間:發(fā)動機離散控制信號的集合,包括推力加速度和噴嘴角速度
- 狀態(tài)空間:由火箭位置、速度、角度、角速度、噴管角度和仿真時間組成的集合
而“火箭回收”這一流程,則被分為了懸停和著陸兩個任務(wù)。
在懸停任務(wù)中,火箭模型需要遵循這樣一種獎勵機制:
- 火箭與預定目標點的距離:距離越近,獎勵越大;
- 火箭體的角度:火箭應(yīng)該盡可能保持豎直
著陸任務(wù)則基于星艦10號的基本參數(shù),將火箭模型的初始速度設(shè)置為-50米/秒,方向設(shè)置為90°(水平方向),著陸燃燒高度設(shè)置為離地面500米。

△星艦10號發(fā)射和著陸的合成圖像
火箭模型在著陸時同樣需要遵循這樣一種“獎勵機制”:
當著陸速度小于安全閾值,并且角度接近豎直0°時,就會受到最大的“獎勵”,也會被認為是一次成功的著陸。
總體而言,這是一個基于策略的參與者-評判者的模型。
接下來就是進行訓練:
最終,在經(jīng)歷了20000次的訓練后,火箭模型在懸停和著陸兩個任務(wù)上都實現(xiàn)了較好的效果:
最終,模型得到了很好的收斂效果:

而這枚模擬環(huán)境中的偽·星艦10號,也就像開頭展示的那張動圖一樣,學會了腹部著陸,穩(wěn)穩(wěn)地落地了。
下一步:增加燃料變量
這一項目一經(jīng)發(fā)出,就引來了紅迪眾多網(wǎng)友的圍觀和稱贊。
有人覺得用強化學習來解決傳統(tǒng)任務(wù)非常有趣,因為它具有更好的魯棒性。
作者也在下方回復表示:現(xiàn)實中惡劣的環(huán)境條件可以成為環(huán)境制約因素,而強化學習則能在一個統(tǒng)一的框架內(nèi)解決這些問題。

不過在稱贊之余,也有網(wǎng)友提出了最直接的這樣一個問題:
既然我們已經(jīng)可以使用經(jīng)典控制方法找到這些任務(wù)的最優(yōu)解,那為啥SpaceX之前沒人做?

下方有人解答到:這或許是因為之前的數(shù)字控制系統(tǒng)、傳感器等技術(shù)并不成熟,采用新方法就意味著要重新設(shè)計火箭的關(guān)鍵部分。
這也就是控制系統(tǒng)層面之外的“工程類的問題”,而SpaceX正是在這些相關(guān)領(lǐng)域中做了改進。

而那些較為傳統(tǒng)保守的航天航空工業(yè)則會使用使用凸優(yōu)化(Convexification)來解決火箭著陸問題。
也就是評論區(qū)有人貼出的這篇論文中提到的方法:

不少評論也為開發(fā)者提供了下一步開發(fā)的新思路,比如這條評論建議將“剩余燃料”也作為一個變量,模型燃料的減少或耗盡也是現(xiàn)實中的一個重要影響因素。
作者欣然接受了這一建議:是很容易添加的有趣設(shè)置,安排!

密歇根大學華人博士
開發(fā)者已經(jīng)為這一項目建立了一個網(wǎng)站,在主頁他這樣介紹到:
這是我的第一個強化學習項目,所以,我希望通過這些“低水平代碼”盡可能地從頭實現(xiàn)包括環(huán)境、火箭動力學和強化學習agent在內(nèi)的所有內(nèi)容。

作者叫Zhengxia Zou,是一位來自密歇根大學博士,主要研究計算機視覺、遙感、自動駕駛等領(lǐng)域。
他的論文曾被 ICCV 2021、CVPR 2021等多個頂會收錄:

下載鏈接:
https://github.com/jiupinjia/rocket-recycling
項目主頁:
https://jiupinjia.github.io/rocket-recycling/