用 PyTorch 單挑全世界,特斯拉是如何實現(xiàn)自動駕駛的?
特斯拉的工程師們正致力于開發(fā)一種發(fā)展自動駕駛技術(shù)的方法,這種方法能夠真正適應(yīng)數(shù)據(jù)的擴展,而不用因為數(shù)據(jù)規(guī)模擴展而增加工程師的人力,這意味著要將數(shù)十億英里駕駛過程中出現(xiàn)的計算機視覺錯誤樣本都積累起來。人類輸入是一種信號源,人類行為能夠告訴機器哪些地方做錯了,在一些場景下還能夠告訴機器怎樣做是對的。不管特斯拉是否會在全自動駕駛技術(shù)領(lǐng)域取得成功,但有一點是肯定的,特斯拉會在城市環(huán)境中部署半自動駕駛汽車。
Andrej Karpathy 是特斯拉的 AI 高級總監(jiān),他最近發(fā)表了一次演講。在演講中,他半開玩笑地揭開了“運營假期”的神秘面紗。這里面的想法是將特斯拉的機器學(xué)習(xí)流水線自動化,這樣所有的工程師就可以度假去啦,而特斯拉的半自動駕駛功能將會自動地繼續(xù)完善。特斯拉汽車將繼續(xù)自動上傳數(shù)據(jù),手動標(biāo)注數(shù)據(jù)的工人將繼續(xù)在必要的地方對數(shù)據(jù)打標(biāo),神經(jīng)網(wǎng)絡(luò)將自動地在新數(shù)據(jù)上進行訓(xùn)練,然后,改進的網(wǎng)絡(luò)就會被部署到汽車上了。這個過程一直往復(fù)循環(huán)。
讓工程師們?nèi)ザ燃僦皇情_玩笑的說法啦,因為總會有事情要做的,創(chuàng)新的腳步絕不會停止。而且,即使整個過程可以完全自動化,明智的做法也是讓人們監(jiān)視這套機制,看看是否如預(yù)期那樣運轉(zhuǎn)。但是,重點在于自動駕駛(Autopilot)、召喚(Summon)以及其他概念功能的改進都是以自動化方式為主。軟件開發(fā)傳統(tǒng)上是工程師的工作。“運營假期”的目標(biāo)是讓特斯拉的工程師更像是工廠里的工程師。工廠投入運行之前,這些工程師用很長的時間來做大量準(zhǔn)備工作。一旦工廠運轉(zhuǎn)起來,就需要大量的非工程師人員來保持其運行。目前仍然需要工程師們來檢查機器,并在出現(xiàn)問題時修復(fù)系統(tǒng)或者做出改進。但總的來說,工廠的運轉(zhuǎn)是獨立于工程師的工作的。相比之下,傳統(tǒng)的軟件開發(fā)流程更像是工程師們親自來打造產(chǎn)品。

