1. 首頁
  2. 大牛說
  3. 特斯拉Autopilot如何單挑全世界?

特斯拉Autopilot如何單挑全世界?

特斯拉是一家很開放的車企。

所謂開放,指的是馬斯克年初那一句「特斯拉愿意開放并共享自己的所有專利」,還有在 GitHub 上公開了自家車機(jī)操作系統(tǒng)的底層代碼,以及在全球最大的軟件 BUG 討論社區(qū) Bugcrowd 里面發(fā)下英雄帖,廣邀全球黑客黑自家系統(tǒng)。

近日,特斯拉再一次將自家 Autopilot 的秘密向世界公開。特斯拉AI部門高級主管 Andrej Karpathy 近日出席了一個(gè)有關(guān)深度學(xué)習(xí)的會(huì)議——PyTorch Developer Conference 2019,并且進(jìn)行了一段時(shí)長 11 分鐘的演講,主題就是 Autopilot 如何在計(jì)算機(jī)視覺深度學(xué)習(xí)中應(yīng)用 PyTorch。

眾所周知,特斯拉堅(jiān)決不支持汽車界普遍力撐的激光雷達(dá)方案,而是堅(jiān)持走純視覺識(shí)別路線,Andrej Karpathy 這次演講,等于用一種硬核的方式,再一次向世界宣戰(zhàn)。

我們將這次演講的精華部分摘錄下來,并以盡量簡練的語言解釋,于是就有了今天的文章。

  • 什么是 PyTorch?

要討論 Andrej Karpathy 在這個(gè)視頻里面說了什么,我們先來搞清楚一個(gè)概念——PyTorch。
PyTorch 的「祖先」叫做 Torch(意思為火炬),Torch 是一個(gè)基于 BSD License 的開源機(jī)器學(xué)習(xí)框架,最早的 Torch 版本于 2002 年發(fā)布,主要應(yīng)用于圖像和視頻類的深度學(xué)習(xí),目前谷歌、Facebook、Twitter 都應(yīng)用了 Torch 的分支版本。

電動(dòng)星球注:BSD License 最早在1988 年由加州大學(xué)伯克利分校起草,是目前給予使用者最高自由的開源協(xié)議,使用者基本上可以「為所欲為」地修改源代碼,并且將代碼打包成專有軟件。

至于 PyTorch,則是 Torch 使用 Python 語言編寫的版本。

Torch 的底層是由 C 語言和 Lua 語言編寫的,C 語言作為底層,而 Lua 語言作為深度學(xué)習(xí)庫,兩種語言都非常優(yōu)秀,實(shí)際上目前仍然有很多大型企業(yè)采用 Torch 進(jìn)行深度學(xué)習(xí),比如上文提到的幾家。

2017 年 1 月, PyTorch 正式在 GitHub 上發(fā)布,號稱擁有更高的編譯和運(yùn)行效率,而實(shí)際上它也做到了——靠的就是 Python 語言。

一句話總結(jié)一下 1989 年出生的 Python:常被戲稱為「膠水語言」,因?yàn)?Python 能夠基于其他語言的各種模塊結(jié)合到一起。根據(jù)權(quán)威數(shù)據(jù)挖掘網(wǎng)站 KDnuggets 的調(diào)查,Python 已經(jīng)成為最受 AI 從業(yè)者歡迎的語言。

基于 Python 語言的 PyTorch 框架,也同樣獲得了眾多企業(yè)和研究者的青睞。單說自動(dòng)駕駛方面,除了特斯拉,Uber 也和斯坦福大學(xué)基于 PyTorch 研發(fā)出開源概率編程語言 Pyro。除此以外,F(xiàn)acebook、英偉達(dá)、美國艾倫人工智能研究所也都走在了 PyTorch 應(yīng)用的前頭。

  • 特斯拉如何利用 PyTorch?

