來源:極客公園
Dojo 上馬,特斯拉補齊了自動駕駛三要素。
作者:小葵
如果機器人有大腦,會是什么樣?
在科幻電影《機械姬》里,全球最大搜索引擎公司「藍皮書」CEO 納森向觀眾展示了自己發明的機器人大腦,并留下這么一句話:「人們認為搜索引擎是人們思考的事物,但其實那是人們思考的方式。」
該影片上映于 2015 年,被譽為人工智能愛好者必看的電影之一,拿下包括奧斯卡金像獎在內等多項國際電影大獎。但在眾多獎項中,單項之冠是「最佳女配角」,艾麗西卡 · 維坎德,也正是影片中智能機器人「艾娃」的扮演者。
「艾娃」是納森給「她」取的名字,為制造出能獨立思考的人工智能,納森利用自家搜索引擎「藍皮書」的算法來構建艾娃大腦的「思維」,使之學會人類思考方式。
無獨有偶,想讓機器有人類思維,同樣見之于特斯拉打造的自動駕駛 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%,完成單一任務學習。
不過,這僅僅是學習一個靜態的信號,在汽車駕駛過程中會涌現無數靜態和動態的信號,靜態如路邊大樹、路障、電線桿等,動態的有行人、車輛等,而這些信號由攝像機捕捉到后交由神經網絡訓練、學習。目前特斯拉的自動駕駛神經網絡已發展出九大主干神經(HydraNet)和 48 個神經網絡,識別超過 1000 種目標。
然而,僅僅讓自動駕駛 AI 學會開車還不夠,還得讓它開得像人類老司機一般駕輕就熟、安全又平穩。
擺脫拐杖,Autopilot 初長成
任何一位經驗老道的司機,都能在不同路況下,輕易判斷出前方車輛與我們的距離,從而為保障行車安全而留出一定車距。
但對傳感器而言,要想判斷物體遠近必須要理解物體的深度,不然在他們眼中,距離我們 10 米和 5 米的兩輛完全一樣的車,就會被認為是一大一小的關系。
對此,有些車廠選擇激光雷達路線來探測深度,而特斯拉則選擇了純視覺算法,模仿人類視覺來感知深度,不過特斯拉先是打造了毫米波雷達 + 視覺傳感融合路線,直到今年 5 月,才正式官宣,拿掉毫米波雷達,上線純視覺版本 Autopilot。
此事一出,社會各界一片嘩然,很多人不能理解特斯拉為何要拿掉單價才 300 元、又能為行車安全增添保障的高性價比雷達。殊不知,在特斯拉早期多傳感器融合路線中,毫米波雷達的存在就猶如小孩的學步車,只是幫助神經網絡來學習訓練深度標注(annotate)。
在 2019 年自動駕駛發布會上,卡帕西是這樣介紹毫米波雷達的,他說:「要想讓神經網絡學會預測深度,最好的方式還是通過深度標注的數據集進行訓練,不過相對于人工標注深度,毫米波雷達反饋的深度數據精準度更高」,因此,引入毫米波雷達,實質是用以訓練和提高神經網絡對深度的預測。
值得一提的是,在他講解時的背景幻燈片右下角上,清晰地注明了帶有毫米波雷達的自動駕駛算法是「Semi-Automonous Self Driving」,翻譯過來是,半自動駕駛,明顯彼時的特斯拉 Autopilot 只是個半成品。
直到特斯拉視覺算法在預測物體的深度、速度、加速度的表現,達到可替代毫米波雷達的水平,特斯拉的視覺算法才算真正獨立。
在 2021 年 6 月 CVPR 大會上,卡帕西曾表示毫米波雷達收集數據中曾出現「間歇性翻車」、甚至誤判等情況。他舉了三個具體例子,前方車輛急剎車、大橋下前車行駛速度以及對路邊靜止卡車的判斷。
情況一:前方車輛出現急剎,毫米波雷達短時間內出現 6 次跟丟目標車的情況,跟丟狀態下前車的位置、速度和加速度都歸于零。
情況二:在行駛的汽車從大橋下通過時,雷達把一靜一動的物體都當作靜止物體;此時視覺傳感卻計算出行駛車輛的速度和位移,導致數據融合后的曲線傳遞出「前車在減速并且剎車」的錯誤信息。
情況三:在高速路旁停著一輛白色大卡車,純視覺算法在距目標車 180m 處就發現白色卡車,并作出預報,但融合算法直到 110m 處才作出反饋,足足延遲 5 秒。
上述案例里,純視覺算法均輸出穩定且大幅優于雷達 + 視覺融合算法,精準地跟蹤到前車行駛狀況并作出深度、速度、加速度等數據。
不僅如此,純視覺算法還可以在霧、煙、塵等環境里保持對前方車輛的測速、測距工作,如此一來拿掉毫米波雷達也不奇怪了。根據特斯拉 AI Day 上最新發布的信息,目前特斯拉每周能夠獲得一萬個人們惡劣環境下駕車的短視頻,包括大雨、大雪、大霧、黑夜、強光等等情況,神經網絡通過學習訓練這些已經標注好的材料,實現在沒有毫米波雷達的情況下,也可以精準感知前方車輛距離。
可以說,特斯拉宣布拿掉毫米波雷達的底氣,是對自己純視覺算法成熟的自信,并且在無監督自學的加持下,特斯拉純視覺算法迭代和完善明顯提速。
今年 7 月 10 日,特斯拉純視覺版本的 FSD 正式在美開啟內測,2000 名受邀車主通過 OTA 方式升級到 FSD Beta V9.0 版本,他們大多是特斯拉的粉絲兼中小型 KOL,Youtube 博主 Chunk Cook(以下簡稱 CC)就是其中之一,他還略懂工程學和航天學專業知識。
系統更新一結束,CC 開啟新版 FSD 道路測試,并把測試視頻上傳至油管。視頻中他來到一個車輛較多、車速較快的 T 路口進行轉彎測試,結果顯示,7 次中只有 1 次,FSD 順利完成自動駕駛,其余都需要人工接管方向盤來完成駕駛。
但很快,隨著 7 月底 FSD 推送新版本 V9.1,CC 發現升級后的 FSD 表現出乎他的意料。他又在相同道路進行了七次自動駕駛測試,結果顯示,7 次中 4 次都較為順利完成自動駕駛,但在轉彎速度上有些「磨蹭」,沒有展現老司機應有的果斷,但在綜合得分上,新版本 Autopilot 優于舊版本。
8 月 16 日,特斯拉 FSD 又升級至新版本 V9.2,CC 同樣搶先測試并上傳視頻,還是一個路段,不過測試時間改為夜間,他公開表示,此次最明顯的改進是 Autopilot 的加速表現,在轉彎時能像人類駕駛員一樣果斷加速。
前后一個月的時間,純視覺 Autopilot 在同一條道路的表現進步迅速,身后正是人工神經網絡強悍自學能力的體現。馬斯克表示,FSD beta V9.3、9.4 都已在籌備中,會根據車主使用情況不斷進行細節優化,改善用戶體驗,并預備在 V10 版本做出現重大的變化。
Dojo 上馬,模擬極限
需要注意的是,大家驚艷特斯拉純視覺 Autopilot 各種老司機操作時,也不能忘記這些路測大部分發生在北美地區,而在非英語地區,比如人口稠密的亞洲地區,其城市道路交通復雜度與地廣人稀的北美迥異,而如何讓神經網絡學會應對各種路況交通,更值得思考。
收集實地數據是方法之一,但前提是你有大量車隊在該地區駕駛,另一種解決方法則是對自動駕駛進行仿真測試。仿真,簡單講就是利用現實數據,將真實世界的實時動態景象,在計算機系統實現重新構建和重現。
除了能模擬不同城市的交通路況,而且仿真測試還能模擬一些極限場景,比如各種突發交通事件或者極為罕見的交通路況。在 AI DAY 上,特斯拉工程師舉了具體例子,包括有行人在高速路上奔跑、行人數量龐大、或者非常狹窄的駕駛道路。
這些案例往往非常極端,在日常駕駛場景中出現的概率也微乎其微,但正因為此,通過仿真來訓練神經網絡才有真正價值,而只有通過訓練,神經網絡才能學會正確應對。
為了能真正起到訓練作用,這些仿真測試必須充分還原現實場景,包括道路上各種行人、車輛、綠化林、路障、信號燈等等,幾乎包含你在路上見到的所有交通要素。目前特斯拉已創建了 3.71 億張車內網絡訓練的圖像,以及 4.8 億個標簽,并且數據規模還在快速擴張中。
要知道,仿真測試可達到的逼真程度,與計算機可提供的數據處理能力成正比。特斯拉 AI 的仿真越強,對硬件算力、讀寫速度的要求越高。
馬斯克曾在 2020WAIC 大會上表示,當下計算機視覺已經超越人類專家水平,但要保證計算機視覺實現的關鍵是算力的大小,為此特斯拉則準備好了頂級超算 Dojo,保證一切運算都能高效、準確完成。
在 AI day 上,超算 Dojo 揭開了廬山真面目,內置了 3000 顆 Dojo 1 芯片,并組裝成峰值算力達到 1.1EFLOPS 的 ExaPOD,超越目前世界上最快的超算日本富岳,就成了全球第一。在發布會后,馬斯克在推特上回復網友提問時表示,ExaPOD 的運算能力足以模擬人腦。
現階段,Dojo 這臺性能猛獸專注于訓練特斯拉自動駕駛神經網絡,有了它,神經網絡的學習潛力一下子變得深不可測,而至此,特斯拉也集齊自動駕駛三要素,數據、算法、算力,為推進 L5 級別自動駕駛做好軟硬件準備。
不過要想快進至自動駕駛終局,特斯拉還有很長的路要走,包括來自法律和道德層面的考驗。