來自 Andrej Karpathy 的演講 ppt,展示了特斯拉的機器學(xué)習(xí)流程
特斯拉是想打造一種實現(xiàn)自動化目標(biāo)的方法,這種方法能夠適應(yīng)不斷擴增的數(shù)據(jù)規(guī)模,因為特斯拉擁有全球最大規(guī)模的車輛網(wǎng)絡(luò)來收集數(shù)據(jù),這些車輛上配置了傳感器和計算機,并且都連入了互聯(lián)網(wǎng)。這種方法最大的瓶頸就在于支付給標(biāo)注工人的薪水。在計算機視覺任務(wù)中,特斯拉需要不斷地把新產(chǎn)生的、手動打標(biāo)過的照相機數(shù)據(jù)添加到訓(xùn)練集里,這樣才能不斷增加算法能力,但這種方式難以適應(yīng)不斷擴增的可收集數(shù)據(jù)規(guī)模,而只能應(yīng)付這些數(shù)據(jù)的一個子集,這個子集規(guī)模對應(yīng)于特斯拉能夠承受的打標(biāo)成本。特斯拉也許可以收集 1 萬億張交通燈照片,但是卻支付不起同樣規(guī)模的打標(biāo)(指將照片中的交通燈標(biāo)注為紅、綠或黃三種顏色)費用。
對于需要手動打標(biāo)的任務(wù),特斯拉采用的方法不允許純粹地增加標(biāo)注數(shù)據(jù)的數(shù)量,而是通過獲取更高質(zhì)量的數(shù)據(jù)來加速機器學(xué)習(xí)過程。最有價值的訓(xùn)練數(shù)據(jù)樣本是現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型不能正確預(yù)測的樣本。也許,這個模型錯誤預(yù)測了物體的類別、誤報了一個并不存在的物體,或者漏檢了照片上拍到的物體。通過“運營假期”所代表的自動化過程,特斯拉比起其競爭對手來說,能夠更多地捕捉到這類有價值的數(shù)據(jù)樣本。
想象一輛特斯拉汽車在自動駕駛導(dǎo)航(屬于其自動駕駛技術(shù)的一個版本,能夠讓特斯拉汽車自動切換車道)模式下沿著高速公路行駛。這輛特斯拉自動發(fā)起了車道切換程序,但沒有注意到相鄰車道上來了一輛皮卡。特斯拉汽車?yán)锏乃緳C趕緊打了方向盤,退出了自動駕駛模式,取消了車道切換過程。這次人工干預(yù)會觸發(fā)一次快照,快照可能包含一段短視頻剪輯,這段視頻剪輯將由特斯拉汽車的 8 個照相機、雷達數(shù)據(jù)、GPS 數(shù)據(jù)等組合得到。特斯拉的手動標(biāo)注人員會審查這段視頻剪輯,他們會看到特斯拉的神經(jīng)網(wǎng)絡(luò)沒有檢測到這兩皮卡,標(biāo)注人員就會在這兩卡車周圍畫一個 3D 方框,標(biāo)上“輕型卡車”,然后把標(biāo)注好的視頻剪輯發(fā)送到特斯拉總部,包含在訓(xùn)練數(shù)據(jù)集里。
現(xiàn)在想象一輛特斯拉在完全由人類司機控制的情況下沿著高速公路行駛。突然,特斯拉前面的一輛小型貨車司機猛踩了剎車,相應(yīng)地,特斯拉司機也猛踩了剎車。特斯拉汽車上的計算機自動駕駛軟件其實是在默默運行著的,它安靜地“觀察”著人類司機的行車軌跡,每時每刻都會估算自動駕駛模型會采用同樣行車軌跡的可能性。在這種情況下,自動駕駛軟件沒能夠檢測到這輛小型貨車。在這個自動駕駛軟件看來,這位人類司機在空曠的高速公路上猛踩剎車只是很隨機的一種行為。于是,它會給這位司機的行車軌跡賦予一個較低的概率;也就是說,自動駕駛軟件對這位司機的行為感到“驚訝”。人類司機行車軌跡和機器生成的行車軌跡之間的這種“驚訝”或者說“分歧”,會觸發(fā)一次快照,然后會上傳到特斯拉的數(shù)據(jù)標(biāo)注人員那里。(我理解這就是特斯拉“影子模式”的工作方式。)
關(guān)于自動駕駛的一件可怕的事情是,當(dāng)模型錯誤率變得更低時,你需要更多的錯誤數(shù)據(jù)樣本加入訓(xùn)練才能讓錯誤率繼續(xù)減半。隨著你的系統(tǒng)產(chǎn)生的錯誤越來越少,維持系統(tǒng)改良速率所需的錯誤樣本卻是越來越多。你需要的錯誤樣本越多,它們就越難收集全。假設(shè) Waymo 已經(jīng)將嚴(yán)重的計算機視覺錯誤(例如:導(dǎo)致汽車異常行為的錯誤,這類異常行為是能被安全駕駛員確認(rèn)的)降低到了每 1 萬英里 1 個錯誤。(這不是一個真實的數(shù)據(jù),只是為了說明問題而虛構(gòu)的例子。)由于 Waymo 每月大約行駛 100 萬英里,所以每月只會產(chǎn)生 100 個嚴(yán)重的計算機視覺錯誤樣本。給這些錯誤樣本打標(biāo)現(xiàn)在是沒問題的,但是要找到它們卻是很費勁的。作為對比,我們看下,如果 Waymo 每月行駛 10 億英里,那每月就會產(chǎn)生 10 萬個錯誤樣本。通過這個方式,搜集起來的錯誤樣本數(shù)量是隨行駛的里程數(shù)增加而增加的。
自從 2018 年 11 月發(fā)布自動駕駛導(dǎo)航以來的 12 個月內(nèi),自動駕駛導(dǎo)航模式下的特斯拉汽車已經(jīng)行駛了 10 億英里。平均下來每月行駛 8300 萬英里。以后,這個月度數(shù)據(jù)還會繼續(xù)增長,因為過去 12 個月里,具有自動駕駛導(dǎo)航功能的特斯拉汽車幾乎增長了一倍,所以在接下來的 12 個月里,這個月度數(shù)據(jù)很可能會增加 50%(假設(shè)特斯拉目前的生產(chǎn)速度至少不會下降)。帶有自動駕駛 2.0 及以上版本硬件的特斯拉車輛目前總共有大約 65 萬輛。假設(shè)平均行駛里程數(shù)和美國人的均值保持一致,總共的行駛里程數(shù)(包括完全由人類司機駕駛以及自動駕駛的里程數(shù))大約是每月 7.25 億英里。兩種行駛模式都給“運營假期”提供了數(shù)據(jù),就像以上解釋的那樣。自動駕駛模式下,人類干預(yù)標(biāo)志著機器產(chǎn)生了錯誤或者人類司機認(rèn)為這種情況對自動駕駛來說太難了。在手動駕駛模式下,人類和自動駕駛的“分歧”也標(biāo)志著機器錯誤。
到目前為止,我只討論了人類打標(biāo)人員在“運營假期”循環(huán)流程里的情況。如果我們從流程里不僅移除了工程師,還移除了打標(biāo)人員會怎樣呢?把這整個處理流程都交給機器會怎樣呢?
機器學(xué)習(xí)里令人驚訝的一個發(fā)現(xiàn)是,如果你使用了標(biāo)注質(zhì)量很差的數(shù)據(jù)訓(xùn)練時,有時候你可以獲得和標(biāo)注質(zhì)量很好的數(shù)據(jù)訓(xùn)練同樣的結(jié)果,只要你使用的質(zhì)量較差的數(shù)據(jù)量是標(biāo)注質(zhì)量較好數(shù)據(jù)的 1000 倍。Facebook 發(fā)現(xiàn) Instagram 的標(biāo)簽(通常與其對應(yīng)圖片的實際內(nèi)容僅有微弱的聯(lián)系)可以用來訓(xùn)練神經(jīng)網(wǎng)絡(luò),這樣訓(xùn)練出來的模型能夠精確地給物體分類。這里的訣竅是,F(xiàn)acebook 使用了 10 億張 Instagram 帶有標(biāo)簽的圖片,幾乎實現(xiàn)了和 100 萬手動標(biāo)注的圖片同樣的精確度。Facebook 還發(fā)現(xiàn),如果結(jié)合兩種圖片,相比于單獨訓(xùn)練其中任意一種,都能實現(xiàn)更高的精確度。
特斯拉有著 65 萬人類司機,這是大量低質(zhì)量標(biāo)注數(shù)據(jù)的來源。在所謂的弱監(jiān)督方式中(和完全監(jiān)督方式相對,后者意味著標(biāo)注人員會以手動的方式精心標(biāo)注圖片),我上面描述的標(biāo)記數(shù)據(jù)的操作(用于后續(xù)做手動打標(biāo)),可以被看做是低質(zhì)量的打標(biāo)。如果自動駕駛軟件本來檢測到某處有障礙物,可是人類司機卻行駛到了那里,那么這個地方就會被自動標(biāo)記為無障礙物。相反,如果自動駕駛軟件檢測到某處十分空曠,可是人類司機卻在開到它旁邊時停了下來,那這個地方就會被自動標(biāo)記為有障礙物。這是一種混亂的方式,但這個方式可以用豐富的免費的標(biāo)簽來補充稀缺的、昂貴的標(biāo)簽。
(想了解關(guān)于這個方式的更多內(nèi)容,可以閱讀這里的研究論文,https://arxiv.org/pdf/1610.01238.pdf)
特斯拉的自動駕駛崗位長期以來一直要求候選人“能夠設(shè)計出一些方法,這些方法除了能夠使用豐富多樣的標(biāo)注數(shù)據(jù)外,還能使用大量輕標(biāo)注的數(shù)據(jù)。"在特斯拉的 Autonomy Day 發(fā)布會上,Karpathy 描述了一種和我之前描述的類似的方法。通過人類駕駛標(biāo)記的視頻剪輯,特斯拉訓(xùn)練了一個神經(jīng)網(wǎng)絡(luò),用來感知和推斷前方道路的曲線和坡度。
(視頻可點擊:https://youtu.be/v5l-jPsAK7k)
弱監(jiān)督學(xué)習(xí)方法是真正適應(yīng)數(shù)據(jù)擴增需求的方法,限制不再是人力成本(包括工程師人力成本和標(biāo)注人員人力成本),而是道路里程數(shù),通過互聯(lián)網(wǎng)傳輸?shù)臄?shù)據(jù)包以及特斯拉總部大量的 GPU。機器學(xué)習(xí)過程就真的只是一臺復(fù)雜的機器了,它自行運轉(zhuǎn),這臺機器的零部件能夠運轉(zhuǎn)多快,機器學(xué)習(xí)就能運行多快。而較緩慢的部分則是開發(fā)這個流程,和采取辦法讓它正常運轉(zhuǎn)起來的這段時間。
相比于計算機視覺,“運營假期”能夠更加容易地做出預(yù)測。當(dāng)需要預(yù)測車輛和行人軌跡時,這里有豐富的免費的高質(zhì)量標(biāo)簽:即未來。自動駕駛軟件會觀察一輛車目前的軌跡,在 5 秒之后,這輛車會用這 5 秒內(nèi)實際走過的軌跡對這段觀察進行打標(biāo)。如果你預(yù)測了一位行人要走到哪里去,這位行人馬上就會向你展示你的預(yù)測精確度如何。于是,系統(tǒng)能夠自動發(fā)現(xiàn)錯誤,錯誤樣本也能通過正確的未來軌跡被自動標(biāo)注。這是絕妙的理想場景。人力不再是束縛,資金不再是束縛;只有車輛和計算機才可能成為束縛。
路徑規(guī)劃也是一個理想的場景。可以運用同樣的原理,但是側(cè)重點不一樣。規(guī)劃器試圖決定汽車應(yīng)當(dāng)采取什么行為。汽車觀察到的是完整的駕駛場景,由 8 個環(huán)繞的照相機和前置雷達捕捉信息。在手動模式下,神經(jīng)網(wǎng)絡(luò)預(yù)測特斯拉的人類司機會做什么,如果它預(yù)測錯了,就會自動標(biāo)記這個錯誤(同樣的,這是我所理解的“影子模式”)。司機通過他們的行為給觀察到的駕駛場景進行了標(biāo)注。除了是在人類司機干預(yù)的情況下標(biāo)記錯誤樣本,自動駕駛模式和手動模式的原理是相同的。這個方式即所謂的模仿學(xué)習(xí),最近被 DeepMind 團隊用于訓(xùn)練神經(jīng)網(wǎng)絡(luò),這個網(wǎng)絡(luò)可以玩《星際爭霸》,而且比 70% 以上的人類玩家都玩得更好。Waymo 也在挖掘模仿學(xué)習(xí)的潛力,自動駕駛汽車初創(chuàng)公司 Aurora 也很喜歡這類方法。(但是,Waymo 和 Aurora 不像特斯拉這樣有著 65 萬規(guī)模的人類司機,這些司機能夠提供大量的訓(xùn)練數(shù)據(jù))
所以總結(jié)起來,我認(rèn)為“運營假期”有四大支撐優(yōu)勢:
- 自動標(biāo)記計算機視覺錯誤,它們稍后會被上傳并且被手動標(biāo)注(完全監(jiān)督學(xué)習(xí))。當(dāng)人類司機退出自動駕駛模式,或者在手動模式下,自動駕駛規(guī)劃器與人類駕駛的行車軌跡出現(xiàn)“分歧”(或者令人“驚訝”的情況)時,都會將其標(biāo)注為錯誤。
- 使用從人類司機行為中獲取的低質(zhì)量標(biāo)簽,實現(xiàn)照相機數(shù)據(jù)的自動標(biāo)注(計算機視覺的弱監(jiān)督學(xué)習(xí))。當(dāng)計算機視覺神經(jīng)網(wǎng)絡(luò)和人類司機產(chǎn)生“分歧”時(這個分歧也導(dǎo)致了自動駕駛生成了不同于人類司機使用的行車軌跡),訓(xùn)練樣本會被上傳。
- 針對預(yù)測的自動標(biāo)注。未來事件能夠標(biāo)注過去的事件,并能顯示預(yù)測的錯誤。
- 針對規(guī)劃的自動標(biāo)注。人類駕駛行為提供了標(biāo)簽。當(dāng)自動駕駛還在激活狀態(tài)時,如果人類干預(yù)了,或者在人類和自動駕駛規(guī)劃者之間產(chǎn)生了“分歧”,就會認(rèn)為出現(xiàn)了錯誤。
預(yù)測和規(guī)劃是通過計算機視覺方法來追蹤物體軌跡并觀察行駛場景的。計算機視覺錯誤可能會引起預(yù)測和規(guī)劃失效。所以,為了使其他部分實現(xiàn)最優(yōu)運轉(zhuǎn),必須修復(fù)計算機視覺錯誤。
反過來說,預(yù)測或規(guī)劃錯誤可能會觸發(fā)視頻剪輯的上傳,即便沒有產(chǎn)生任何計算機視覺錯誤。這類沒有正確標(biāo)記的視頻剪輯會增加人類手動審查的工作量。因此,減少預(yù)測或規(guī)劃方面的錯誤能夠節(jié)省標(biāo)注人員的時間,好讓他們聚焦在計算機視覺方法產(chǎn)生的錯誤上。通過改進視頻自動標(biāo)記的精確度,可以幫助加快計算機視覺功能的進展速度。
特斯拉開發(fā)的方法正在盡可能地實現(xiàn)在數(shù)據(jù)規(guī)模擴增時,對人力擴增的需求減到最少,他們的工程師也因此站在了大規(guī)模自動駕駛機器學(xué)習(xí)的最前沿。自動的錯誤標(biāo)記可以提升標(biāo)注人員的標(biāo)注效率。模仿學(xué)習(xí)的使用減少了工程師投入到路徑規(guī)劃算法上的工作量;與其費力地手動編碼每一種駕駛行為,還不如讓算法從數(shù)據(jù)中自動學(xué)習(xí)這些行為。考慮到特斯拉汽車每月 7.25 億英里的駕駛里程,自動駕駛領(lǐng)域里還沒有先例能用來判斷特斯拉的方式會有怎樣的效率。
一些懷疑論者認(rèn)為完全解決計算機視覺問題是不可能的。也許是這樣吧。但除非它真的發(fā)生了,否則我們無法確定。
開發(fā)一個每 100 英里就失效一次然后需要人類干預(yù)的 2 級自動駕駛系統(tǒng), 要遠比開發(fā)一個每 100 萬英里才失效一次的 4 級或 5 級自動駕駛系統(tǒng)容易得多。即使特斯拉離全自動駕駛的目標(biāo)還很遠,但幾乎可以肯定的是,特斯拉將會開發(fā)出能夠在城市街道上行駛的 2 級自動駕駛系統(tǒng)。在對未來的展望中,揮之不去的主要問題是,隨著機器錯誤發(fā)生得越來越少,司機是會仍然保持警惕并在必要時干預(yù)自動駕駛機器呢,還是會被引入一種錯誤的安全感呢。特斯拉可能需要實施司機監(jiān)控系統(tǒng),確保司機隨時集中注意力。朝向司機安放的照相機和已有的方向盤扭矩傳感器,這兩者的組合可能會比單獨使用扭矩傳感器更加有效。
對特斯拉來說,超級樂觀的前景是它最終開發(fā)出來了全自動駕駛系統(tǒng),部署了機器人出租車。在這樣的局面下,特斯拉的市場份額即使不能十倍地增加,也可以大致增加兩倍或者三倍。稍溫和的樂觀局面會是特斯拉為城市駕駛發(fā)布了 2 級系統(tǒng),特斯拉也非常棒地賣出了更多汽車和更多的“全自動駕駛”附加組件單元。銷售增長和汽車毛利率是投資者密切觀察的兩項關(guān)鍵指標(biāo);特斯拉的城市 2 級系統(tǒng)能夠給這兩項指標(biāo)都帶來超預(yù)期的貢獻。
(Andrej Karpathy 的演講視頻請點擊:https://youtu.be/oBklltKXtDE,視頻中他描述了“運營假期”)
利益相關(guān):我 / 我們是 TSLA 長期合作伙伴。我自己創(chuàng)作了這篇文章,本文表達了我的個人觀點。我們沒有因此接受任何經(jīng)濟酬勞(除了來自 Seeking Alpha 的稿費)。我與文中提及了股票的所有這些公司都沒有業(yè)務(wù)關(guān)系。






























