小葵
如果機器人有大腦,會是什么樣?
在科幻電影《機械姬》里,全球最大搜索引擎公司“藍皮書”CEO納森向觀眾展示了自己發明的機器人大腦——納森利用自家搜索引擎“藍皮書”的算法構建了艾娃(影片中的智能機器人)大腦的“思維”,使之學會了人類的思考方式。
想讓機器有人類思維,同樣見之于特斯拉打造的自動駕駛AI上。2019年特斯拉自動駕駛日上,安德魯·卡帕西(Andrej Karpathy,特斯拉AI總負責人)曾明確向大眾傳達特斯拉自動駕駛是在模仿人類駕駛,因為現行的交通系統是基于人類視覺和認知系統來設計的。
由此,特斯拉開發出“人工神經網絡”,并利用大量有效的行車數據來訓練它,在這過程中不斷完善并迭代視覺算法,終于在今年年中拿掉毫米波雷達,而隨著超算Dojo浮出水面,長期被詬病只能算輔助駕駛的特斯拉,離真正的自動駕駛又近了一步。
從學會開車,到比人類更懂開車、開得更好,當一名優秀的“老司機”,是特斯拉自動駕駛持續優化的底層邏輯。
純視覺自動駕駛方案是特斯拉的獨門絕技,但需建立對計算機視覺深度訓練之上。
計算機視覺是一種研究機器如何“看”的科學。當人類看到一張圖片時,能清晰辨析圖片里的事物,比如美麗的風景照、一張小狗的照片,然而計算機看到的卻是像素(pixel)。像素是由圖像的小方格組成,這些小方塊都有一個明確的位置和相對應的色彩數值,計算機“記住”的就是這堆數字字符,而不是具體事物。
如果想讓計算機能像人類一樣快速準確識別出圖片里的事物,得讓機器有“人工大腦”,來模擬人腦處理加工圖像信息的過程,這個過程分為輸入層、隱藏層、輸出層,里面有許多人工神經元,可視作人腦初級視覺皮層中的錐體細胞和中間神經元。
整個訓練過程亦可類比小孩看圖識物,通過一次次輸入、對比、糾正,完成機器圖像認知。通常在訓練初期,人工神經網絡識別結果的準確度非常低,輸出結果和實際值相似度可能只有10%。為了提高準確度,需要再將兩者誤差從輸出層反向傳播至輸入層,并在反向傳播中,修正神經網絡隱藏層的參數值,經過上百萬次的訓練,誤差將逐漸收斂,直至輸入和輸出端匹配度達到99%。
上述過程是理解特斯拉自動駕駛AI的關鍵,只不過特斯拉開發的人工神經網絡專注于駕駛領域,做一名專職“云端司機”。對它來說,最好的學習材料就是行車數據,大量、多樣化、來自真實世界的駕駛訓練數據集(training dataset)是自動駕駛AI能應對各種路況、交通問題的百寶書。
在影子模式的支持下,特斯拉全球百萬車隊,每時每刻的行車數據都成為這位云端“老司機”提升自身駕駛能力的養分。時至今日,特斯拉Autopilot已經能瞬間完成道路上各種動靜目標、道路標識、交通符號的語義識別,反應速度甚至比人腦條件反射更快。
除了應對日常駕駛場景外,AI司機還需要處理一些較為少見的長尾情況(Corner cases)。
2020年Matroid機器學習大會上,卡帕西以交通指標STOP為例,講解了Autopilot應對這些長尾情況的具體方法。
在日常駕駛過程中,車輛總會經過形形色色的STOP指標,最為正常的情況就是一個立在路旁或者路中、紅底白字的STOP標識,但現實生活總會有些預料之外的情況發生,駕駛員偶爾會碰上一些奇奇怪怪、需要結合具體背景來理解意涵的指標,包括不限于以下:
無效STOP指標,比如被某人拿在手上卻無意義;下方附帶文字說明的STOP指標,比如不限制右行;STOP字母被樹枝、建筑物遮擋的指標……這些都是出現頻次不高卻不勝枚舉的情況。
遇到上述情況,人類駕駛員可以輕松識別出絕大部分情況下的“STOP”,并很快作出行動反應。但對計算機來說,情況就變得復雜起來,畢竟它看到的不是具體的“STOP”,而是一堆無意義的數字代碼,如果遇到現有訓練數據集中沒出現的情況,比如一些上述奇奇怪怪、較為少見的指標,自動駕駛神經網絡就不能處理。
這部分少見的長尾數據通常無窮盡,但又必須在盡可能短的時間內學會應對,如果一切都讓人工操作,無疑需要耗費巨大的時間成本和資源。盡管在8月20日的AI大會上,卡帕西透露目前特斯拉標注團隊規模已達千人級別,但在海量的行車數據面前,千人還是顯得杯水車薪。
對此,特斯拉內部開發了數據離線自動標注(Data Auto Labeling)以及自動訓練框架“數據引擎(Data Engine)”。
首先,特斯拉神經網絡團隊在對這些長尾情況有所了解后,會先編成一個樣本數據集,并為此創造一個局部小型神經網絡來學習、訓練(與其他神經網絡并行),通過OTA方式部署到全球英語地區特斯拉車輛上。
再利用車輛影子模式,但凡遇到實際駕駛情況和自動駕駛AI決策不一致的情況,這部分行車數據會自動上傳至特斯拉后臺數據引擎中,在被自動標注后,重新納入已有的數據訓練集中,繼續訓練原本的神經網絡,直到新的數據被掌握。
就這樣,在大量訓練數據的喂養下,神經網絡變得“見多識廣”、更加聰明,可以識別不同條件狀況下的STOP標識,精確度逐漸從40%提升至99%,完成單一任務學習。
不過,這僅僅是學習一個靜態的信號,在汽車駕駛過程中會涌現無數靜態和動態的信號,靜態如路邊大樹、路障、電線桿等,動態如行人、車輛等,而這些信號由攝像機捕捉到后交由神經網絡訓練、學習。目前特斯拉的自動駕駛神經網絡已發展出9大主干神經(HydraNet)和48個神經網絡,可識別超過1 000種目標。
然而,僅僅讓自動駕駛AI學會開車還不夠,還得讓它開得像人類“老司機”一般駕輕就熟,安全又平穩。
一位經驗老到的司機,能在不同路況下,輕易判斷出前方車輛與我們的距離,從而為保障行車安全而留出一定車距。
但對傳感器而言,要想判斷物體遠近必須要理解物體的深度,不然在他們眼中,距離我們10m和5m的兩輛完全一樣的車,就會被認為是一大一小的關系。
對此,有些車廠選擇用激光雷達路線來探測深度,特斯拉則選擇了純視覺算法,模仿人類視覺來感知深度。特斯拉先是打造了毫米波雷達+視覺傳感融合路線,直到今年5月才正式官宣,拿掉了毫米波雷達,上線純視覺版本的Autopilot。
此事一出,社會各界一片嘩然,很多人不能理解特斯拉為何要拿掉單價僅300元,又能為行車安全增添保障的高性價比雷達。其實,在特斯拉早期多傳感器融合路線中,毫米波雷達的存在就猶如小孩的學步車,只是幫助神經網絡來學習訓練深度標注(annotate)。
在2019年的自動駕駛發布會上,卡帕西是這樣介紹毫米波雷達的,他說:“要想讓神經網絡學會預測深度,最好的方式還是通過深度標注的數據集進行訓練,不過相對于人工標注深度,毫米波雷達反饋的深度數據精準度更高。”因此,引入毫米波雷達,實質是用以訓練和提高神經網絡對深度的預測。
值得一提的是,卡帕西講解時背景幻燈片的右下角,清晰地注明了帶有毫米波雷達的自動駕駛算法是“Semi-Automonous Self Driving”,翻譯過來是“半自動駕駛”。明顯,彼時的特斯拉Autopilot還只是個半成品。
直到特斯拉視覺算法在預測物體的深度、速度、加速度的表現,達到可替代毫米波雷達的水平,特斯拉的視覺算法才算真正獨立。
在2021年6月的CVPR大會上,卡帕西曾表示毫米波雷達收集數據中曾出現了“間歇性翻車”,甚至誤判等情況。他舉了3個具體的例子:前方車輛急剎車、大橋下前車行駛速度以及對路邊靜止卡車的判斷。
情況一:前方車輛出現急剎,毫米波雷達短時間內出現6次跟丟目標車的情況,跟丟狀態下前車的位置、速度和加速度都歸于零。
情況二:在行駛的汽車從大橋下通過時,雷達把一靜一動的物體都當作了靜止物體。此時視覺傳感卻計算出行駛車輛的速度和位移,導致數據融合后的曲線傳遞出“前車在減速并且剎車”的錯誤信息。
情況三:在高速路旁停著一輛白色大卡車,純視覺算法在距目標車180m處就發現了白色卡車,并作出了預報,但融合算法直到110m處才作出反饋,足足延遲了5秒。
上述案例里,純視覺算法均輸出穩定且大幅優于雷達+視覺融合算法,能夠精準地跟蹤到前車行駛狀況并作出深度、速度、加速度等數據。
不僅如此,純視覺算法還可以在霧、煙、塵等環境里保持對前方車輛的測速、測距工作,如此一來拿掉毫米波雷達也不奇怪了。
根據特斯拉在AI Day上最新發布的信息,目前特斯拉每周能夠獲得1萬人在惡劣環境下駕車的短視頻,包括大雨、大雪、大霧、黑夜、強光等情況,神經網絡通過學習訓練這些已經標注好的材料,實現在沒有毫米波雷達的情況下,也可以精準感知前方車輛距離。
可以說,特斯拉宣布拿掉毫米波雷達的底氣,是對自己純視覺算法成熟的自信,并且在無監督自學的加持下,特斯拉純視覺算法迭代和完善明顯提速。
今年7月10日,特斯拉純視覺版本的FSD正式在美開啟內測,2 000名受邀車主通過OTA方式升級到FSD Beta V9.0版本,他們大多是特斯拉的粉絲兼中小型KOL,Youtube博主Chunk Cook(以下簡稱CC)就是其中之一,他還略懂工程學和航天學專業知識。
系統更新一結束,CC就開啟了新版FSD道路測試,并把測試視頻上傳至Youtube。視頻中他來到一個車輛較多、車速較快的T路口進行轉彎測試,結果顯示,7次中只有1次FSD順利完成自動駕駛,其余都需要人工接管方向盤來完成駕駛。
但很快,隨著7月底FSD推送新版本V9.1,CC發現升級后的FSD表現出乎他的意料。他又在相同道路上進行了7次自動駕駛測試,結果顯示,7次中4次都較為順利地完成了自動駕駛,但在轉彎速度上有些“磨蹭”,沒有展現“老司機”應有的果斷,但在綜合得分上,新版本Autopilot優于舊版本。
8月16日,特斯拉FSD又升級至新版本V9.2,CC同樣搶先測試并上傳視頻,還是同一個路段,不過測試時間改在了夜間,他公開表示,此次最明顯的改進是Autopilot的加速表現,在轉彎時能像人類駕駛員一樣果斷加速。
前后一個月的時間,純視覺Autopilot在同一條道路上的表現進步迅速,身后正是人工神經網絡強悍自學能力的體現。馬斯克表示,FSD beta V9.3、9.4都已在籌備中,會根據車主使用情況不斷進行細節優化,改善用戶體驗,并預備在V10版本做出重大的變化。
需要注意的是,大家驚艷于特斯拉純視覺Autopilot各種熟練操作時,也不能忘記這些路測大部分發生在北美地區。而非英語地區,比如人口稠密的亞洲地區,城市道路交通復雜度與地廣人稀的北美迥異,如何讓神經網絡學會應對各種路況交通,更值得思考。
收集實地數據是方法之一,但前提是你有大量車隊在該地區駕駛,另一種解決方法則是對自動駕駛進行仿真測試。
仿真,簡單講就是利用現實數據,將真實世界的實時動態景象,在計算機系統上實現重新構建和重現。除了能模擬不同城市的交通路況,仿真測試還能模擬一些極限場景,比如各種突發交通事件或者極為罕見的交通路況。
在AI Day上,特斯拉工程師舉了具體的例子,包括有行人在高速路上奔跑、行人數量龐大,或者非常狹窄的駕駛道路。這些案例往往非常極端,在日常駕駛場景中出現的概率也微乎其微,但正因為此,通過仿真來訓練神經網絡才有真正價值,而只有通過訓練,神經網絡才能學會正確應對。
為了能真正起到訓練作用,這些仿真測試必須充分還原現實場景,包括道路上各種行人、車輛、綠化林、路障、信號燈等,幾乎包含你在路上見到的所有交通要素。目前特斯拉已創建了3.71億張車內網絡訓練的圖像,以及4.8億個標簽,且數據規模還在快速擴張中。
要知道,仿真測試可達到的逼真程度,與計算機可提供的數據處理能力成正比。特斯拉 AI的仿真越強,對硬件算力、讀寫速度的要求越高。
馬斯克曾在2020WAIC大會上表示,當下計算機視覺已經超越人類專家水平,但要保證計算機視覺實現的關鍵是算力的大小。為此,特斯拉準備了頂級超算Dojo,以保證一切運算都能高效、準確完成。
在AI Day上,超算Dojo揭開了廬山真面目,內置3 000顆Dojo 1芯片組裝成了峰值算力達到1.1EFLOPS的ExaPOD,超越了目前世界上最快的超算日本富岳,成了全球第一。在發布會后,馬斯克在推特上回復網友提問時表示,ExaPOD的運算能力足以模擬人腦。
現階段,Dojo這臺性能猛獸專注于訓練特斯拉自動駕駛神經網絡,有了它,神經網絡的學習潛力一下子變得深不可測。至此,特斯拉集齊了自動駕駛三要素——數據、算法、算力,為推進L5級別自動駕駛做好了軟硬件準備。
不過,要想快進至自動駕駛終局,特斯拉還有很長的路要走,包括來自法律和道德層面的考驗。