Andrej Karpathy 在演講的開場這樣說:「由于我們沒有采用激光雷達(dá),也沒有采用高精度地圖,所以 Autopilot 的一切功能,都依賴于來自車身四周 8 個(gè)攝像頭提供原始圖像之后,再進(jìn)行的計(jì)算機(jī)視覺運(yùn)算。」

他隨后給出了一張流程圖,里面是 Autopilot 工作的所有流程,有趣的是,Andrej Karpathy將這一套流程稱為「Operation Vacation(操作假期)」,他說「因?yàn)楝F(xiàn)階段我的團(tuán)隊(duì)已經(jīng)可以在椅子上葛優(yōu)癱,然后數(shù)據(jù)就會(huì)從特斯拉的車子上傳過來,在神經(jīng)網(wǎng)絡(luò)模型上自己不斷循環(huán)運(yùn)行」:

特斯拉AI部門令人艷羨的「假期」里面,「PyTorch Distributed Training」占了單獨(dú)的一個(gè)部分——但憑什么呢?

先上結(jié)論:特斯拉利用 PyTorch 框架效率更高的特點(diǎn),不斷將 Autopilot 軟件的并行學(xué)習(xí)性能進(jìn)一步提升。

以上圖為例,在以上的典型場景內(nèi),Autopilot 需要同時(shí)處理 10 個(gè)不同類別的任務(wù)——而道路場景是極其復(fù)雜的,也就是說,Autopilot 時(shí)刻面臨著數(shù)十個(gè)任務(wù)并行處理的挑戰(zhàn)。Andrej Karpathy 的原話是「almost 100 tasks(幾乎同時(shí)處理 100 個(gè)任務(wù))」。

為了有效處理將近 100 個(gè)并行任務(wù),特斯拉采用了「類 ResNet-50」的骨干網(wǎng)絡(luò)。那什么是 ResNet-50?

隨著深度學(xué)習(xí)研究的不斷發(fā)展,深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)也在不斷加深,而隨著網(wǎng)絡(luò)深度的上升,訓(xùn)練準(zhǔn)確度也會(huì)隨之下降,ResNet 就是因此而生,它的中文名叫做深度殘差網(wǎng)絡(luò)。ResNet 有多個(gè)不同版本,包括 ResNet30/50/101 等,主要區(qū)分度在于 Layer 卷積層和 Block 區(qū)塊數(shù)量上,這里就不展開了(畢竟是個(gè)汽車公眾號…)。

然而,即使采用了更高效的網(wǎng)絡(luò),Andrej Karpathy 依然表示「我們無法讓每一個(gè)任務(wù)都享有單獨(dú)的神經(jīng)網(wǎng)絡(luò)運(yùn)算,因?yàn)橥瑫r(shí)處理的任務(wù)數(shù)實(shí)在太多,我們只能把一些運(yùn)算分?jǐn)偟焦蚕砉歉删W(wǎng)絡(luò)上」。
Andrej Karpathy將分?jǐn)偟焦蚕砉歉删W(wǎng)絡(luò)上的任務(wù)稱作「Hydra Nets(Hydra 意為九頭蛇)」,中二之余又不失準(zhǔn)確。比如說下圖高速公路上行駛時(shí)的物體識(shí)別:

還有 Smart Summon 模式下道路邊緣的識(shí)別與確定:

Andrej Karpathy 將這種類型的計(jì)算稱為「在圖像中進(jìn)行預(yù)測,以空間和時(shí)間為維度將這些圖像有選擇性地部分刪除,同時(shí)通過圖像拼接和變換,以此讓車輛明白現(xiàn)在所處的位置」:
另一個(gè)依賴 PyTorch 提升運(yùn)行效率的,叫做 Recurrent Tasks。

