歡迎關注“新浪科技”的微信訂閱號:techsina
文/小葵
來源:錦緞(ID:jinduan006)
如果機器人有大腦,會是什么樣?
在科幻電影《機械姬》里,全球最大搜索引擎公司“藍皮書”CEO納森向觀眾展示了自己發明的機器人大腦,并留下這么一句話:“人們認為搜索引擎是人們思考的事物,但其實那是人們思考的方式?!?/p>
該影片上映于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級別自動駕駛做好軟硬件準備。
不過要想快進至自動駕駛終局,特斯拉還有很長的路要走,包括來自法律和道德層面的考驗。