這個(gè)美國高中生用兩年時(shí)間復(fù)現(xiàn)出英偉達(dá)端到端無人駕駛的論文,并在此基礎(chǔ)上進(jìn)一步改進(jìn),得到了Nvidia的offer,卻執(zhí)意進(jìn)入大學(xué)學(xué)習(xí)。
Sully Chen
Sully Chen 是南加州大學(xué)維特比工程學(xué)院的研究員,他喜歡數(shù)學(xué)、物理、人工智能以及醫(yī)學(xué),目前他正致力于如何通過大數(shù)據(jù)和機(jī)器學(xué)習(xí)來改善醫(yī)療保健和醫(yī)學(xué)預(yù)防。三年前,當(dāng)他還在加州帕洛斯弗迪斯高中念書的時(shí)候,就對(duì)自動(dòng)駕駛汽車產(chǎn)生了濃厚的興趣,準(zhǔn)備著手制造自己的機(jī)器。
熱愛的數(shù)學(xué)成為后期研究的重要基礎(chǔ)
十歲開始編程,并參與了很多項(xiàng)目的 Sully Chen 雖然稱不上是天才,但他對(duì)數(shù)學(xué)近乎癡迷。2015年初,同齡的高中生還在學(xué)習(xí)排列組合,而他在一個(gè)視頻中偶然發(fā)現(xiàn)了遺傳算法和神經(jīng)網(wǎng)絡(luò),這個(gè)視頻用計(jì)算機(jī)仿真出遺傳算法的特性,虛擬生物似乎在沒有人為輸入的情況下神奇地演變出復(fù)雜的行為,“這像極了我在生物課上學(xué)到的交叉和隨機(jī)變異,但我仍不相信這樣的計(jì)算機(jī)模擬是真的?!?/p>
很自然地,他編寫了自己的模型去驗(yàn)證了它的可行性。通過親身實(shí)踐,更讓他無法自拔,他花了兩個(gè)星期開完了一學(xué)期的人工智能MIT公開課。與backprop(反向傳播算法)斗爭了好幾個(gè)星期,仍不能真正的理解。查閱大量論文,指南和博客后,最終在 Michael Nielsen 關(guān)于《神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)》博客中解決了自己的困惑,并用C++編了一個(gè)神經(jīng)網(wǎng)絡(luò)庫,以加深自己理解。
構(gòu)造一臺(tái)無人車面臨無數(shù)的挑戰(zhàn)
憑借著對(duì)機(jī)器學(xué)習(xí)“淺薄”的認(rèn)知,Sully Chen開始了制作自己的機(jī)器。
通過視覺算法來實(shí)現(xiàn)無人駕駛,第一個(gè)要解決的挑戰(zhàn)就是數(shù)據(jù)收集問題,需要協(xié)調(diào)好攝像頭和方向盤角度。攝像頭比較簡單,他用膠帶粘在了擋風(fēng)玻璃上,而方向盤角度如何控制呢?
他首先嘗試了一種加速度計(jì)和Arduino(數(shù)據(jù)儀器)連接到方向盤上,并將時(shí)間數(shù)據(jù)與攝像頭同步。這種方法并不理想,由于加速度計(jì)比較敏感,加速度數(shù)據(jù)與視頻數(shù)據(jù)如何分開成了當(dāng)時(shí)Sully需要面對(duì)的另一個(gè)挑戰(zhàn)。
第一種方式行不通,Sully開始了新的嘗試,使用現(xiàn)代汽車配備的OBD-II端口訪問CAN-BUS。這種方法又要面臨新的挑戰(zhàn),但最終實(shí)現(xiàn)了超精確方向盤測量,證明這種方法是值得的。
挑戰(zhàn)1:如何從 BD-II端口讀取CAN-BUS?解碼和處理CAN-BUS信號(hào)是一個(gè)復(fù)雜的過程,需要很長時(shí)間才能編寫和調(diào)試。幸運(yùn)的是,前人(深圳矽遞科技)已經(jīng)做到了。Sully使用這個(gè)代碼和相對(duì)便宜的Arduino屏蔽,就能夠輕松地從汽車中提取和讀取CAN-BUS數(shù)據(jù)。
挑戰(zhàn)2:如何將CAN-BUS數(shù)據(jù)的亂碼轉(zhuǎn)變?yōu)榉较虮P讀數(shù)?下圖是提取的CAN-BUS數(shù)據(jù)。
從數(shù)百個(gè)CAN-BUS渠道的解析中,找到一個(gè)方向盤角度的信息通道,對(duì)于一個(gè)高中生而言,難度可想而知。Sully 用最笨的辦法做到了!他手動(dòng)監(jiān)控每個(gè)通道,慢慢轉(zhuǎn)動(dòng)方向盤,需按照接受數(shù)據(jù)的平滑變化值。經(jīng)過大量的實(shí)驗(yàn),終于找到了方向盤的通道,用同樣的方法也找到了油門、制動(dòng)器以及速度的通道。
挑戰(zhàn)3:如何把CAN-BUS中的數(shù)據(jù)轉(zhuǎn)換成可讀數(shù)據(jù)?找到通道后,通過測量實(shí)際角度與通道數(shù)值進(jìn)行線性變換,就能從CAN中讀出車輛的即時(shí)數(shù)據(jù)。
攔路虎順利擺平之后,開始瘋狂收集數(shù)據(jù)。為此,Sully 曠了很多課。當(dāng)數(shù)據(jù)通過機(jī)器學(xué)習(xí)訓(xùn)練算法時(shí),一切變得有趣起來。
復(fù)現(xiàn)并優(yōu)化Nvidia論文,引起Nvidia官方的重視
用機(jī)器學(xué)習(xí)訓(xùn)練模型時(shí),第一次嘗試用Caffe 在 AlexNet上訓(xùn)練分類模型。他將數(shù)據(jù)劃分成每個(gè)大小為10度的黑盒子,方向盤角度在0-9度,10-19,20-29等之間得到相應(yīng)的圖像。采用了分類輸出的線性組合獲得最終預(yù)測。由于當(dāng)時(shí)并不能真正理解的統(tǒng)計(jì)數(shù)據(jù),一切變得非常糟糕。這讓Sully 幾乎失掉了信心,他專門建了一個(gè)存放錯(cuò)誤代碼和實(shí)踐的垃圾文件箱,用來提醒自己要從失敗中總結(jié)經(jīng)驗(yàn),學(xué)到新東西?,F(xiàn)在這個(gè)垃圾文件箱還存在著,而且越積越大,它的存在也證明了自己一路以來的進(jìn)步。
2016年8月,Nvidia發(fā)布了一篇論文《End to End Learning for Self-Driving Cars》,詳細(xì)解讀了英偉達(dá)在端到端無人駕駛的探索,這讓Sully 有了第二次嘗試,他準(zhǔn)備復(fù)現(xiàn)一下Nvidia論文
Nvidia模型使用以下架構(gòu):
這個(gè)架構(gòu)輸出的是前十個(gè)神經(jīng)元的簡單線性組合,Sully認(rèn)為還可以改進(jìn)。他通過對(duì)線性組合應(yīng)用正切函數(shù)來改變這一點(diǎn),這種方法更直觀從視覺數(shù)據(jù)中“恢復(fù)”曲率角度,而不必重新學(xué)習(xí)將斜率或切線轉(zhuǎn)換為弧度測量的方法。
研讀完Nvidia論文的高中生,在TensorFlow中寫了大約一個(gè)晚上的代碼,并用當(dāng)時(shí)便宜的750ti GPU上訓(xùn)練了它,結(jié)合Adam優(yōu)化器等訓(xùn)練。最終,取得了不錯(cuò)的成果!
一個(gè)高中生花費(fèi)兩年時(shí)間完成了這個(gè)龐大的項(xiàng)目,Sully感嘆道“這次經(jīng)歷教會(huì)了我大量的信息,技術(shù)和編碼實(shí)踐。Nvidia甚至帶我去他們的自動(dòng)駕駛實(shí)驗(yàn)室參觀他們的技術(shù)!“Nvidia為這位高中生提供一份不低的工資,但被他拒絕了,Sully進(jìn)入了大學(xué),開始了自己本科的學(xué)習(xí)。
-
人工智能
+關(guān)注
關(guān)注
1791文章
47282瀏覽量
238534 -
無人駕駛
+關(guān)注
關(guān)注
98文章
4059瀏覽量
120519 -
英偉達(dá)
+關(guān)注
關(guān)注
22文章
3776瀏覽量
91114
原文標(biāo)題:美國高中生兩年時(shí)間搭建自動(dòng)駕駛汽車,重現(xiàn)了Nvidia論文
文章出處:【微信號(hào):IV_Technology,微信公眾號(hào):智車科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論