Recurrent Tasks 是來自于 RNN 的運(yùn)算任務(wù),中文名有兩個(gè),有的翻譯成循環(huán)神經(jīng)網(wǎng)絡(luò),更主流的譯法是遞歸神經(jīng)網(wǎng)絡(luò),因?yàn)?RNN 有兩個(gè)算法變體——一種是時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network),另一種是結(jié)構(gòu)遞歸神經(jīng)網(wǎng)絡(luò)(recursive neural network),兩者的縮寫都是 RNN。

RNN 聽起來雖然很陽春白雪,但它已經(jīng)在實(shí)際應(yīng)用中為我們默默服務(wù)了很久——機(jī)器翻譯、語音識(shí)別、生物研究中的 DNA 序列分析,都應(yīng)用了 RNN 運(yùn)算。而在自動(dòng)駕駛中,RNN 通常被應(yīng)用在前方道路預(yù)測中。

Andrej Karpathy 舉了以上的場景做例子,解釋 Recurrent Tasks 提升效率之后,對 Road Layout Prediction(道路層預(yù)測)的重要性:

「我們給每臺(tái)攝像頭都配備了相應(yīng)的 Hydra Nets,但很多時(shí)候你需要同時(shí)采集多個(gè)攝像頭的數(shù)據(jù),然后再進(jìn)行運(yùn)算。比如說在過一個(gè)三岔路口的時(shí)候,我們有三個(gè)攝像頭同時(shí)為這個(gè)場景的深度學(xué)習(xí)運(yùn)算輸入圖像數(shù)據(jù)。此時(shí)的神經(jīng)網(wǎng)絡(luò)預(yù)測就不再只是單純的圖像識(shí)別,而是基于總-分結(jié)構(gòu)的復(fù)合運(yùn)算?!?/p>

談到這個(gè)場景的時(shí)候,Andrej Karpathy 順便以此為例子,對Hydra Nets給出了進(jìn)一步的解釋:

「我們?yōu)樗械挠?jì)算任務(wù)準(zhǔn)備了 8 個(gè) HydraNets,當(dāng)然所有 Hydra Nets 的運(yùn)算任務(wù)都可以進(jìn)一步進(jìn)入 RNN 做遞歸運(yùn)算。然后我們可以按照這樣的總-分結(jié)構(gòu)做輸出。也就是說,Autopilot 軟件里面有一個(gè)大型的單一計(jì)算網(wǎng)絡(luò),然后每一個(gè)任務(wù)都可以分采樣這個(gè)計(jì)算網(wǎng)絡(luò)(接收到的圖像)的一小部分,然后訓(xùn)練那一小部分的神經(jīng)網(wǎng)絡(luò)?!?/p>

「比如說,我們可以單獨(dú)訓(xùn)練攝像頭的障礙物探測功能,或者是色彩深度網(wǎng)絡(luò),又或者是道路布局網(wǎng)絡(luò)。所有單一任務(wù)都分采樣了圖像數(shù)據(jù)的一小部分,然后單獨(dú)訓(xùn)練那一部分(的神經(jīng)網(wǎng)絡(luò))」。

接下來,Andrej Karpathy 用了一張圖展示了 Autopilot 軟件需要處理的圖像數(shù)據(jù)量:

乍眼一看,這張圖里面只有兩個(gè)數(shù)字是可以望文生義的:代表原因的8個(gè)攝像頭和代表結(jié)果的 4096 幅圖像。而其中的過程則相當(dāng)復(fù)雜。

Time steps 和 Batch size 需要一起講,沒有寫中文是因?yàn)楝F(xiàn)在的深度學(xué)習(xí)界依然沒有給它們一個(gè)比較信達(dá)雅的官方翻譯。其中 Batch size 代表了在深度學(xué)習(xí)網(wǎng)絡(luò)中單一批次的數(shù)據(jù)數(shù)量,比如我們往一個(gè) RNN 里面輸入 100 條數(shù)據(jù),分成 10 個(gè) Batch,那 Batch size 就是 10。

至于 Time steps 則是預(yù)測最終值需要的最大「步數(shù)」,比如說 Autopilot 軟件的 Time steps 是 16,也就是說每次會(huì)生成 x0-x15,一共 16 組數(shù)據(jù),最終預(yù)測結(jié)果——每次,指的就是圖中每一個(gè)「Forward pass」。

目前深度學(xué)習(xí)最熱門的硬件是 GPU,Andrej Karpathy 則用了一張圖來描述 Autopilot 神經(jīng)網(wǎng)絡(luò)對于 GPU 運(yùn)算的要求有多高:

在圖中顯示的 70000 GPU Hours,表示Autopilot深度計(jì)算網(wǎng)絡(luò)如果用單一GPU運(yùn)算需要用到 7 萬小時(shí)——Andrej Karpathy 的原話是「如果你用一組 8 個(gè) GPU 去訓(xùn)練 Autopilot 的深度運(yùn)算網(wǎng)絡(luò),你得花一年」——當(dāng)然他沒說用作對比的是什么 GPU。

最后,Andrej Karpathy 例牌吹了一波自家的 FSD 芯片,特斯拉的 11 分鐘炫技至此全部結(jié)束——但這一次的 PPT 和 4 月份發(fā)布時(shí)有所不同,硬件 3.0 的工作功耗不再用250W/英里這樣的單位定義,而是換算過來更低的「Sub 100W(低于 100W)」——至于是不是特斯拉式神優(yōu)化,我們只能等 FSD 芯片大規(guī)模裝機(jī)之后才能知道了。

  • 結(jié)語

今天 Andrej Karpathy 的演講,雖然不太準(zhǔn)確,但我們可以嘗試用一句話概括——特斯拉很希望把你的車變成一個(gè)人。

今年 4 月份 FSD 芯片發(fā)布的時(shí)候,Andrej Karpathy 說過一句話,宣布了特斯拉與激光雷達(dá)徹底絕緣:「你會(huì)開車是因?yàn)槟愕难劬吹搅寺窙r,而不是你的眼睛發(fā)射出激光」。今天,Andrej Karpathy 也說了「我們不用高精度地圖」。

于是,一輛逐步走向自動(dòng)駕駛的特斯拉,在行為模式上會(huì)變得越來越像人——用眼睛收集圖像數(shù)據(jù),然后用大腦判斷自身所處環(huán)境,指揮四肢做出行動(dòng)。

特斯拉的邏輯似乎更接近人類本能,但卻是汽車界實(shí)打?qū)嵉纳贁?shù)派。傳統(tǒng)汽車界,包括造車新勢力,都對激光雷達(dá)和高精度地圖抱有更高的信心。

蟹老板上周體驗(yàn)小鵬 P7的時(shí)候說過這么一段話:

「超視距+實(shí)時(shí)在線,這是我們認(rèn)為小鵬 P7 在自動(dòng)駕駛方案上與特斯拉最大的不同。某種程度上,你可以將特斯拉看成桌面端或者單機(jī)的,將小鵬 P7 看成是移動(dòng)端或者聯(lián)網(wǎng)的?!?/p>

特斯拉已經(jīng)在純視覺方案這條路上越走越遠(yuǎn),但馬斯克真的是對的嗎?他能以一己之力對抗全世界嗎?你們的意見又是什么?(完)

來源:第一電動(dòng)網(wǎng)

作者:電動(dòng)星球News蟹老板

本文地址:http://www.healthsupplement-reviews.com/kol/103446

返回第一電動(dòng)網(wǎng)首頁 >

收藏
60
  • 分享到:
發(fā)表評論
新聞推薦
第一電動(dòng)網(wǎng)官方微信

反饋和建議 在線回復(fù)

您的詢價(jià)信息
已經(jīng)成功提交我們稍后會(huì)聯(lián)系您進(jìn)行報(bào)價(jià)!

第一電動(dòng)網(wǎng)
Hello world!
-->